Repository navigation
Conversation
The note in How Publishing Works said PyPI rejects an already published filename. PyPI accepts a re-upload whose files match the published ones. It rejects the upload only when the files differ, for example after a README change without a version bump. That package's job then fails, and GitHub skips the emulator image job. The note and the checklist now describe both cases. The first-time publication section explained general PyPI and GitHub behavior. It now keeps the steps specific to this repository and links PyPI's guide. The protection rules appeared in four places. Release Permissions and Protection now states them, and other sections link to it.
Contributor
Codex AI reviewNo actionable findings after reviewing the complete diff against rules 1–9 and the checked-in release workflows. Documentation-only change; no tests were run, and the cited external PyPI/GitHub evidence was not independently verified. Reviewed commit |
This branch was successfully deployed
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.
Issue #, if available
None. This change follows up on Python SDK PR #789: document protected PyPI publishing.
Description of changes
The note in How Publishing Works said PyPI rejects an already published filename. PyPI accepts a re-upload whose files match the published ones. It rejects the upload only when the files differ, for example after a README change without a version bump. That package's job then fails, and GitHub skips the emulator image job. The note now describes both cases, and the checklist names the check for a
testing-vrelease.The change also shortens RELEASING.md from 337 to 262 lines:
Design
See Rules for every change.
Assumptions
400 File already exists. GitHub then skipspublish-emulator-image. Evidence: thetelemetry-exporter-v1.0.0release run. The SDK had not changed since3.0.0, and its re-upload of3.0.0succeeded. Python SDK PR #847: remove obsolete OTel layer publishing changed the OTel README after2.0.0, and PyPI rejected the re-upload of OTel2.0.0.pypienvironment accepts only runs on a tag that matches the four patterns. Evidence: the environment's deployment policies, and GitHub's documentation on deployment branches and tags.durable-execution-devowns the four existing projects. Evidence: theownershipfield in each project's PyPI JSON response.warehouse/oidc/views.pycreates the project with the pending publisher'sadded_byuser as its owner.warehouse/oidc/models/github.pyskips the environment check when the publisher has no environment, and compares the workflow path against the run's own ref.Decisions not covered by the issue or the design note
durable-execution-devaccount, because PyPI already lists it publicly as the owner of all four projects.ci.ymllegal-files step still omits the telemetry exporter. Adding it changes a workflow, so it belongs in a separate PR.Checklist
The change edits documentation only, so the test items do not apply.
Testing: I rendered RELEASING.md with GitHub's Markdown API. Every in-page link resolves to a heading, every relative link resolves to a file, and the table renders inside its list step.
git diff --checkand the repository's commit-message lint pass.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.