diff --git a/specs/006-release-pypi/contracts/cli-output.md b/specs/006-release-pypi/contracts/cli-output.md index b8db8182..3615aff6 100644 --- a/specs/006-release-pypi/contracts/cli-output.md +++ b/specs/006-release-pypi/contracts/cli-output.md @@ -42,8 +42,8 @@ openRepoTools ( @ ) This is unchanged. `` is `${OPENREPOTOOLS_REPO:-opensoft/openRepoTools}` and `` is `${OPENREPOTOOLS_REF:-main}`. No `OPENREPOTOOLS_PACKAGE_*` -variable changes it. `tests/test_openrepotools_command.py:299-319` keeps its -assertions, and only the docstring at `:300-302` is rewritten. +variable changes it. `tests/test_openrepotools_command.py:323-344` keeps its +assertions, and only the docstring at `:324-327` is rewritten. The digest label `sorted-ls-tree-r-v1` is one literal. It is held equal to the pinned `repo_shape.TREE_DIGEST_DEFINITION` and to @@ -64,8 +64,8 @@ causes, and [stamp.md](stamp.md) gives each reason's cause: - `cannot be read ()`, for example `cannot be read (it is a directory)`; -- `is partial: `, for example `is partial: COMMIT is set and DIGEST - is empty`; +- `is partial: `, for example `is partial: VERSION, TAG, COMMIT and + REPOSITORY are set, but DIGEST is empty`; - `is malformed: `, for example `is malformed: TAG is v1.2.0, not v1.1.0`, or `is malformed: line 4 has a carriage return`. diff --git a/specs/006-release-pypi/plan.md b/specs/006-release-pypi/plan.md index cbf3ced8..18d6972d 100644 --- a/specs/006-release-pypi/plan.md +++ b/specs/006-release-pypi/plan.md @@ -150,7 +150,7 @@ Phase 0 and again after Phase 1. | G2 | Nothing under `upstream/openRepoShape` is edited, and the pin does not move (AGENTS.md; proposal Non-goals) | PASS | PASS: the digest code and `load_yaml` are run from the submodule, and never copied (R9) | | G3 | The suite reaches no network, and creates no real repository (AGENTS.md) | PASS | PASS: wheel tests take a built wheel by variable (R8); the v1.0.0 notes are checked by their task, not the suite (R15) | | G4 | Tests skip without the submodule, naming it, and never fail for it (AGENTS.md; `tests-no-submodule`) | PASS | PASS: workflow tests skip like command tests (R9); the `package` job checks out with `submodules: true` and fails on a skip | -| G5 | AGENTS.md and README caps move only by dated entries (`tests/test_repo_hygiene.py:1748`, `:2253`) | PASS | PASS: R16 | +| G5 | AGENTS.md and README caps move only by dated entries (`tests/test_repo_hygiene.py:1981`, `:2516`) | PASS | PASS: R16 | | G6 | Governed files (CI workflows, and every file recording a pin or a digest) are `[O]` work (Speckit protocol, Build Tiers) | PASS | PASS: `tests.yml`, `release.yml`, both hash locks, the stamp and every action pin are touched only by `[O]` tasks | | G7 | Every refusal is in the planning phase, and a refusal places nothing (design.md Goals) | PASS | PASS: pipx's link, a venv-shaped link and pip's script are decided in `plan_install_targets`; a broken stamp in `package_init` before the argument loop | | G8 | Brett Heap decides every tag, cut and upload; no lane act is a build task (proposal "Release owner") | PASS | PASS: environments, publishers, tags, dispatches, uploads, the Release and the assembly README PR stay in the change's `tasks.md` | @@ -209,7 +209,7 @@ tests/ ├── test_release_workflow.py # NEW: release.yml, both locks, the stamp writer round trip ├── test_tests_workflow.py # NEW: tests.yml's triggers, job ids and package job ├── test_repo_hygiene.py # CHANGED: the standard-library rule, the compile set, caps -└── test_openrepotools_command.py # CHANGED: one docstring (:300-302), assertions unchanged +└── test_openrepotools_command.py # CHANGED: one docstring (:324-327), assertions unchanged docs/release-notes/ ├── v1.0.0.md # NEW: the published body, byte for byte (R15) └── v1.1.0.md # NEW: the draft diff --git a/specs/006-release-pypi/quickstart.md b/specs/006-release-pypi/quickstart.md index de183519..91735948 100644 --- a/specs/006-release-pypi/quickstart.md +++ b/specs/006-release-pypi/quickstart.md @@ -14,13 +14,15 @@ git submodule update --init upstream/openRepoShape # the command and workflow command -v bash jq git python3 # all four are needed ``` -Building a wheel (steps 3 and 4) fetches hatchling into pip's isolated build -environment, so it needs the network. Nothing else here does. +Three steps can need the network. Building the wheel (step 3) fetches +hatchling into pip's isolated build environment. A pipx that installs with +pip rather than uv (step 5) fetches pip into a new `PIPX_HOME`'s shared +libraries. Step 8 asks GitHub. Nothing else here does. ## 1. The package's tests, without a wheel ```sh -bash tests/run.sh -k 'test_package or test_install_pipx or test_release_workflow or test_tests_workflow' +bash tests/run.sh -k 'test_package or test_install_pipx or test_release_workflow or test_tests_workflow' -rs ``` - Expect every test to pass, except the built-wheel tests in @@ -37,7 +39,7 @@ bash tests/run.sh -k 'repo_hygiene or openrepotools_command or install_' - The standard-library rule now covers `src/openrepotools/`, and the compile test compiles it. -- The `--version` tests at `tests/test_openrepotools_command.py:299-319` keep +- The `--version` tests at `tests/test_openrepotools_command.py:323-344` keep their assertions. - The README and AGENTS.md caps pass, with any dated entry the change needed. @@ -89,7 +91,9 @@ Expect each of these: - 28 rows in the receipt under `"$t/user-home/.local/share/openRepoTools/"`; - `"$t/bin/openRepoTools"` still a link into - `"$t/pipx/venvs/openrepotools/bin/"`. + `"$t/pipx/venvs/openrepotools/bin/"`; +- last, the PATH note, because `$t/bin` is not on `PATH`: + `openRepoTools: note: the first openRepoTools on your PATH is , not this package's /pipx/venvs/openrepotools/bin/openRepoTools, …`. Then run `--install` again from the checkout's own `openRepoTools`, with the same environment: diff --git a/specs/006-release-pypi/tasks.md b/specs/006-release-pypi/tasks.md index da23cd7b..846bb8d9 100644 --- a/specs/006-release-pypi/tasks.md +++ b/specs/006-release-pypi/tasks.md @@ -348,7 +348,7 @@ index does not serve. ## Phase 9: Polish & cross-cutting concerns -- [ ] T025 [O] Run quickstart.md's steps 1 to 8 on a workstation, as detailed below — files: `specs/006-release-pypi/quickstart.md` — verify: `bash tests/run.sh` +- [X] T025 [O] Run quickstart.md's steps 1 to 8 on a workstation, as detailed below — files: `specs/006-release-pypi/quickstart.md`, `specs/006-release-pypi/plan.md`, `specs/006-release-pypi/contracts/cli-output.md` (the last two added by the lead's ruling, #228 comment 6255121743) — verify: `bash tests/run.sh` - the wheel built twice and compared; - the built-wheel tests, with no skip; - the pipx install into a temporary home;