Repository navigation
WORKFLOW.md Sections 3 and 4 Carry Further Statements the Tree Contradicts #1524
Copy link
Copy link
Closed
Description
Defect
A third round of whole-unit review of WORKFLOW.md while settling #1521 found these statements contradicted by the tree or by the document itself. None was introduced there, and #1522 and #1523 hold the earlier rounds' findings. Each wants checking before it is fixed, since a finding against prose can be a reading the text does not intend.
Section 3, Architecture
- The parameter contract claims every leaf. "Every leaf and the release task take
ref,branch(the logical branch that drives config/tags/prerelease), and where relevantsmoke." The filesystem leaf the same section describes,deploy-site-task.yml, takesenvironment,release-id, andsite-urland runs as its own dispatch, so "Branch-derived config keys offinputs.branch" cannot hold for it. The build leaves miss it the other way: the release task hands each composite leaf and hookbranch,smoke, andsemver2but noref, since the calling job checks outGitCommitIditself, so the contract names an input they lack and omits the version seam every one of them receives. - The add/drop recipe omits
expect_release_assets. Neither the surface list nor thelibraryworked example mentions it, while D6.4 requires flipping it on the first file target added or the last dropped. A Docker-only or PyPI-only repo following the example keepsfalse, so the release task's asset download stays skipped andfail_on_unmatched_filesstays off, and the new asset is silently never attached. Dropping the last file target without the flip fails every release create. - Resource Lifecycle misstates D5.2. "the delete is gated to the half of the consumption whose failure would leave it not yet redundant (D5.2 names the two halves)". D5.2 names two kinds of consumer rather than halves, and for a package push it deletes on the failed-push path, where the artifact is still needed for a re-run, stating that cost. A reader applying this sentence keeps that artifact, the opposite of what D5.2 prescribes.
Section 4, Behavioral Contract
- D2.4: "e.g. the docker-readme task's
repositoriesXORmanifest+manifest-jq".publish-docker-readme-task.ymlaccepts neither source and defaults to the calling repository, refusing only both at once or a half-filled manifest pair, so the rule is at most one rather than exactly one, and a reader taking the example literally fails a valid call. - D4.4: "They run and the server dedupes (
dotnet nuget push --skip-duplicateturns a 409 into success, and PyPI does the same underskip-existing: true)". The server rejects the duplicate and the client flag is what turns that into success, so without the flag a no-op re-run fails its push. Crediting the server invites dropping the flags as redundant. - D7.2: "A callee's extra scope (e.g.
actions: writefor cleanup, orid-token: writefor OIDC) is granted by the caller and appears at exactly the one entry point that needs it." No reusable callee needsid-token: writeany longer, since both package pushes moved into the caller's own publish jobs, andbuild-release-task.ymlanddocs/reusable-workflows.mdboth say no call to the task needs it. The example now points a reader at the grant the docs forbid. - D4.5: "A package target's separate publish job needs its own gate for the same reason". "The same reason" points at the
!failure() && !cancelled()guardgithub-releasecarries, while the package publish job correctly carries noif:and relies onsuccess()through itsneeds:, as the stub's own comment says. Copying that guard onto it runs the job whenplandeclines to publish, where it fails at the download. - D8.3: "The
mainpin push publishes via the release gate, while adeveloppin does not auto-publish." That holds only for a publisher with apushtrigger reaching the state file, which neither D8.3 nor D4.1 requires, and the documented Docker shape has no push trigger at all, so a wrapper on that shape publishes the pin only at its next schedule or dispatch.
Metadata
Metadata
Assignees
Labels
No labels
Activity
Build the PyPI Version From the Release Tag, and Hand the build-pypi …
Build the PyPI Version From the Release Tag, and Hand the build-pypi …
Name the Build Jobs That Do Not Opt Out of the Smoke Skip in D2.2 (#1533
Name the Build Jobs That Do Not Opt Out of the Smoke Skip in D2.2 (#1534
Correct Section 3, 4 and 6 Statements the Tree Contradicts (#1541)
ptr727 commentedon Oct 23, 2026
Closed under the maintainer's decision (ptr727, 2026-10-23) on #3391: the backlog keeps real bugs with a stated failure, features the maintainer wants, and open decisions. A finding the review loop filed on code or text a change did not touch, a refactor or consolidation chore, a tracker, a wording item, or a guard shape no session has produced is closed rather than worked. Reopen with the input and the wrong result if this issue states one.