Skip to content

ci: add RC promotion command#749

Open
Haricharanpanjwani wants to merge 1 commit into
apache:mainfrom
Haricharanpanjwani:issue-717-promote-rc
Open

ci: add RC promotion command#749
Haricharanpanjwani wants to merge 1 commit into
apache:mainfrom
Haricharanpanjwani:issue-717-promote-rc

Conversation

@Haricharanpanjwani
Copy link
Copy Markdown

@Haricharanpanjwani Haricharanpanjwani commented May 2, 2026

Part of #715.
Closes #717.

Summary

  • add a new promote subcommand to scripts/apache_release.py to promote a voted RC from Apache SVN dist/dev to dist/release
  • validate the expected source archive, sdist, wheel, and matching .asc / .sha512 files before promotion
  • remove the current dist/release contents before copying in the promoted artifacts, matching ASF "latest only" release policy
  • print the final twine upload command for the promoted release artifacts
  • support --dry-run so the command shows the intended release cleanup, copy, and commit steps without committing
  • support incubating -> TLP path transitions through --dev-svn-root and --release-svn-root overrides
  • document the new promotion flow in scripts/README.md
  • add focused pytest coverage for RC parsing, artifact validation, rename behavior, PyPI command rendering, and dry-run orchestration

How I tested this

  • ran python3 -m pytest tests/test_apache_release.py
  • ran python3 -m py_compile scripts/apache_release.py tests/test_apache_release.py
  • ran python3 scripts/apache_release.py promote --help

Notes

  • the promotion flow is implemented in scripts/apache_release.py rather than as a separate script so it stays alongside the existing release build, upload, and verification commands
  • the command defaults to incubator SVN paths today, but accepts --dev-svn-root and --release-svn-root so it can handle the post-incubation TLP path change without code changes
  • this PR covers the issue acceptance criteria by adding a single promotion command, validating the required artifacts before promotion, supporting incubator/TLP SVN root overrides, and providing a non-committing dry-run mode
  • I did not run a full end-to-end promote --dry-run against live SVN in this environment; the command still requires SVN access to validate the real RC and release paths before planning the promotion steps

Checklist

  • PR has an informative and human-readable title
  • Changes are limited to a single goal
  • Any change in functionality is tested
  • Project documentation has been updated for the new command

@github-actions github-actions Bot added the area/ci Workflows, build, release scripts label May 2, 2026
@Haricharanpanjwani
Copy link
Copy Markdown
Author

@skrawcz @andreahlert can you review this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci Workflows, build, release scripts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: add RC promotion script (dev -> release)

1 participant