Fix the manifest, and release 0.1.2 - #34
Merged
Merged
Conversation
The `token` input's description explained itself with a live expression:
`${{ github.token }}` is enough
GitHub evaluates every expression it finds in a manifest, descriptions
included, and `github` is not a context it provides where inputs are
processed. So the action stopped loading:
action.yml (Line: 77, Col: 18): Unrecognized named-value: 'github'
Failed to load PowderworksCode/straitjacket/main/action.yml
For a consumer on `@main` that is worse than a finding -- the job fails
before its first step, with an error naming a line in this repository.
The example now names `github.token` without the braces, and says why it
cannot have them.
Nothing here caught it because nothing here loads the manifest.
`install-smoke` is the only workflow that does `uses: ./`, and it runs on
`workflow_call` and `workflow_dispatch`, so the manifest was first
exercised by whoever depended on it. CI now checks out and uses the
action on every change, with findings and unused markers not failing the
job: what is being proved is that the manifest loads, the install works,
and the scan runs.
Same argument the publish dry run already makes, applied to the other
file no cargo command reads.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01361quprG7tUgaVFKAmKtJZ
The manifest fix above is only useful once it is released, since the point of the release is that consumers can stop tracking `main`. The `Unreleased` section becomes 0.1.2 as it stands: the install failures that motivated all of this, plus the site, the rule manifest, and the documentation that had drifted. The README's examples move to `@v0.1.2`. They already recommended pinning; they were recommending a version that predates every fix in this entry. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01361quprG7tUgaVFKAmKtJZ
It carries the crate version, so a version bump makes it stale.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The action does not load at all right now. Every repository on
@main— cratebank, immersion, langbank — fails before its first step:The cause
The
tokeninput's description explained itself with a live expression:GitHub evaluates every
${{ }}in a manifest — including inside a description — andgithubis not a context it provides where inputs are processed. The sentence explaining the token is what stops the action loading.It now names
github.tokenwithout the braces, with a comment saying why it cannot have them. No other expression in the file sits outsideruns:andoutputs:.Why nothing caught it
action.ymlis loaded by GitHub and read by no cargo command, sogatecannot see it.install-smokeis the only workflow that doesuses: ./, and it runs onworkflow_callandworkflow_dispatch— so nothing on a pull request loads the manifest, and it was first exercised by a consumer.That is the failure shape the CI file already argues against one job up:
CI now checks out and uses the action on every change, with
fail-on-findings: falseandfail-on-unused-markers: false. Findings are not the point; what is proved is that the manifest loads, the install works, and the scan runs. Theactionjob here is the verification — only GitHub can validate a manifest. It passed:Against current
mainthat job dies at "Set up job".And a release
A fix to the manifest only helps once consumers can stop tracking
main, which means a tag.Unreleasedbecomes 0.1.2 as it stands — the install failures that motivated all of this, plus the site, the rule manifest, and the documentation that had drifted. The README's examples move to@v0.1.2; they already recommended pinning, to a version that predates every fix in the entry.cargo fmt,clippy -D warnings, 53 tests, andscripts/publish.sh --dry-runall pass locally on 0.1.2.After this merges: tag
v0.1.2, then pin cratebank (and immersion and langbank, which are broken the same way) to it.🤖 Generated with Claude Code
https://claude.ai/code/session_01361quprG7tUgaVFKAmKtJZ