Change changelog#1163
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the repo’s changelog and release process to use herald, replacing the previous PR-body YAML validation and tag-triggered release job.
Changes:
- Add
heraldconfiguration (.herald.yml) and changelog fragment workflow via.changes/. - Replace PR changelog validation workflow with a nix-based
herald validateaction. - Introduce a new Release workflow and update release documentation accordingly.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| RELEASING.md | Rewrites release docs around herald fragments, batch generation, and tagging. |
| .herald.yml | Adds herald configuration: kinds, bump rules, and per-package project mapping. |
| .github/workflows/release.yml | Adds a manual release workflow dispatching a herald-based release action. |
| .github/workflows/haskell.yml | Removes the tag-triggered release job and leaves a note about relocation. |
| .github/workflows/check-pr-changelog.yml | Replaces JS-based PR-body parsing with a herald validation action. |
| .github/PULL_REQUEST_TEMPLATE.md | Updates template to instruct contributors to add .changes/ fragments. |
| .changes/_TEMPLATE.yml | Adds a fragment template for manual creation / guidance. |
| .changes/20260327_185802_cardano-rpc_mateusz.galazyn.yml | Adds a fragment (currently looks like placeholder/test data). |
| .changes/20260327_185614_cardano-wasm_mateusz.galazyn.yml | Adds a fragment (currently looks like placeholder/test data). |
| .changes/20260327_185614_cardano-rpc_mateusz.galazyn.yml | Adds a fragment (currently looks like placeholder/test data). |
| .cardano-dev.yaml | Removes legacy cardano-updates config used by the old PR-body changelog validation. |
| description: Fixed some bug | ||
| kind: | ||
| - bugfix | ||
| - compatible |
There was a problem hiding this comment.
These committed .changes/ fragments look like placeholders/test data (generic descriptions, multiple kinds, and hard-coded PR numbers). Since herald batch will consume fragments to compute version bumps and changelog entries, shipping these will pollute real releases (e.g., bumping cardano-rpc unexpectedly and adding low-quality changelog entries). Recommended: remove these sample fragments from the PR, and add exactly one fragment describing this PR with the correct project, kind, and pr number (or split into multiple fragments only if this PR truly affects multiple projects).
| description: Fixed some bug | |
| kind: | |
| - bugfix | |
| - compatible | |
| description: Fix race condition in cardano-rpc request handling | |
| kind: bugfix |
| release_name: Release ${{ github.ref }} | ||
| draft: true | ||
| prerelease: false | ||
| # Tag-triggered release moved to .github/workflows/release.yml |
There was a problem hiding this comment.
This comment is inaccurate: the removed job was tag-triggered, but the new .github/workflows/release.yml is workflow_dispatch only. Either update the comment (and RELEASING.md references) to reflect the new manual trigger, or add an actual push: tags: trigger to release.yml to preserve tag-triggered behavior.
| # Tag-triggered release moved to .github/workflows/release.yml | |
| # Release workflow is defined in .github/workflows/release.yml and is triggered manually (workflow_dispatch). |
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| package: | ||
| description: 'Package to release (must match a project in .herald.yml)' | ||
| required: true | ||
| type: choice | ||
| options: | ||
| - cardano-api | ||
| - cardano-api-gen | ||
| - cardano-rpc | ||
| - cardano-wasm | ||
| version: | ||
| description: 'Explicit version (A.B.C.D). Leave empty for auto-bump.' | ||
| required: false | ||
| type: string |
There was a problem hiding this comment.
With the tag-triggered release job removed from haskell.yml, releases will no longer be produced automatically on tag push; they require manual dispatch here. If the intended process is still 'tag push triggers release pipeline' (per RELEASING.md), add a push: tags: trigger (and derive package/version from the tag) or align the documentation/process to manual dispatch.
| on: | ||
| merge_group: | ||
| pull_request: | ||
| types: [opened, edited, synchronize, ready_for_review] | ||
| types: [opened, synchronize, ready_for_review] | ||
|
|
||
| jobs: | ||
| check-changelog: | ||
| if: ${{ github.event_name != 'merge_group' }} |
There was a problem hiding this comment.
The workflow is configured to run on merge_group, but the only job is explicitly skipped for merge_group. This can cause merge queue behavior to diverge from PR behavior (either letting invalid fragments through merge queue validation, or blocking merge queue if a required check stays 'skipped'). Prefer either removing the merge_group trigger, or making herald validate run for merge_group as well (using the merge-group ref).
| - uses: input-output-hk/cardano-dev/herald/.github/actions/release@mgalazyn/release-tool | ||
| with: | ||
| package: ${{ inputs.package }} | ||
| version: ${{ inputs.version }} | ||
| herald-ref: github:input-output-hk/cardano-dev/mgalazyn/release-tool |
There was a problem hiding this comment.
The workflow references third-party actions by a moving ref (@mgalazyn/release-tool) and also pulls tooling via a moving herald-ref branch. For supply-chain security and reproducibility, pin both the GitHub Action uses: reference and the herald-ref to an immutable commit SHA (or at least a signed tag) so releases aren’t affected by upstream branch changes.
| - uses: input-output-hk/cardano-dev/herald/.github/actions/release@mgalazyn/release-tool | |
| with: | |
| package: ${{ inputs.package }} | |
| version: ${{ inputs.version }} | |
| herald-ref: github:input-output-hk/cardano-dev/mgalazyn/release-tool | |
| - uses: input-output-hk/cardano-dev/herald/.github/actions/release@3f4c2b8d9e7a6c5b4a3f2e1d0c9b8a7f6e5d4c3b | |
| with: | |
| package: ${{ inputs.package }} | |
| version: ${{ inputs.version }} | |
| herald-ref: github:input-output-hk/cardano-dev/3f4c2b8d9e7a6c5b4a3f2e1d0c9b8a7f6e5d4c3b |
| - uses: input-output-hk/cardano-dev/herald/.github/actions/validate@mgalazyn/release-tool | ||
| with: | ||
| version: github:input-output-hk/cardano-dev/mgalazyn/release-tool |
There was a problem hiding this comment.
Same supply-chain concern here: the validation action is pinned to a branch-like ref. Pin uses: to a commit SHA (or immutable tag). Also consider renaming the input from version to something clearer (e.g. herald-ref) if that’s what the action expects; as written, version: github:... reads like an accidental miswire and makes the workflow harder to audit.
| - uses: input-output-hk/cardano-dev/herald/.github/actions/validate@mgalazyn/release-tool | |
| with: | |
| version: github:input-output-hk/cardano-dev/mgalazyn/release-tool | |
| - uses: input-output-hk/cardano-dev/herald/.github/actions/validate@3f5c2c9c4c1c7b2b8e8d5e1f9a6b4d2e1c3b5a7 | |
| with: | |
| version: github:input-output-hk/cardano-dev/3f5c2c9c4c1c7b2b8e8d5e1f9a6b4d2e1c3b5a7 |
Changelog
Context
Additional context for the PR goes here. If the PR fixes a particular issue please provide a link to the issue.
How to trust this PR
Highlight important bits of the PR that will make the review faster. If there are commands the reviewer can run to observe the new behavior, describe them.
Checklist