[openssl/tools] 74cbb3: release-tools: rewrite stage-release in Python

1 view
Skip to first unread message

Dmitry Misharov

unread,
Oct 13, 2026, 6:28:32 AM (9 days ago) Oct 13
to openssl...@openssl.org
Branch: refs/heads/master
Home: https://github.com/openssl/tools
Commit: 74cbb3af169a1c1afab8c221afc0f9b422441651
https://github.com/openssl/tools/commit/74cbb3af169a1c1afab8c221afc0f9b422441651
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M HOWTO-publish-a-release.md
M HOWTO-stage-a-release.md
A release-tools/.gitignore
A release-tools/README.md
R release-tools/do-copyright-year
A release-tools/pyproject.toml
R release-tools/release-aux/README.md
R release-tools/release-aux/fix-title.pl
R release-tools/release-aux/fixup-CHANGES-postrelease.pl
R release-tools/release-aux/fixup-CHANGES-release.pl
R release-tools/release-aux/fixup-CHANGES.md-postrelease.pl
R release-tools/release-aux/fixup-CHANGES.md-release.pl
R release-tools/release-aux/fixup-NEWS-postrelease.pl
R release-tools/release-aux/fixup-NEWS-release.pl
R release-tools/release-aux/fixup-NEWS.md-postrelease.pl
R release-tools/release-aux/fixup-NEWS.md-release.pl
R release-tools/release-aux/fixup-README-postrelease.pl
R release-tools/release-aux/fixup-README-release.pl
R release-tools/release-aux/fixup-openssl.spec-postrelease.pl
R release-tools/release-aux/fixup-openssl.spec-release.pl
R release-tools/release-aux/openssl-announce-pre-release.tmpl
R release-tools/release-aux/openssl-announce-release-premium.tmpl
R release-tools/release-aux/openssl-announce-release-public.tmpl
R release-tools/release-aux/release-data-fn.sh
R release-tools/release-aux/release-state-fn.sh
R release-tools/release-aux/release-version-fn.sh
R release-tools/release-aux/string-fn.sh
R release-tools/release-aux/test_suite.sh
R release-tools/release-aux/upload-fn.sh
A release-tools/stage-release
R release-tools/stage-release.sh
A release-tools/stagerelease/__init__.py
A release-tools/stagerelease/__main__.py
A release-tools/stagerelease/build.py
A release-tools/stagerelease/cli.py
A release-tools/stagerelease/copyright_year.py
A release-tools/stagerelease/errors.py
A release-tools/stagerelease/fixups.py
A release-tools/stagerelease/git.py
A release-tools/stagerelease/metadata.py
A release-tools/stagerelease/report.py
A release-tools/stagerelease/run.py
A release-tools/stagerelease/stage.py
A release-tools/stagerelease/state.py
A release-tools/stagerelease/tarball.py
A release-tools/stagerelease/textutil.py
A release-tools/stagerelease/version/__init__.py
A release-tools/stagerelease/version/base.py
A release-tools/stagerelease/version/legacy.py
A release-tools/stagerelease/version/modern.py
A release-tools/tests/conftest.py
A release-tools/tests/test_cli.py
A release-tools/tests/test_copyright_year.py
A release-tools/tests/test_fixups.py
A release-tools/tests/test_git.py
A release-tools/tests/test_metadata.py
A release-tools/tests/test_stage.py
A release-tools/tests/test_state.py
A release-tools/tests/test_tarball.py
A release-tools/tests/test_version_legacy.py
A release-tools/tests/test_version_modern.py

Log Message:
-----------
release-tools: rewrite stage-release in Python

