Skip to content

feat: add release-please workflow generation - #1831

Merged
QuentinBisson merged 5 commits into
mainfrom
add-release-please-generation
May 21, 2026
Merged

feat: add release-please workflow generation#1831
QuentinBisson merged 5 commits into
mainfrom
add-release-please-generation

Conversation

@QuentinBisson

@QuentinBisson QuentinBisson commented May 21, 2026

Copy link
Copy Markdown
Contributor

What

Adds --release-workflow=release-please support to devctl gen workflows.

New flags

Flag Values Default
--release-workflow legacy, release-please legacy
--changelog-style legacy, release-please legacy
--auto-release none, patch, minor, major none

Generated files (release-please mode)

File Type Notes
.github/workflows/zz_generated.release-please.yaml Regenerable Calls the giantswarm/github-workflows reusable workflow
release-please-config.json Scaffolding (generate-once) changelog-sections mapped to ### Added/Changed/Fixed (legacy style) or Angular preset (release-please style)
.release-please-manifest.json Scaffolding (generate-once) Initialised to {}; Release Please updates it on every run

Config and manifest use plain filenames (no zz_generated. prefix) so subsequent devctl gen runs skip them if the files already exist. Users can extend the config freely, e.g. add version-files for repos that embed their version in Go source.

Legacy mode

Unchanged. create_release, create_release_pr, and validate_changelog continue to be generated as before when --release-workflow=legacy (the default).

Scraper compatibility

legacy changelog style maps feat### Added, fix### Fixed, and everything else → ### Changed, preserving the section headers the devctl changelog parser (used by giantswarm/releases release notes) hardcodes.

Depends on

giantswarm/github-workflows#176

Adds devctl gen workflows --release-workflow=release-please support.

New flags:
  --release-workflow  legacy (default) | release-please
  --changelog-style   legacy (default) | default
  --auto-release      none (default) | patch | minor | major

When --release-workflow=release-please devctl generates:
  - zz_generated.release-please.yaml (always regenerated): calls the
    giantswarm/github-workflows release-please reusable workflow
  - release-please-config.json (generate-once): Release Please config
    with changelog-sections mapped to ### Added/Changed/Fixed (legacy
    style) or Angular preset (default style)
  - .release-please-manifest.json (generate-once): empty manifest
    initialised to {}; Release Please updates it on first run

Legacy mode is unchanged: create_release, create_release_pr, and
validate_changelog continue to be generated as before.

The config and manifest files use plain filenames (no zz_generated.
prefix) so they are generate-once scaffolding: devctl skips them on
subsequent runs if they already exist, letting users extend them (e.g.
add version-files for repos like architect).
@QuentinBisson
QuentinBisson requested a review from a team May 21, 2026 11:08
@uvegla

uvegla commented May 21, 2026

Copy link
Copy Markdown
Contributor

--auto-release was not implemented in the end? 🤔

@QuentinBisson

QuentinBisson commented May 21, 2026

Copy link
Copy Markdown
Contributor Author

I'm discussing this with @fiunchinho right now because we cannot fully implement auto releases for now as we still need a human to approve the release PRs. We can add it afterwards and still provide the release PR with release-please for now

@QuentinBisson
QuentinBisson marked this pull request as ready for review May 21, 2026 11:35
@QuentinBisson
QuentinBisson requested a review from a team as a code owner May 21, 2026 11:35
@QuentinBisson
QuentinBisson merged commit c14c46b into main May 21, 2026
4 checks passed
@QuentinBisson
QuentinBisson deleted the add-release-please-generation branch May 21, 2026 11:37
QuentinBisson added a commit that referenced this pull request May 21, 2026
…se-please-config (#1833)

* feat(gen/workflows): map security: commits to ### Security in release-please-config

Both --changelog-style=legacy and --changelog-style=release-please now route
the security: conventional commit type to ### Security in the generated
release-please-config.json. The release-please style also now emits the full
Angular-to-Keep-a-Changelog mapping (feat to ### Added, fix to ### Fixed,
remaining types to ### Changed) instead of falling back to Release Please's
Angular defaults.

Release Please matches changelog-sections on commit type only, so a dedicated
security: type is required to route CVE fixes and vulnerability mitigations
to ### Security without rewriting PR titles.

* chore: regenerate release_please template SHA after #1831
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