Skip to content

Survive the openvox repo's broken nested tags when picking a release - #473

Closed
miharp wants to merge 1 commit into
OpenVoxProject:masterfrom
miharp:fix/git5-tag-listing
Closed

Survive the openvox repo's broken nested tags when picking a release#473
miharp wants to merge 1 commit into
OpenVoxProject:masterfrom
miharp:fix/git5-tag-listing

Conversation

@miharp

@miharp miharp commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

#472 bumped the git gem from ~> 4.0 to ~> 5.2, and Gemfile.lock is not committed, so CI and fresh local setups now resolve git 5.x. That breaks Repo#newest_release, which every rake references:* invocation without an explicit VERSION goes through: git 5.x's Git::Base#tags re-resolves each tag name while enumerating and raises on the literal tags/2.6.0rc1, tags/2.6.0rc2, and tags/2.6.0rc3 tags that exist in the upstream openvox repository (a fresh clone has them, so CI hits it too):

Git::UnexpectedResultError: Tag 'tags/tags/2.6.0rc1' does not exist.

First seen on #468's CI, whose series feature routes VERSION=8.x through the same resolution (failing run), but master is equally affected for the default no-VERSION path.

The gem offers no non-raising listing (Git::Base#lib is deprecated in 5.x and delegates back to the same path), so newest_release now lists names with a plain git tag --list (new tag_names helper) and parses those, discarding non-version names via filter_map instead of mapping them to version 0.

Verified locally against git 5.2.0: newest_release resolves 8.28.1 from the vendored openvox clone (which carries the three junk tags), and a full bundle exec rake references:openvox run completes.

Worth passing to the openvox maintainers separately: deleting the three tags/2.6.0rc* tags from the repository would remove the hazard at the source.

Assisted by Claude.

The git gem 5.x bump (OpenVoxProject#472) broke every reference build that resolves
the newest release tag itself (any `rake references:*` without an
explicit VERSION). Git::Base#tags re-resolves each tag name and, since
5.x, raises on the literal `tags/2.6.0rc1..3` tags that exist in the
upstream openvox repository:

  Git::UnexpectedResultError: Tag 'tags/tags/2.6.0rc1' does not exist.

The gem offers no non-raising listing (Git::Base#lib is deprecated and
delegates back to the same path), so list tag names with a plain
`git tag --list` and parse those; names that are not versions are
discarded, which also replaces the old trick of mapping them to
version 0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Michael Harp <mike@mikeharp.com>
@miharp
miharp requested a review from a team as a code owner September 3, 2026 14:41
@miharp miharp closed this Sep 4, 2026
@miharp
miharp deleted the fix/git5-tag-listing branch September 4, 2026 11:25
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.

1 participant