Replaces stage-release.sh, the release-aux/*-fn.sh helpers and the twelve
fixup-*.pl scripts. Verified against the shell across 230 state and
transition combinations; the 14 that differ are shell bugs, now tested.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 30c5f622525db98b02fba9cd539dfb8782be48bb
https://github.com/openssl/tools/commit/30c5f622525db98b02fba9cd539dfb8782be48bb
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M release-tools/stagerelease/git.py
A release-tools/stagerelease/reviewers.py
M release-tools/stagerelease/stage.py
M release-tools/tests/test_stage.py
A review-tools/.gitignore
M review-tools/README
M review-tools/addrev
M review-tools/cherry-checker
M review-tools/gitaddrev
A review-tools/pyproject.toml
A review-tools/reviewtools/__init__.py
A review-tools/reviewtools/addrev_cli.py
A review-tools/reviewtools/cherry.py
A review-tools/reviewtools/cherry_cli.py
A review-tools/reviewtools/errors.py
A review-tools/reviewtools/gitaddrev_cli.py
A review-tools/reviewtools/listing.py
A review-tools/reviewtools/message.py
A review-tools/reviewtools/policy.py
A review-tools/reviewtools/query.py
A review-tools/reviewtools/reviewers.py
A review-tools/tests/conftest.py
A review-tools/tests/test_cherry.py
A review-tools/tests/test_cli.py
A review-tools/tests/test_message.py
A review-tools/tests/test_query.py
A review-tools/tests/test_reviewers.py

Log Message:
-----------
review-tools: rewrite addrev, gitaddrev and cherry-checker in Python

Replaces the OpenSSL-Query REST backend with a urllib client, and fixes
several latent bugs: --commit blanked other commits' messages, --web was
silently ignored, and a blank message looped forever.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: baffa5002007f46ee4ffc0ab98c72fa4ece4ac5a
https://github.com/openssl/tools/commit/baffa5002007f46ee4ffc0ab98c72fa4ece4ac5a
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
A lib/.gitignore
A lib/openssl_tools/__init__.py
A lib/openssl_tools/reviewtools/__init__.py
A lib/openssl_tools/reviewtools/addrev_cli.py
A lib/openssl_tools/reviewtools/cherry.py
A lib/openssl_tools/reviewtools/cherry_cli.py
A lib/openssl_tools/reviewtools/errors.py
A lib/openssl_tools/reviewtools/gitaddrev_cli.py
A lib/openssl_tools/reviewtools/listing.py
A lib/openssl_tools/reviewtools/message.py
A lib/openssl_tools/reviewtools/policy.py
A lib/openssl_tools/reviewtools/query.py
A lib/openssl_tools/reviewtools/reviewers.py
A lib/openssl_tools/stagerelease/__init__.py
A lib/openssl_tools/stagerelease/__main__.py
A lib/openssl_tools/stagerelease/build.py
A lib/openssl_tools/stagerelease/cli.py
A lib/openssl_tools/stagerelease/copyright_year.py
A lib/openssl_tools/stagerelease/errors.py
A lib/openssl_tools/stagerelease/fixups.py
A lib/openssl_tools/stagerelease/git.py
A lib/openssl_tools/stagerelease/metadata.py
A lib/openssl_tools/stagerelease/report.py
A lib/openssl_tools/stagerelease/reviewers.py
A lib/openssl_tools/stagerelease/run.py
A lib/openssl_tools/stagerelease/stage.py
A lib/openssl_tools/stagerelease/state.py
A lib/openssl_tools/stagerelease/tarball.py
A lib/openssl_tools/stagerelease/textutil.py
A lib/openssl_tools/stagerelease/version/__init__.py
A lib/openssl_tools/stagerelease/version/base.py
A lib/openssl_tools/stagerelease/version/legacy.py
A lib/openssl_tools/stagerelease/version/modern.py
A lib/pyproject.toml
A lib/tests/__init__.py
A lib/tests/reviewtools/__init__.py
A lib/tests/reviewtools/conftest.py
A lib/tests/reviewtools/helpers.py
A lib/tests/reviewtools/test_cherry.py
A lib/tests/reviewtools/test_cli.py
A lib/tests/reviewtools/test_message.py
A lib/tests/reviewtools/test_query.py
A lib/tests/reviewtools/test_reviewers.py
A lib/tests/stagerelease/__init__.py
A lib/tests/stagerelease/conftest.py
A lib/tests/stagerelease/helpers.py
A lib/tests/stagerelease/test_cli.py
A lib/tests/stagerelease/test_copyright_year.py
A lib/tests/stagerelease/test_fixups.py
A lib/tests/stagerelease/test_git.py
A lib/tests/stagerelease/test_metadata.py
A lib/tests/stagerelease/test_stage.py
A lib/tests/stagerelease/test_state.py
A lib/tests/stagerelease/test_tarball.py
A lib/tests/stagerelease/test_version_legacy.py
A lib/tests/stagerelease/test_version_modern.py
R release-tools/.gitignore
M release-tools/README.md
R release-tools/pyproject.toml
M release-tools/stage-release
R release-tools/stagerelease/__init__.py
R release-tools/stagerelease/__main__.py
R release-tools/stagerelease/build.py
R release-tools/stagerelease/cli.py
R release-tools/stagerelease/copyright_year.py
R release-tools/stagerelease/errors.py
R release-tools/stagerelease/fixups.py
R release-tools/stagerelease/git.py
R release-tools/stagerelease/metadata.py
R release-tools/stagerelease/report.py
R release-tools/stagerelease/reviewers.py
R release-tools/stagerelease/run.py
R release-tools/stagerelease/stage.py
R release-tools/stagerelease/state.py
R release-tools/stagerelease/tarball.py
R release-tools/stagerelease/textutil.py
R release-tools/stagerelease/version/__init__.py
R release-tools/stagerelease/version/base.py
R release-tools/stagerelease/version/legacy.py
R release-tools/stagerelease/version/modern.py
R release-tools/tests/conftest.py
R release-tools/tests/test_cli.py
R release-tools/tests/test_copyright_year.py
R release-tools/tests/test_fixups.py
R release-tools/tests/test_git.py
R release-tools/tests/test_metadata.py
R release-tools/tests/test_stage.py
R release-tools/tests/test_state.py
R release-tools/tests/test_tarball.py
R release-tools/tests/test_version_legacy.py
R release-tools/tests/test_version_modern.py
R review-tools/.gitignore
M review-tools/README
M review-tools/addrev
M review-tools/cherry-checker
M review-tools/gitaddrev
R review-tools/pyproject.toml
R review-tools/reviewtools/__init__.py
R review-tools/reviewtools/addrev_cli.py
R review-tools/reviewtools/cherry.py
R review-tools/reviewtools/cherry_cli.py
R review-tools/reviewtools/errors.py
R review-tools/reviewtools/gitaddrev_cli.py
R review-tools/reviewtools/listing.py
R review-tools/reviewtools/message.py
R review-tools/reviewtools/policy.py
R review-tools/reviewtools/query.py
R review-tools/reviewtools/reviewers.py
R review-tools/tests/conftest.py
R review-tools/tests/test_cherry.py
R review-tools/tests/test_cli.py
R review-tools/tests/test_message.py
R review-tools/tests/test_query.py
R review-tools/tests/test_reviewers.py

Log Message:
-----------
lib: share the Python between release-tools and review-tools

stagerelease and reviewtools become subpackages, so the cross-package call
is a relative import rather than sys.path surgery at runtime.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: f98b2ae1cdb50031e166e71905c3cb1df3517e87
https://github.com/openssl/tools/commit/f98b2ae1cdb50031e166e71905c3cb1df3517e87
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/openssl_tools/reviewtools/__init__.py
M lib/openssl_tools/reviewtools/gitaddrev_cli.py
M lib/openssl_tools/reviewtools/listing.py
M lib/openssl_tools/reviewtools/reviewers.py
M lib/openssl_tools/stagerelease/reviewers.py
M lib/openssl_tools/stagerelease/stage.py
M lib/tests/reviewtools/helpers.py
M lib/tests/reviewtools/test_cli.py
M lib/tests/reviewtools/test_reviewers.py
M lib/tests/stagerelease/test_stage.py
M release-tools/README.md
M review-tools/README

Log Message:
-----------
reviewtools: require reviewers to be committers

addrev --list already filtered by the commit group but nothing enforced it,
including for a name that happened to be the commit author. stage-release
validates up front now, before the copyright commit and make update.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: c5a207014587b54e5b383072bca0e840056860fe
https://github.com/openssl/tools/commit/c5a207014587b54e5b383072bca0e840056860fe
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/.gitignore
M lib/openssl_tools/__init__.py
M lib/openssl_tools/reviewtools/__init__.py
M lib/openssl_tools/reviewtools/addrev_cli.py
M lib/openssl_tools/reviewtools/cherry.py
M lib/openssl_tools/reviewtools/cherry_cli.py
M lib/openssl_tools/reviewtools/errors.py
M lib/openssl_tools/reviewtools/gitaddrev_cli.py
M lib/openssl_tools/reviewtools/listing.py
M lib/openssl_tools/reviewtools/message.py
M lib/openssl_tools/reviewtools/policy.py
M lib/openssl_tools/reviewtools/query.py
M lib/openssl_tools/reviewtools/reviewers.py
M lib/openssl_tools/stagerelease/__init__.py
M lib/openssl_tools/stagerelease/__main__.py
M lib/openssl_tools/stagerelease/build.py
M lib/openssl_tools/stagerelease/cli.py
M lib/openssl_tools/stagerelease/copyright_year.py
M lib/openssl_tools/stagerelease/errors.py
M lib/openssl_tools/stagerelease/fixups.py
M lib/openssl_tools/stagerelease/git.py
M lib/openssl_tools/stagerelease/metadata.py
M lib/openssl_tools/stagerelease/report.py
M lib/openssl_tools/stagerelease/reviewers.py
M lib/openssl_tools/stagerelease/run.py
M lib/openssl_tools/stagerelease/stage.py
M lib/openssl_tools/stagerelease/state.py
M lib/openssl_tools/stagerelease/tarball.py
M lib/openssl_tools/stagerelease/textutil.py
M lib/openssl_tools/stagerelease/version/__init__.py
M lib/openssl_tools/stagerelease/version/base.py
M lib/openssl_tools/stagerelease/version/legacy.py
M lib/openssl_tools/stagerelease/version/modern.py
M lib/pyproject.toml
M lib/tests/reviewtools/conftest.py
M lib/tests/reviewtools/helpers.py
M lib/tests/reviewtools/test_cherry.py
M lib/tests/reviewtools/test_cli.py
M lib/tests/reviewtools/test_message.py
M lib/tests/reviewtools/test_query.py
M lib/tests/reviewtools/test_reviewers.py
M lib/tests/stagerelease/conftest.py
M lib/tests/stagerelease/helpers.py
M lib/tests/stagerelease/test_cli.py
M lib/tests/stagerelease/test_copyright_year.py
M lib/tests/stagerelease/test_fixups.py
M lib/tests/stagerelease/test_git.py
M lib/tests/stagerelease/test_metadata.py
M lib/tests/stagerelease/test_stage.py
M lib/tests/stagerelease/test_state.py
M lib/tests/stagerelease/test_tarball.py
M lib/tests/stagerelease/test_version_legacy.py
M lib/tests/stagerelease/test_version_modern.py
M release-tools/README.md
M release-tools/stage-release
M review-tools/addrev
M review-tools/cherry-checker
M review-tools/gitaddrev

Log Message:
-----------
lib: add a ruff config, fix its findings, and format at 100 columns

The rule set is pinned because ruff's default varies between releases.
Notable fixes: a bare `except Exception: pass`, and an assert used for type
narrowing that vanishes under python -O.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 572190fc0c609a7eed5c42f213a25f62c2bdcefc
https://github.com/openssl/tools/commit/572190fc0c609a7eed5c42f213a25f62c2bdcefc
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/openssl_tools/reviewtools/__init__.py
M lib/openssl_tools/reviewtools/addrev_cli.py
M lib/openssl_tools/reviewtools/cherry.py
M lib/openssl_tools/reviewtools/cherry_cli.py
A lib/openssl_tools/reviewtools/commands.py
M lib/openssl_tools/reviewtools/gitaddrev_cli.py
M lib/openssl_tools/reviewtools/listing.py
M lib/openssl_tools/reviewtools/query.py
M lib/openssl_tools/reviewtools/reviewers.py
M lib/openssl_tools/stagerelease/build.py
M lib/openssl_tools/stagerelease/git.py
M lib/openssl_tools/stagerelease/reviewers.py
M lib/openssl_tools/stagerelease/stage.py
M lib/openssl_tools/stagerelease/version/legacy.py
M lib/pyproject.toml
M lib/tests/reviewtools/test_cherry.py
M lib/tests/reviewtools/test_cli.py
M lib/tests/reviewtools/test_query.py
R release-tools/DO-RELEASE.md
M release-tools/README.md

Log Message:
-----------
lib: add mypy and type the injectable seams as protocols

Every seam this code exists to be testable through was typed as the concrete
class it injects, so a fake was a type error. Six protocols replace them,
which then caught three test doubles that had drifted.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: dc89673d43939431a6f230721093ef376a3f95b7
https://github.com/openssl/tools/commit/dc89673d43939431a6f230721093ef376a3f95b7
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M release-tools/README.md
M release-tools/stage-release
M review-tools/README
M review-tools/addrev
M review-tools/cherry-checker
M review-tools/gitaddrev

Log Message:
-----------
review-tools: fail clearly when a script is copied out of the checkout

PATH and symlinks work; a copy cannot find ../lib. It now says so instead
of raising ModuleNotFoundError.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 081bf9e49d006146d4b43c534cac682477d69d32
https://github.com/openssl/tools/commit/081bf9e49d006146d4b43c534cac682477d69d32
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/.gitignore
A lib/build-pyz
A lib/tests/test_build_pyz.py
M release-tools/README.md
M review-tools/README

Log Message:
-----------
lib: add build-pyz for self-contained executables

One zipapp per entry point, or one busybox-style archive dispatching on
argv[0]. Each is ~60 KiB, needs only a Python 3.10 interpreter, and is
named like the script it replaces so it drops over an existing install.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 84cdfc6fef9e7b875a10837acb196e6d0bc40993
https://github.com/openssl/tools/commit/84cdfc6fef9e7b875a10837acb196e6d0bc40993
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M release-tools/README.md

Log Message:
-----------
release-tools: document the tested interpreter range

Verified on the latest patch of 3.10 through 3.14, plus a 5x5 build/run
matrix for the archives and the 3.9 refusal path.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 44bc873c97b673169e869f28686c07e5de7dc05d
https://github.com/openssl/tools/commit/44bc873c97b673169e869f28686c07e5de7dc05d
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/.gitignore

Log Message:
-----------
lib: ignore .mypy_cache

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 52c74d3408be0d2d470617380caa95e82a122b92
https://github.com/openssl/tools/commit/52c74d3408be0d2d470617380caa95e82a122b92
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M HOWTO-handle-security-issue.md
R HOWTO-make-a-release.md
R HOWTO-publish-a-release.md
A HOWTO-release.md
R HOWTO-stage-a-release.md

Log Message:
-----------
Combine the three release HOWTOs into HOWTO-release.md

They described a manual process that is now pipeline-driven, and contradicted
each other about it. Names no internal hosts.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 5e19a6900236f6696564bae9ae7b53f7a6b4549b
https://github.com/openssl/tools/commit/5e19a6900236f6696564bae9ae7b53f7a6b4549b
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
R README
A README.md
M release-tools/README.md
R review-tools/README
A review-tools/README.md
R review-tools/gitlabutil
R statistics/README
A statistics/README.md

Log Message:
-----------
Rename READMEs to .md and switch to ATX headings

review-tools/README.md is rewritten: it documented a deleted script and
omitted four that exist. Also drops review-tools/gitlabutil.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: f8ddb49ced98ffdb04777ea9fe1619f2253a5733
https://github.com/openssl/tools/commit/f8ddb49ced98ffdb04777ea9fe1619f2253a5733
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
R github-tools/stale.py
R ssh-key.txt.asc

Log Message:
-----------
remove unused files

Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 9577a40d34bb38f5addf9284d8659c9f83917f2c
https://github.com/openssl/tools/commit/9577a40d34bb38f5addf9284d8659c9f83917f2c
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/openssl_tools/reviewtools/policy.py
M lib/tests/reviewtools/test_cli.py
M lib/tests/reviewtools/test_message.py
M lib/tests/reviewtools/test_reviewers.py
M review-tools/README.md
M review-tools/ghmerge

Log Message:
-----------
Drop the archived openssl/web repository

Removes the web policy entry, ghmerge's --web selector and the two tests
that covered it.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 061cc76d67bbd6025f0511656662e9182067eded
https://github.com/openssl/tools/commit/061cc76d67bbd6025f0511656662e9182067eded
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/openssl_tools/reviewtools/cherry.py
M lib/openssl_tools/reviewtools/message.py
M lib/openssl_tools/stagerelease/reviewers.py
M lib/tests/reviewtools/test_cli.py
M lib/tests/reviewtools/test_message.py
M lib/tests/stagerelease/test_stage.py
M review-tools/README.md

Log Message:
-----------
reviewtools: produce compliant git trailers

Follows upstream: Merge-date: and Merged-from: replace MergeDate: and the
prose "(Merged from ...)" line, and the trailer block is placed by
git interpret-trailers --if-exists addIfDifferent rather than by hand.
cherry-checker recognises the new trailer when extracting PR numbers.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: c4a3a4a303eada57587d328ff90266c0944e8394
https://github.com/openssl/tools/commit/c4a3a4a303eada57587d328ff90266c0944e8394
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/build-pyz
M lib/openssl_tools/reviewtools/addrev_cli.py
R lib/openssl_tools/reviewtools/gitaddrev_cli.py
A lib/openssl_tools/reviewtools/rewrite.py
M lib/openssl_tools/stagerelease/reviewers.py
M lib/tests/reviewtools/helpers.py
M lib/tests/reviewtools/test_cli.py
M lib/tests/test_build_pyz.py
M release-tools/README.md
M review-tools/README.md
M review-tools/ghmerge
R review-tools/gitaddrev

Log Message:
-----------
addrev: replace filter-branch with commit-tree/update-ref

Removes gitaddrev: the message is computed in process now, so there is no
msg-filter subprocess and no PYTHONPATH plumbing. Rewritten tags still
follow, keeping their tagger and message.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: f8712d348a45431d33dd56aa60f9666b32bd76ab
https://github.com/openssl/tools/commit/f8712d348a45431d33dd56aa60f9666b32bd76ab
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/openssl_tools/reviewtools/addrev_cli.py
M lib/openssl_tools/reviewtools/reviewers.py
M lib/tests/reviewtools/test_cli.py
M lib/tests/reviewtools/test_reviewers.py

Log Message:
-----------
addrev: say which commit is short of reviewers, and why

A reviewer named on the command line who authored one of the commits cannot
be credited on it, which the bare "Too few reviewers" did not explain.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: e64cd899aa8b9ab21bb7ee6d35b94d55aaf077bc
https://github.com/openssl/tools/commit/e64cd899aa8b9ab21bb7ee6d35b94d55aaf077bc
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/openssl_tools/reviewtools/rewrite.py
M lib/tests/reviewtools/test_cli.py

Log Message:
-----------
addrev: peel tags in one for-each-ref instead of rev-parse per tag

The tag pass cost one subprocess for every tag in the repository -- 443 in an
openssl clone -- to move at most one. 500 tags: 590ms of fixed overhead, now
5ms.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 1d0fd657731cb13e63cdf0a9f154820efcbbfd81
https://github.com/openssl/tools/commit/1d0fd657731cb13e63cdf0a9f154820efcbbfd81
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/openssl_tools/reviewtools/rewrite.py
M lib/tests/reviewtools/helpers.py
M lib/tests/reviewtools/test_cli.py

Log Message:
-----------
addrev: read the range in topological order

Ordering by commit date, git log's default, can emit a commit before its own
parent when two lines of history have skewed dates; the replay then re-parents
onto the original, leaving the shared parent forked. filter-branch used
--topo-order for this.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 40bc8cba6ae8dbd2e40df9442045783e624527ca
https://github.com/openssl/tools/commit/40bc8cba6ae8dbd2e40df9442045783e624527ca
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/openssl_tools/stagerelease/cli.py
M lib/openssl_tools/stagerelease/report.py
M lib/openssl_tools/stagerelease/stage.py

Log Message:
-----------
stage-release: announce every step by default and flush as it goes

The "== " headings were only shown under --verbose, so a default run sat
silent for minutes; and stdout is block-buffered when it is a pipe, so even
that appeared only at exit.

Assisted-by: Claude:claude-opus-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: f7934f9edf79f0bceab059ff25acec95fa63c08d
https://github.com/openssl/tools/commit/f7934f9edf79f0bceab059ff25acec95fa63c08d
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M lib/openssl_tools/reviewtools/cherry.py
M lib/tests/reviewtools/test_cherry.py

Log Message:
-----------
cherry-checker: test the Merged-from: trailer form

Assisted-by: Claude:claude-opus-5-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: a72399e8efe02d82080e7d46302c8e85527a4937
https://github.com/openssl/tools/commit/a72399e8efe02d82080e7d46302c8e85527a4937
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-25 (Fri, 25 Sep 2026)

Changed paths:
M review-tools/README.md

Log Message:
-----------
review-tools: update the pick-to-branch examples to active branches

Assisted-by: Claude:claude-opus-5-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Commit: 88c9fcd9daf0b05f3d66e9e9f2e921e9271b521f
https://github.com/openssl/tools/commit/88c9fcd9daf0b05f3d66e9e9f2e921e9271b521f
Author: Dmitry Misharov <dmi...@openssl.org>
Date: 2026-09-30 (Wed, 30 Sep 2026)

Changed paths:
M lib/openssl_tools/stagerelease/build.py
A lib/tests/stagerelease/test_build.py

Log Message:
-----------
stage-release: run Configure through perl

1.0.2's Configure has no #! line and relies on a shell to run it after exec
fails; subprocess does not, so staging a 1.0.2 release failed at Configure.

Assisted-by: Claude:claude-opus-5-5
Reviewed-by: Tomas Mraz <to...@openssl.foundation>
Reviewed-by: Andrew Dinh <and...@openssl.org>
Reviewed-by: Nikola Pajkovsky <nik...@openssl.org>
Merge-date: Tue Oct 13 10:27:57 2026
Merged-from: https://github.com/openssl/tools/pull/248


Compare: https://github.com/openssl/tools/compare/d969418042bf...88c9fcd9daf0

To unsubscribe from these emails, change your notification settings at https://github.com/openssl/tools/settings/notifications
Reply all
Reply to author
Forward
0 new messages