Skip to content

plan #76: publish releases to PyPI - #78

Merged
craigmcchesney merged 3 commits into
mainfrom
plan/76-pypi-publish
Oct 5, 2026
Merged

craigmcchesney merged 3 commits into
mainfrom
plan/76-pypi-publish

Conversation

@craigmcchesney

Copy link
Copy Markdown
Collaborator

Refs #76

Plan-only PR: adds plan/tickets/76/plan.md, the triage and implementation plan for enabling the disabled publish-pypi job. The workflow and docs change comes in a later PR (Closes #76).

What triage found beyond the draft

  • A name can't be claimed on PyPI ahead of an upload. A pending trusted publisher is the mechanism, and it doesn't reserve the name. The name is free on PyPI and TestPyPI as of 2026-10-05.
  • Dispatch builds carry a local version (1.16.1.dev61+g496f0e0), which PyPI and TestPyPI reject. A setuptools-scm override, applied to dispatch builds only, fixes this; verified locally.
  • Publish order: publish-pypi runs alongside the GitHub Release. The plan makes it run after (needs: [build, publish-github-release]), since a PyPI upload can't be replaced.
  • Hash check: the plan adds a check after publishing that PyPI's sha256 digests match SHA256SUMS.
  • README links: the README is PyPI's project page, and its relative links 404 there.
  • Docs already wrong: the cookbook already claims pip install dp-python-lib[analysis] works. It doesn't today, and unquoted it also fails in zsh.
  • Setup ordering: the pypi environment must exist before the workflow change merges. A job naming a missing environment creates it with no protection rules.

Decisions (2026-10-05)

Two personal PyPI owners (D1), one required reviewer (D2), a permanent opt-in TestPyPI dispatch input (D3), and the next release first with no backfill (D6). Open item: name the second PyPI owner before the first release.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UCxWh2HqjqhsmLwSJbJAWE

Triage of the AI-drafted ticket plus the resolved decisions: two personal
PyPI owners, a single required reviewer on the `pypi` environment, a
permanent opt-in TestPyPI rehearsal, and no backfill of rel-1.16.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UCxWh2HqjqhsmLwSJbJAWE
Copilot AI balanced review requested due to automatic review settings October 5, 2026 19:23
…hors (PR #78 review)

- D2: release-dist retention 7 -> 30 days, so an approval or re-run can
  still find the artifact; a full re-run is no substitute.
- D3a: skip-existing on both uploads, so a partial upload is recoverable;
  D5's digest check is what keeps a real conflict loud.
- D5: spell out the pip-download verification (--no-deps, --ignore-missing).
- D7: fragment-only README links become absolute too.
- Docs: quote the editable-install extras in README.md and the cookbook README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UCxWh2HqjqhsmLwSJbJAWE

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

Copilot was unable to run its full agentic suite in this review.

Copilot review overview

Review effort: Lite
Findings: 1 Medium severity · 3 Low severity

Open (4)
What changed in this PR

Adds a detailed implementation plan for enabling PyPI publishing for dp-python-lib releases (Issue #76), including workflow changes, TestPyPI rehearsal, documentation updates, and release process safeguards.

Changes:

  • Adds a new ticket plan documenting design decisions and sequencing for PyPI + TestPyPI publishing.
  • Specifies required manual GitHub/PyPI environment setup and workflow gating/verification steps.
  • Outlines doc and release-checklist updates needed to support PyPI as an installation channel.
File Description
plan/​tickets/​76/​plan.md Introduces the end-to-end plan/design for enabling and verifying PyPI publishing for releases.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread plan/tickets/76/plan.md
Comment thread plan/tickets/76/plan.md
Comment thread plan/tickets/76/plan.md
Comment thread plan/tickets/76/plan.md Outdated
…s (Copilot review)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UCxWh2HqjqhsmLwSJbJAWE
@craigmcchesney
craigmcchesney merged commit 7a699a6 into main Oct 5, 2026
2 of 6 checks passed
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.

2 participants