Skip to content

fix(release): ship workflow changes by releasing ci/build/refactor#268

Merged
botantler[bot] merged 3 commits into
mainfrom
claude/release-ship-workflow-changes
Jun 1, 2026
Merged

fix(release): ship workflow changes by releasing ci/build/refactor#268
botantler[bot] merged 3 commits into
mainfrom
claude/release-ship-workflow-changes

Conversation

@devantler
Copy link
Copy Markdown
Contributor

🤖 Generated by the Daily AI Assistant

Problem

This repo's reusable workflows are its product, but the release config only ships a subset of the changes consumers depend on.

.releaserc uses @semantic-release/commit-analyzer with default (angular) rules, under which only feat: (minor) and fix:/perf: (patch) cut a release. Workflow-changing commit types — ci:, build:, refactor: — produce no release, so the change lands on main but is never tagged, and consumers pinned to a tag (e.g. @v5.3.0) never inherit it.

Concrete evidence — govulncheck is stranded right now

#266 (ci(security): add govulncheck supply-chain scanning to validate-go-project) was promoted and merged to main (aead873) specifically to give every Go consumer supply-chain scanning. But the 🎉 Create Release run on that commit reported:

[@semantic-release/commit-analyzer] ℹ Analysis of 4 commits complete: no release
ℹ There are no relevant changes, so no new version is released.

No v5.4.0 was cut — latest release is still v5.3.0 (2026-05-29, pre-merge). So validate-go-project.yaml's new govulncheck job exists on main but no consumer will ever run it (ksail pins @v5.3.0, go-template inherits the same way). The promoted PR's value is silently lost.

Fix

Add releaseRules to commit-analyzer so the workflow-changing types trigger a patch release:

{ "type": "ci",       "release": "patch" }
{ "type": "build",    "release": "patch" }
{ "type": "refactor", "release": "patch" }

Custom releaseRules are evaluated before the defaults and are purely additive — feat:→minor, fix:/perf:→patch, revert:→patch all still apply, and chore:/docs:/test:/style: still correctly don't release. Rationale: in this repo, a ci:/build:/refactor: change is a change to the shipped product, so it must reach consumers; an occasional no-op patch (consumer renovate bumps the pin) is far cheaper than silently stranding a feature.

Self-completing: once merged, the next Create Release run analyses all commits since v5.3.0 — including the stranded ci(security) govulncheck commit — and (with these rules) cuts the patch release that finally ships govulncheck. The PR title is fix(...) so the release fires regardless.

Also updates AGENTS.md rule 6 to document exactly which commit types release (was ambiguous — it listed chore:/ci: "for semantic-release" though neither released).

Validation

  • .releaserc is valid JSON (python3 -m json.tool).
  • releaseRules semantics confirmed against semantic-release docs (custom rules first, then defaults; additive).
  • Docs kept in sync in the same PR.

Trade-offs / notes

  • ci: also covers this repo's own meta-CI (e.g. sync-labels); those will now cut a harmless patch. Acceptable — under-releasing strands consumer-facing features (the bug above); over-releasing only adds a no-op tag.
  • If the maintainer prefers ci: stay non-releasing and instead wants workflow changes authored as feat:/fix:, that's an alternative — but it relies on author discipline and wouldn't recover the already-merged govulncheck commit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 1, 2026 07:22
@github-project-automation github-project-automation Bot moved this to 🫴 Ready in 🌊 Project Board Jun 1, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the repository’s semantic-release configuration so that workflow-impacting conventional commit types (ci:, build:, refactor:) produce a patch release, ensuring reusable workflow changes are actually shipped to tag-pinned consumers.

Changes:

  • Configure @semantic-release/commit-analyzer with releaseRules to release patch for ci, build, and refactor commit types.
  • Update AGENTS.md to document which conventional commit types trigger releases.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
.releaserc Adds releaseRules so workflow-changing commit types cut patch releases.
AGENTS.md Updates contributor guidance to reflect release-triggering commit types.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread AGENTS.md Outdated
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@devantler devantler marked this pull request as ready for review June 1, 2026 10:11
Copilot AI review requested due to automatic review settings June 1, 2026 10:11
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment thread AGENTS.md Outdated
Address Copilot review thread: the ! breaking-change indicator applies to
any commit type (refactor!:, ci!:, …), not only feat!:/fix!:.

> 🤖 Generated by the Daily AI Assistant
@botantler botantler Bot enabled auto-merge (squash) June 1, 2026 11:19
@botantler botantler Bot merged commit a8da0a8 into main Jun 1, 2026
40 checks passed
@botantler botantler Bot deleted the claude/release-ship-workflow-changes branch June 1, 2026 11:23
@github-project-automation github-project-automation Bot moved this from 🫴 Ready to ✅ Done in 🌊 Project Board Jun 1, 2026
@botantler
Copy link
Copy Markdown
Contributor

botantler Bot commented Jun 1, 2026

🎉 This PR is included in version 5.3.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@botantler botantler Bot added the released an issue that has been solved in a release label Jun 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released an issue that has been solved in a release

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants