Skip to content

Add release config YAML and extend CLI flags#44

Open
guerler wants to merge 27 commits intogalaxyproject:mainfrom
guerler:tasks.000
Open

Add release config YAML and extend CLI flags#44
guerler wants to merge 27 commits intogalaxyproject:mainfrom
guerler:tasks.000

Conversation

@guerler
Copy link
Copy Markdown
Contributor

@guerler guerler commented Jan 21, 2026

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.

@guerler guerler changed the title Update tasks Replace CLI flags with release config YAML Jan 29, 2026
@mvdbeek
Copy link
Copy Markdown
Member

mvdbeek commented Jan 29, 2026

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 create-release. Without a schema northing in the yaml file is explicit, but you can easily validate the flags and describe them. If you insist an additional yaml file seems ok.

"--next-version",
type=ClickVersion(),
default=None,
help="Next release version (overrides config YAML).",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you describe how to determine the next version ? This is +1.dev0 right ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated this to: Next planned release version. The first release of a year is YY.0; subsequent releases increment the minor version.

@guerler guerler changed the title Replace CLI flags with release config YAML Add release config YAML and extend CLI flags Jan 29, 2026
- [ ] 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 .
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't that going to work with outdated data if we decide to add another release in a given year ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member

@mvdbeek mvdbeek Jan 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That does make sense, hence I moved the next release out of the yml into the cli only.

@guerler guerler requested a review from ahmedhamidawan April 11, 2026 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants