This is an automated email from the ASF dual-hosted git repository. dsmiley pushed a commit to branch branch_9x in repository https://gitbox.apache.org/repos/asf/solr.git
commit a37d2bedd4a465e157f4d9e4ff6618bf5d166f4e Author: David Smiley <[email protected]> AuthorDate: Sun Sep 27 13:38:26 2026 -0400 releaseWizard: pause for changelog review before RC changelog is committed/pushed RC1 of 9.11.0 staged and went to vote with an unwanted 'Important notes' section in Changes.html, because changelog_update_rc ran logchange.py prepare --commit and pushed in one automated step with no chance to look at the result. logchange.py prepare already supports a commit-less dry pass for exactly this purpose; the wizard just wasn't using it. Split the step in three: changelog_update_rc now runs prepare without --commit, leaving CHANGELOG.md and changelog/ modified but uncommitted; review_changelog_rc shows the diff, builds Changes.html via gradlew :solr:documentation:changesToHtml, and opens it (new open_cmd var, platform-aware like the existing rename_cmd) for a spot check; commit_changelog_rc then re-runs prepare --commit (a no-op on what was already moved/generated) and pushes. Co-Authored-By: Claude Sonnet 5 <[email protected]> (cherry picked from commit 4257bb150e5e26b9ec2cea84e73e099da369d40b) --- dev-tools/scripts/releaseWizard.py | 1 + dev-tools/scripts/releaseWizard.yaml | 63 ++++++++++++++++++++++++++++++++---- 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/dev-tools/scripts/releaseWizard.py b/dev-tools/scripts/releaseWizard.py index cd0c3d9597e..4dbc667648f 100755 --- a/dev-tools/scripts/releaseWizard.py +++ b/dev-tools/scripts/releaseWizard.py @@ -135,6 +135,7 @@ def expand_jinja(text, vars=None): 'docker_version_to_remove': state.get_docker_version_to_remove(), 'editor': get_editor(), 'rename_cmd': 'ren' if is_windows() else 'mv', + 'open_cmd': 'start' if is_windows() else ('open' if is_mac() else 'xdg-open'), 'vote_close_72h': vote_close_72h_date().strftime("%Y-%m-%d %H:00 UTC"), 'vote_close_72h_epoch': unix_time_millis(vote_close_72h_date()), 'vote_close_72h_holidays': vote_close_72h_holidays(), diff --git a/dev-tools/scripts/releaseWizard.yaml b/dev-tools/scripts/releaseWizard.yaml index e797803a401..16779cf4e5f 100644 --- a/dev-tools/scripts/releaseWizard.yaml +++ b/dev-tools/scripts/releaseWizard.yaml @@ -755,26 +755,77 @@ groups: description: | This step first validates all changelogs in `changelog/unreleased/`. If there are any errors, they must be fixed before proceeding. - + It then moves changelog entries into `changelog/v{{ release_version }}/` and regenerates `CHANGELOG.md` without a release date. The date is updated later, in the `publish` phase. - The result is committed to `{{ release_branch }}` only. Cherry-picking to - `{{ stable_branch }}` and `main` is done in `publish` phase. + This step is deliberately run without `--commit`, leaving the result + uncommitted in the working tree so it can be spot-checked in the next + step before anything is committed or pushed. Can be run standalone, see `dev-tools/scripts/logchange.py prepare --help`. depends: dependency_updates_changes commands: !Commands root_folder: '{{ git_checkout_folder }}' - commands_text: Prepare changelog folder and regenerate CHANGELOG.md for RC{{ rc_number }} + commands_text: Prepare changelog folder and regenerate CHANGELOG.md for RC{{ rc_number }} (uncommitted) confirm_each_command: false commands: - !Command - cmd: python3 -u dev-tools/scripts/logchange.py prepare --version {{ release_version }} --release-branch {{ release_branch }} --gradle-cmd {{ gradle_cmd }} --rc-number {{ rc_number }} --commit - comment: Move unreleased entries to version folder and commit; then regenerate CHANGELOG.md and commit (two commits total) + cmd: python3 -u dev-tools/scripts/logchange.py prepare --version {{ release_version }} --release-branch {{ release_branch }} --gradle-cmd {{ gradle_cmd }} --rc-number {{ rc_number }} + comment: Move unreleased entries to version folder and regenerate CHANGELOG.md, left uncommitted logfile: changelog-update-rc.log tee: true + - !Todo + id: review_changelog_rc + title: Spot-check the changelog for RC{{ rc_number }} + description: | + Before committing, spot-check the changelog that was just regenerated. + This is the last easy chance to catch mistakes -- once RC{{ rc_number }} is + built and staged, fixing the changelog means a new RC and restarting the vote. + + Look at `git diff changelog/ CHANGELOG.md` and the rendered + `solr/documentation/build/site/changes/Changes.html` (opened below) for + things like: entries in the wrong section, an "Important notes" entry + that shouldn't be called out, duplicate/missing issues, and typos. + + If something needs fixing, edit the relevant file(s) under + `changelog/v{{ release_version }}/` and re-run this step's commands. + depends: changelog_update_rc + commands: !Commands + root_folder: '{{ git_checkout_folder }}' + commands_text: Show the changelog diff and open the rendered Changes.html for review + confirm_each_command: false + commands: + - !Command + cmd: git diff --stat changelog CHANGELOG.md + stdout: true + - !Command + cmd: "{{ gradle_cmd }} :solr:documentation:changesToHtml" + logfile: changes-to-html.log + tee: true + - !Command + cmd: "{{ open_cmd }} solr/documentation/build/site/changes/Changes.html" + stdout: true + post_description: | + Once the changelog looks right, proceed to the next step to commit and push it. + - !Todo + id: commit_changelog_rc + title: Commit and push changelog for RC{{ rc_number }} + description: | + Commits the reviewed changelog to `{{ release_branch }}` only. Cherry-picking to + `{{ stable_branch }}` and `main` is done in the `publish` phase. + depends: review_changelog_rc + commands: !Commands + root_folder: '{{ git_checkout_folder }}' + commands_text: Commit the reviewed changelog and push it to {{ release_branch }} + confirm_each_command: false + commands: + - !Command + cmd: python3 -u dev-tools/scripts/logchange.py prepare --version {{ release_version }} --release-branch {{ release_branch }} --gradle-cmd {{ gradle_cmd }} --rc-number {{ rc_number }} --commit + comment: Commit the (already reviewed) changelog entries and regenerated CHANGELOG.md + logfile: commit-changelog-update-rc.log + tee: true - !Command cmd: git push origin {{ release_branch }} comment: Push prepared changelog to {{ release_branch }}
