Skip to content

feat(config): add configurable floating tag aliases - #189

Merged
BryanFRD merged 2 commits into
mainfrom
feat/floating-tags
Mar 31, 2026
Merged

BryanFRD merged 2 commits into
mainfrom
feat/floating-tags

Conversation

@BryanFRD

Copy link
Copy Markdown
Contributor

Summary

  • Add floatingTags config option at workspace and package level (["major"], ["major", "minor"])
  • On each release, create/move floating tags (e.g. v1 for v1.2.3) pointing to the latest matching release
  • Block backward tag movement by default, allow with --force flag
  • Add truncate_version helper, create_or_move_tag/force_push_tags/get_tag_message git operations
  • Update JSON schema with floatingTags property

Closes #54

Test plan

  • Run ferrflow check with floatingTags: ["major"] — should show floating tag info
  • Run ferrflow release — should create floating tag v1 alongside v1.x.y
  • Verify backward detection blocks release without --force
  • Verify --force allows backward movement with warning
  • Verify JSON schema validates with floatingTags array

@codecov

codecov Bot commented Mar 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 20.00000% with 64 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/monorepo.rs 0.00% 42 Missing ⚠️
src/git.rs 33.33% 16 Missing ⚠️
src/config.rs 0.00% 4 Missing ⚠️
src/cli.rs 0.00% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Benchmark

Details
Benchmark suite Current: f14872a Previous: 78fbf93 Ratio
commit_parsing/100 17254 ns/iter (± 59) 17624 ns/iter (± 190) 0.98
commit_parsing/1000 175554 ns/iter (± 1209) 179329 ns/iter (± 2467) 0.98
commit_parsing/10000 1825404 ns/iter (± 17092) 1851483 ns/iter (± 21082) 0.99
changelog/build_50 8216 ns/iter (± 35) 8314 ns/iter (± 53) 0.99
changelog/build_500 70470 ns/iter (± 377) 71198 ns/iter (± 560) 0.99
version_files/toml_read 8663 ns/iter (± 74) 8483 ns/iter (± 90) 1.02
version_files/toml_write 135976 ns/iter (± 15326) 133175 ns/iter (± 10330) 1.02
version_files/json_read 5310 ns/iter (± 88) 5295 ns/iter (± 55) 1.00
version_files/json_write 146532 ns/iter (± 34611) 126335 ns/iter (± 10758) 1.16
version_files/xml_read 5170 ns/iter (± 124) 5136 ns/iter (± 38) 1.01
version_files/xml_write 134387 ns/iter (± 19626) 126712 ns/iter (± 9731) 1.06
version_files/gradle_read 4995 ns/iter (± 34) 5066 ns/iter (± 65) 0.99
version_files/gradle_write 186014 ns/iter (± 33356) 129143 ns/iter (± 9797) 1.44
config_loading/single 10299 ns/iter (± 71) 10343 ns/iter (± 123) 1.00
config_loading/mono_10 15574 ns/iter (± 336) 15398 ns/iter (± 127) 1.01
config_loading/mono_50 40215 ns/iter (± 377) 39502 ns/iter (± 497) 1.02

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: f14872a Previous: 78fbf93 Ratio
version_files/gradle_write 186014 ns/iter (± 33356) 129143 ns/iter (± 9797) 1.44

This comment was automatically generated by workflow using github-action-benchmark.

@BryanFRD
BryanFRD merged commit 62cfba5 into main Mar 31, 2026
11 checks passed
@BryanFRD
BryanFRD deleted the feat/floating-tags branch March 31, 2026 15:26
BryanFRD added a commit that referenced this pull request Apr 22, 2026
* feat(config): add configurable floating tag aliases

* feat(schema): add floatingTags to JSON schema
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Configurable floating tag aliases (vX, vX.Y, vX.Y.Z)

1 participant