chore(ci): replace unmaintained release-drafter fork with upstream v7.5.1 - #15439
Open
Maffooch wants to merge 1 commit into
Open
chore(ci): replace unmaintained release-drafter fork with upstream v7.5.1#15439Maffooch wants to merge 1 commit into
Maffooch wants to merge 1 commit into
Conversation
….5.1 This workflow pinned valentijnscholten/release-drafter, a fork whose only functional delta over upstream was a `previous-version` input. That input existed because upstream could not start a changeset from an arbitrary release, so a minor-to-minor changeset was not expressible. Upstream now covers that use case with `filter-by-range`, which restricts which past releases are eligible to be treated as the previous release by evaluating each tag with semver.satisfies(). Passing the previous minor tag exactly (e.g. '3.1.0') selects it as the start of the changeset, so the fork is no longer needed: filter-by-range: '*' -> 3.1.303 (most recent, previous behaviour) filter-by-range: '>=3.1.0 <3.2.0' -> 3.1.303 down to the newest 3.1.x filter-by-range: '3.1.0' -> 3.1.0 (minor-to-minor) The fork has also been frozen since 2021 and cannot parse the current config's category schema beyond ignoring it: its Joi schema validates with allowUnknown, so the `when:` keys added in #15264 are silently dropped and every category collapses to an empty label set. Its next run would have produced an ungrouped changelog. A `dry-run` input is added so the range can be confirmed without writing to a release draft. Unset inputs are safe: the action maps an empty string to undefined, so omitting `filter-by-range` keeps the previous behaviour. Verified with actionlint. The workflow file name is kept so the existing Actions run history stays associated; only the display name changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Shortcut: sc-14091
Summary
release_drafter_valentijn.ymlpinnedvalentijnscholten/release-drafter@f587de96, a fork of release-drafter frozen since 2021-01-23. This repoints it at upstreamrelease-drafter/release-drafter@v7.5.1and expresses the fork's one feature using an upstream input.Why the fork existed, and why it no longer needs to
The fork's only functional delta over upstream was a
previous-versionaction input. It existed because upstream could not start a changeset from an arbitrary release, so a minor-to-minor changeset was not expressible: you could only diff back to the most recent patch.Upstream now solves this with
filter-by-range, which restricts which past releases are eligible to be picked as the previous release, evaluating each tag with node'ssemver.satisfies(). Verified against the realsemverlibrary using this repo's tags:filter-by-range*(default, unset)3.1.303>=3.1.0 <3.2.03.1.x3.1.x3.1.03.1.0only3.1.0(minor-to-minor)So the minor-to-minor case is now a supported upstream configuration, with the same single manual value previously typed into
previous-version.Note that upstream still has no
previous-versioninput; bothaction.ymlfiles were read at their pinned SHAs to confirm. This is a re-expression viafilter-by-range, not a rename.Secondary reason: the fork can no longer read our config correctly
The fork's
lib/schema.jsvalidates withallowUnknown: true, so thewhen:keys introduced in #15264 are silently dropped rather than rejected. Every category then collapses to an empty label set, so the next dispatch would have drafted an ungrouped changelog. This did not surface because #15264 merged 2026-07-17, after the workflow's last run on 2026-07-13.Changes
uses:->release-drafter/release-drafter@4d75298e(v7.5.1), hash-pinned to match the repo conventionprevious-versioninput ->filter-by-range, with usage guidance in the input descriptiondry-runinput, so a range can be confirmed without writing to a release draftVerification
actionlintclean on the changed workflowvalentijnscholtenreferences remain under.github/getActionInputmapscore.getInput(name) || undefined, so omittingfilter-by-rangepreserves current behaviourSuggested first run after merge: dispatch with
dry-run: trueandfilter-by-rangeset to the previous minor tag, and confirm the logged changeset starts where expected.Related
Paired with #15440, which migrates the deprecated
version-resolverblock in.github/release-drafter.yml. Merge this PR first: that migration adds title-lesstype: version-resolvercategories, which the old fork's Joi schema rejects outright ("title" is required), so merging it while the fork is still pinned would break this workflow's next dispatch.