chore: add release guide to dev docs, improve release CI, update version script - #354
Merged
wpbonelli merged 6 commits intoSep 8, 2026
Merged
Conversation
Rewrite the Releasing section to match the wording used in MODFLOW-ORG/modflowapi's DEVELOPER.md: document trusted publishing and the required release environment, add the trusted-publisher rename caveat, add a conda-forge step, and describe the develop reset. Fix the stale master branch references (the repo moved to main). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UVbcrMW2Ax1LwR9bskJdeu
The release branch is pushed by github-actions[bot], so GitHub fires no push or pull_request event for it and the draft release PR carries no checks. Make ci.yml a reusable workflow with a ref input, and have release.yml run it against the v<version> branch between prep and opening the PR. The PR job now depends on that run, so a release cannot be drafted while CI is red. Splits the PR creation out of prep into its own job and passes the changelog through the existing artifact. The rtd job is skipped on these called runs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UVbcrMW2Ax1LwR9bskJdeu
Add a workflow_dispatch trigger to release.yml with branch, version and run_tests inputs, mirroring modflowapi. The prep job resolves the version (from the version input, else from version.txt with its development suffix removed, else from the branch name on the push path), creates the v<version> branch itself, and pushes it. Pushing a release branch by hand keeps working. update_version.py gains --release (the current version with its development segment removed) and --post-release (the minor incremented with a '.dev0' suffix, for resetting develop). --get becomes --dry-run; the "Updated ..." lines move to stderr and the resolved version is printed on stdout whether or not it was written, so the develop reset can write and capture it in one call. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UVbcrMW2Ax1LwR9bskJdeu
Pull requests are squash merged, so the title becomes the commit message the release notes are generated from, and git-cliff drops anything that is not a conventional commit header without saying so. The title check runs on every pull request except the release and reset ones, which a bot opens and which are not squash merged. Ports MODFLOW-ORG/modflowapi#115. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GAtFFGBtJSR8f1bY2VNEZT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DEVELOPER.md--releaseand--post-releaseoptions toupdate_version.pycf MODFLOW-ORG/modflowapi#123