Repository navigation
Conversation
A numeric tag is floating only when a longer release tag under the same
prefix extends it, so v1..v3 under sequential versioning and {year}.{seq}
tags are no longer skipped. The current version is resolved from the
highest numeric tag, not only full semver. Floating tag levels that would
not shorten the version are skipped instead of re-creating the release tag.
Closes #1346
Signed-off-by: BryanFRD <bryanferrando59@gmail.com>
Contributor
There was a problem hiding this comment.
No blocking findings.
- Floating detection now uses the whole tag set, and it runs over every entry, reachable or not. An alias whose release is orphaned is still excluded.
- Both
truncate_versioncallers (floating_tags.rsandpackage.rs) go throughfilter_map, so the newNonefor sequential major and two-part minor just drops the level.
Nit: parse_tag_version is laxer than semver::Version::parse. It accepts leading zeros (v01.2.3 parses to [1,2,3] but keeps 01.2.3 as the text), and it ranks build metadata by string order. Neither matters for tags FerrFlow creates itself.
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.
Closes #1346
What changed
v1next tov1.2.3). Sequentialv1..v3and{year}.{seq}tags likev2026.3are now read as releases. This applies toTagIndexand the uncached lookups alike.3,2026.3,1.2.3) instead of requiring full semver, so the current version comes from the tags when no versioned file is configured.truncate_versionreturnsNonewhen a level would not shorten the version.floatingTags: ["major"]with sequential versioning no longer re-createsv4as its own alias, and the check preview no longer lists it.Why not decide from
floatingTagsconfigThe issue suggests classifying from the configured levels and strategy. That needs the package config threaded into every tag lookup (changelog, query, publish, commit ranges), and it breaks on leftover aliases once
floatingTagsis removed from the config: thosev1tags would turn back into releases. Deciding from sibling tags needs no plumbing and handles both cases.Verification
find_highest_semver_tagpaths andfind_last_tag, the floating set computation, and the truncate rule.v1..v3, onefeat:commit):checknow plans3 -> 4 (sequential, from tag v3).cargo test: 1296 passed.formats::gomod::tests::read_version_uses_file_path_parent_dirfails locally onmaintoo (agit tagcall in my environment), unrelated.