Add release config YAML and extend CLI flags#44
Add release config YAML and extend CLI flags#44guerler wants to merge 27 commits intogalaxyproject:mainfrom
Conversation
|
That's a step back in usability, please restore the explicit command line flags and add those that you think are not explicit, like the next version, so that this also mirrors the command structure of |
galaxy_release_util/cli/options.py
Outdated
| "--next-version", | ||
| type=ClickVersion(), | ||
| default=None, | ||
| help="Next release version (overrides config YAML).", |
There was a problem hiding this comment.
Can you describe how to determine the next version ? This is +1.dev0 right ?
There was a problem hiding this comment.
I updated this to: Next planned release version. The first release of a year is YY.0; subsequent releases increment the minor version.
| - [ ] Bootstrap the release notes | ||
|
|
||
| galaxy-release-util create-changelog ${version} --release-date ${release_date} --next-version ${next_version} | ||
| galaxy-release-util create-changelog ${version} --galaxy-root . |
There was a problem hiding this comment.
Isn't that going to work with outdated data if we decide to add another release in a given year ?
There was a problem hiding this comment.
The yml release config is created and committed for a specific release identified by ${version}. If an additional release is added later, it results in a new release configuration and a new release issue. Existing release data is not reused.
There was a problem hiding this comment.
I suppose what I'm saying is that if you want to change the next release version you have to PR the next release against galaxy first (e.g next release is 25.2, not 26.0), which is suboptimal. You're creating state in galaxy where none is needed.
There was a problem hiding this comment.
That does make sense, hence I moved the next release out of the yml into the cli only.
…and config utility
… in committed yml
This PR adds a YAML based release configuration file at doc source releases release version yml to make release metadata explicit, versioned, and shareable, while retaining and extending the existing explicit CLI flags for previous version, next version, freeze date, and release date. The YAML is optional by default, required only when explicitly passed, and CLI flags cleanly override YAML values so the tool can still be used without a config file. Release configuration resolution prefers the YAML when present, applies any CLI overrides, and hard fails on missing files, invalid structure, missing or null required fields, malformed versions or dates, or mismatches between the YAML and the positional release version, with only owner and repo retaining defaults. The change removes _get_next_release_version and deletes dead version derivation code paths, adds optional owner and repo fields to support private repository workflows, and threads them consistently through release issue generation, changelog creation, blocking checks, and PR resolution. Dry run handling is corrected and expanded across all commands, import time GitHub client side effects are removed, long standing parsing and precedence bugs are fixed, hardcoded project constants are replaced with metadata helpers, and TASKS.md is updated to document the new YAML first release workflow.