Repository navigation
docs: stop recommending pip --verify-attestations - #530
HarshRajSinghania wants to merge 5 commits into
Conversation
Fixes darnitdevorg#520. pip has no such flag; document pypi-attestations instead.
|
Thanks,the underlying point is right,
On content: use |
mlieberman85
left a comment
There was a problem hiding this comment.
Thanks for catching this. The pypi-attestations verify pypi syntax is right. Three things:
- DCO is failing; please sign off your commits.
- The AI-assistance section of the PR template is missing; please fill it in.
--repository https://github.com/kusari-oss/darnitneeds to bedarnitdevorg/darnit. Releases are signed under the new org (seepackaging/README.md). If you're up for it, the otherkusari-osslines inpypi.mdcould move too.
Minor: specs/012-packaging-distribution/research.md still mentions the old flag.
Drafted with Claude Code; reviewed and posted by me.
|
Updated the docs on
Head is a8bd81a. I did not amend the existing commit for DCO sign-off, because that needs a force-push. Happy to sign off if you want that rewrite. |
|
The install guide already points DCO is still failing on the earlier commits. Signing those off means rewriting history on this branch, which I did not do. I can sign them off with a force-push if you want that next. |
|
Yes, please force-push. That's expected here and it's the only thing left on your side. All 5 commits need a sign-off: The sign-off has to come from you personally (see AI_POLICY.md, DCO section). If AI wrote parts of the change, an Assisted-by: trailer is welcome too. Once DCO is green I'll approve the CI run and review the final diff. |
mlieberman85
left a comment
There was a problem hiding this comment.
Thanks for the updates. The darnitdevorg/darnit identity and the research note look right. A few things left:
- DCO: please do the
git rebase --signoff HEAD~5+git push --force-with-leasethat Marc described. While rebasing, anAssisted-by: Grok:<model-version>trailer would match AI_POLICY.md. - No darnit release on PyPI has PEP 740 attestations yet. Releases are published with an API token, and attestations only come with Trusted Publishing (#519). The new command correctly fails with "Provenance … was not found", but line 36 says every release has one. Could you add a sentence that 0.1.x releases carry no attestations and that verification applies from the first Trusted Publishing release?
- The "Manual verification with
sigstore" section doesn't work:sigstorehas no--cert-identity-regexp(that's cosign), and the PEP 740 attestation object isn't a Sigstore bundle, so--bundlerejects it. Sincepypi-attestations verify pypialready does that check, I'd drop the section, along with the "same identity used by thesigstorecommands below" pointer. - Nit: the two troubleshooting rows should quote what
pypi-attestationsactually prints ("Provenance for file … was not found", "Verification failed: provenance was signed by repository …").
Drafted with Claude Code; reviewed and posted by me.
|
Quick ping: the remaining items are the DCO sign-off ( Drafted with Claude Code; reviewed and posted by me. |
Addresses the review of Oct 12 on this PR. - release.yml: check out refs/tags/<tag> instead of the bare name, so a branch with the same name cannot be picked. - packaging/README.md: describe the release environment's protection and the cleanup of the old PYPI_API_TOKEN secret. Keep "upstream" in the release steps. - docs/install/pypi.md: leave the --verify-attestations block as it is on main. darnitdevorg#530 removes it. - container-edge.yml: also rebuild when .dockerignore or the public package list changes. Assisted-by: Claude:claude-fable-5-1 Signed-off-by: Marc-cn <130138935+Marc-cn@users.noreply.github.com>
…ases carry attestations pip has no --verify-attestations option (darnitdevorg#520, first fixed in darnitdevorg#530 by HarshRajSinghania, whose change this carries forward since the verification section is rewritten here anyway). The install guide now has one verification path, pypi-attestations against the downloaded wheel; says that the 0.1.x releases, uploaded with an API token, carry no attestation and that "provenance not found" is the expected answer for them; and the troubleshooting table quotes what pypi-attestations reports rather than cosign's wording. The packaging contract and the 012 research note no longer mention the flag. Co-authored-by: HarshRajSinghania <HarshRajSinghania@users.noreply.github.com> Assisted-by: Claude:claude-fable-5-1 Signed-off-by: Marco De Vincenzi <md6796@nyu.edu>
|
Closing: the only thing left here was the DCO sign-off, which has to come from you, and we haven't heard back since Oct 8. The fix itself isn't lost — #674 rewrites this section of pypi.md and now carries your change (pip has no --verify-attestations; pypi-attestations is the path), with you as co-author, plus Mike's points 2–4. Thanks for catching it. If you're back and would rather land it under your own name, say so and we'll reopen. |
Fixes #520.
Summary
docs/install/pypi.mdtold users to runpip install --verify-attestations. pip has no such option (confirmed againstpip install --helpon pip 24.x; the issue reporter also checked 26.2.1), so the documented command fails.Motivation
Users following the PyPI install guide cannot verify PEP 740 attestations with the command that was written down.
Implementation
pypi-attestations verify pypiflow against a downloaded wheel, as suggested in the issue.sigstoresection in place.packaging/container/Dockerfile; that comment refers tocosign verify-attestations, which is a different tool.The
--repositoryargument now matches the post-move signing identity documented inpackaging/README.md(darnitdevorg/darnit). The otherkusari-oss/darnitidentity lines indocs/install/pypi.mdwere updated the same way.specs/012-packaging-distribution/research.mdno longer mentions the nonexistent pip flag.Testing
verify-attestations/One-step verification.python3 -m pip install --helplists no attestation-related option (pip 24.0).AI assistance
Drafted with AI assistance (Grok) and reviewed before pushing. The pip flag finding was checked against
pip install --help.