nvidia/developer-release-rebase
> Prepare a new minor alpha release of Earth2Studio by rebasing the release candidate branch onto main, bumping the version, updating the changelog, updating the README latest-news highlights, stripping example version tags, and pushing for PR. Use when releasing, cutting a release, preparing a release branch, rebasing a release, or bumping the version for a new development cycle.
npx skills add https://github.com/NVIDIA/earth2studio --skill developer-release-rebase
Prepare a new minor alpha release of Earth2Studio by rebasing the release
candidate branch onto main, bumping the version, updating the changelog,
updating the README latest-news highlights, stripping pinned version tags
from examples, and pushing a PR branch.
Follow every step below in order. Each step that requires user input is
marked with a confirmation gate — wait for explicit approval before proceeding.
earth2studio/__init__.py to get the current __version__ string.X.Y.*-rc* (or X.Y.0rcN),the next version is X.(Y+1).0a0.
already reflect the new alpha — note this.
Print both versions (current and target) and ask the user to confirm before
proceeding.
Confirm:
origin points to the user's fork of Earth2Studio.upstream points to https://github.com/NVIDIA/earth2studio.git (or the SSH equivalent).If either is wrong, stop and ask the user to fix it.
If the repo is already on a branch named X.Y.0-rebase, confirm with the user
that it was created from the X.Y.*-rc branch and skip the checkout commands.
Otherwise, create the rebase branch:
git fetch upstream X.Y.*-rc
git checkout X.Y.*-rc
git checkout -b X.Y.0-rebase
(Replace X.Y.*-rc with the actual tag/branch name matching the current
release candidate.)
Check whether the rebase branch already has main as an ancestor:
git merge-base --is-ancestor main HEAD && echo "Already rebased" || echo "Needs rebase"
If a rebase is needed:
git checkout main
git pull upstream main
git checkout X.Y.0-rebase
git rebase main
If the branch is already rebased, skip this and proceed.
Read CHANGELOG.md and insert a new blank section above the most recent
version entry. Use YYYY-MM-xx as the date placeholder where YYYY-MM is the
month after the released version's date (e.g., if releasing 0.17.0 on
2026-07-30, the next dev section gets 2026-08-xx).
The new section must look exactly like this (substituting the version number):
## [X.(Y+1).0a0] - YYYY-MM-xx
### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security
### Dependencies
Also ensure the released version section (the one just below):
[0.14.0] not[0.14.0a0]).
YYYY-MM-DD format.If the released section does not already have a date set, ask the user what date
to use before proceeding.
Run these two commands in sequence:
uv run hatch version minor
uv run hatch version alpha
After running, read earth2studio/__init__.py and confirm it now contains
X.(Y+1).0a0.
If the pre-commit hook pyupgrade fails due to a Python version incompatibility
(a known issue with Python 3.14), it is safe to skip with
SKIP=pyupgrade on the subsequent commit step — note this to the user.
Remove pinned @X.Y.Z git tags from all example install blocks:
find examples/ -type f -exec sed -i 's/@[0-9]\+\.[0-9]\+\.[0-9]\+[a-z0-9]*//g' {} \;
Show a git diff --stat examples/ summary so the user can verify the changes
look correct.
Update docs/userguide/about/install.md to reference the new released version tag.
@0.14.0) withthe new release tag (e.g., @0.15.0) in the install guide.
nvcr.io/nvidia/pytorch:XX.YY-py3) tothe latest recommended container version if it has changed.
git diff docs/userguide/about/install.md summary so the user canverify the changes look correct.
Update docs/_static/switcher.json to include the new released version.
docs/_static/switcher.json.X.Y.0) immediately afterthe main entry (which should remain at the top with "preferred": true).
"preferred": true — only mainshould be preferred.
Show the diff to the user for review.
Update the "Latest News" section in README.md with highlights from the
released version's CHANGELOG entry (the section just below the new blank
development section added in Step 3).
CHANGELOG.md and identify the 3–5 most notable items from thereleased version's ### Added subsection. Prefer items that introduce new
model classes, new data sources, or significant new capabilities.
## Latest News section in README.md.> [!NOTE] block and the"For a complete list…" line) with new bullets summarising the highlights.
Follow the existing style:
exists) followed by a comma and a short description.
> [!NOTE] version callout and update it to reference the newreleased version number if it changed.
Print the updated Latest News section and ask the user to confirm before
proceeding.
Skip this step. Skill versions are managed separately and should NOT
be updated during the release rebase process.
Update the suggested version placeholder in the bug report template to
reference the new released version.
.github/ISSUE_TEMPLATE/bug_report.yml.placeholder: value (e.g., "example: 0.14.0") with"example: X.Y.0" (the new released version).
Stage only the expected files and commit:
git add CHANGELOG.md
git add earth2studio/__init__.py
git add examples/
git add README.md
git add docs/_static/switcher.json
git add docs/userguide/about/install.md
git add skills/
git add .github/
git commit -m "Update version to X.(Y+1).0a0"
If pre-commit hooks fail due to a tool incompatibility (not a code issue), use
SKIP=<hook-id> to bypass the broken hook and retry.
Push the branch to origin:
git push origin X.Y.0-rebase
After pushing, remind the user:
> Use Rebase merge, not Squash, when merging the PR.
Take nvidia/developer-release-rebase from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.