You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ds...@apache.org on 2026/09/27 18:46:30 UTC
(solr) 06/06: releaseWizard: pause for changelog review before RC changelog is committed/pushed
This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch branch_9_11
in repository https://gitbox.apache.org/repos/asf/solr.git
commit 4257bb150e5e26b9ec2cea84e73e099da369d40b
Author: David Smiley <ds...@apache.org>
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 <no...@anthropic.com>
---
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 }}