Skip to content

fix(packaging): repin AUR to 0.30.0, and stop overselling the TestPyPI dry run - #378

Merged
Faisal-Fayaz merged 1 commit into
mainfrom
docs/aur-and-testpypi-caveat
Oct 7, 2026
Merged

Faisal-Fayaz merged 1 commit into
mainfrom
docs/aur-and-testpypi-caveat

Conversation

@Faisal-Fayaz

Copy link
Copy Markdown
Owner

Follow-ups that 0.30.0's release itself surfaced

AUR repinned to 0.30.0

The sdist URL path and sha256sums are specific to the version. Both were verified against the artifact PyPI actually served rather than copied from the API response:

$ curl -sL "…/sidekick_agent-0.30.0.tar.gz" | sha256sum
ffe075f866ef36e518b96c53a3e84648a9fc06e6a664783a4e1a6f434bff4d81  -

The TestPyPI dry run fails at the upload step

I ran it as a pre-publish check and it came back red:

invalid-publisher: valid token, but no corresponding publisher
sub: repo:Faisal-Fayaz@…/sidekick@…:environment:testpypi

No trusted publisher is registered on test.pypi.org for the testpypi environment. Everything before the upload passed — version extraction, the release-sequence guard (29 tags, 3 known gaps), uv build, twine check — so it's a useful rehearsal for the pipeline and useless for verifying the upload itself.

packaging/README.md described that registration as "optional", which is how it came to be missing while the surrounding text presented the dry run as a working verification tool. It now says what actually happens: the run goes red after everything real has already passed, and a red X there does not mean the release is broken. Registering the publisher at https://test.pypi.org/manage/account/publishing/ makes the dry run complete.

This is also why I published with the production path after seeing the dry run fail — the pypi environment is registered and has 30 releases behind it, whereas testpypi never was.

Post-release verification

Since ROADMAP.md lists a per-release install smoke test as un-done, here it is:

$ python -m venv smoke && smoke/bin/pip install sidekick-agent==0.30.0
$ smoke/bin/sk --version
sk 0.30.0
$ smoke/bin/python -c "import importlib.metadata as m; print(m.version('sidekick-agent'))"
0.30.0

And the reason for the release, re-run against the installed package rather than the checkout — the original bypass, against 0.30.0:

allowlist : ('ok.example',)   evil.test NOT allowed
hops      : ['https://ok.example/start']
output    : 'Error: egress blocked on redirect — host is not in the egress allowlist (evil.te…'
BYPASS?   : NO - fix shipped and works

Config.mask() in the published wheel returns '****', and sk 0.29.0 and older still leak first3…last4.

1389 passed, ruff clean.

…I dry run

Follow-ups the release itself surfaced.

**AUR repinned to 0.30.0.** The sdist URL path and sha256 are specific to the
version, and both were verified against the artifact PyPI actually served, not
copied from the API response.

**The TestPyPI dry run fails at the upload step.** I ran it before publishing
0.30.0 and it came back red with `invalid-publisher`: no trusted publisher is
registered on test.pypi.org for the `testpypi` environment. Everything before
the upload passed -- version extraction, the release-sequence guard (29 tags, 3
known gaps), build, twine check -- so it is a useful rehearsal for the pipeline
and useless for the upload itself.

packaging/README.md described the testpypi registration as 'optional', which is
how it came to be missing while the surrounding text presented the dry run as a
working verification tool. It now says what actually happens: the run goes red
after everything real has passed, and a red X there does not mean the release is
broken. Register the publisher at test.pypi.org to make the dry run complete.

1389 passed, ruff clean.
@Faisal-Fayaz
Faisal-Fayaz merged commit ccee61c into main Oct 7, 2026
12 checks passed
@Faisal-Fayaz
Faisal-Fayaz deleted the docs/aur-and-testpypi-caveat branch October 7, 2026 08:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant