fix: correct tag prefix and drop the unusable release fallback tag - #13
Merged
Conversation
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.
What broke
The Python and PHP publish jobs failed on the merge of #11 with:
fallbackTagwas set. Readingietf-tools/semver-action@v1.11.0, the fallback is gated onsemver.valid(fallbackTag)— andpython/v1.0.0is not valid semver, so it was silently discarded and the job fell through to the error. The fallback expects the bare version, with the prefix supplied separately.That is moot anyway: the action's own docs say "The fallback tag must exist already", because immediately afterwards it calls
compareCommitsWithBaseheadagainst<prefix><tag>. A fallback pointing at a tag that was never created cannot work. It has been removed rather than corrected.Also fixed
Double
vin every tag name. The action emitsnextas`${prefix}v${version}`— it adds thevitself. Withprefix: javascript/vthe first release would have been taggedjavascript/vv1.0.1. The prefix is nowjavascript/and the tag comes out asjavascript/v1.0.1, which is what the version-strip steps downstream already assume.Tag lookup window too small.
maxTagsToFetchdefaulted to 10, and the action fetches the newest tags across the whole repo before filtering by prefix. With three languages releasing independently, a quiet language's last tag drops out of a 10-tag window and its next release resolves against the wrong base. Raised to 100.Seed tags created
The repository had no tags at all, and nothing is published on npm, PyPI or Packagist. Since the fallback cannot bootstrap an empty repo, the initial tags were pushed by hand at the initial commit (
9511b85):The next merge that touches a language directory compares against its tag and, with
patchAll: true, publishes1.0.1. Version1.0.0itself is never published — it only exists as the starting point.Merge order
Merge this first. It only touches
.github/workflows/, which the release paths-filter ignores, so merging it publishes nothing. Then merge #12, which fixes the JavaScript build that failed on the #11 merge — that one touches all three directories and will trigger the first real release.