Slice 61 - Final Package Rehearsal
Date: 2026-06-29
Purpose#
Prove the Python package works from built artifacts, not from the editable checkout.
Scope#
- Build both wheel and sdist.
- Inspect package metadata and bundled resources.
- Install wheel and sdist into clean Python 3.12 environments.
- Run installed
codealmanacsmoke checks against fresh temp homes and repos. - Patch only packaging issues exposed by the rehearsal.
Package Metadata Fix#
The first build succeeded but emitted a setuptools deprecation warning for the old TOML-table license metadata:
project.license as a TOML table is deprecatedpyproject.toml now uses SPDX metadata:
license = "Apache-2.0"
license-files = ["LICENSE.md"]The build backend requirement moved to setuptools>=77.0.3, matching the
setuptools release line that supports the modern license fields documented by
the Python Packaging User Guide.
Build Evidence#
Command:
uv build --out-dir /tmp/codealmanac-release-slice61Artifacts:
/tmp/codealmanac-release-slice61/codealmanac-0.1.0-py3-none-any.whl
/tmp/codealmanac-release-slice61/codealmanac-0.1.0.tar.gzArtifact inspection confirmed:
- wheel metadata name
codealmanac - version
0.1.0 License-Expression: Apache-2.0License-File: LICENSE.md- console script
codealmanac = codealmanac.cli.main:main - README, license text, server assets, manual files, and prompts included
- sdist includes the same public source and package-data surface
Install Evidence#
The first install attempt with system Python 3.11 failed as intended:
Package 'codealmanac' requires a different Python: 3.11.10 not in '>=3.12'Clean Python 3.12.9 virtualenv installs passed for both artifacts:
/tmp/codealmanac-release-slice61/wheel-venv
/tmp/codealmanac-release-slice61/sdist-venvBoth installed CLIs rendered codealmanac --help with:
usage: codealmanac [-h] [--version]Installed CLI Smoke#
Both clean installs passed the same local smoke flow:
init <repo> --name <label>- Git init and commit of the starter wiki
search gettingshow getting-started --leadtopicshealth --jsonjobssync status --from codex --quiet 0sdoctor --jsonserve --host 127.0.0.1 --port <port>- HTTP checks for
/api/overviewand/app.js
Observed command shapes:
show --leadfor the starter page returns# Getting Started.topicslists theconceptstopic.jobsexits cleanly with empty stdout when no jobs exist.sync statusreturns zero counters for an empty transcript scan.doctor --jsonreturns section arrays keyed by values such asinstall.manualandwiki.health./api/overviewuses top-levelpage_countandtopic_count./app.jsimports the served viewer module from/assets/viewer/main.js.
Final installed smoke output:
wheel-install: ok
sdist-install: okResult#
The release-package rehearsal gate now has wheel, sdist, clean install, metadata, package-data, CLI, local viewer, and Python-version evidence.
No hosted, cloud capture, SDK, MCP, alias, or compatibility surface was added.