Skip to content

Require all three parts of the version in a tag - #565

Merged
andiwand merged 1 commit into
mainfrom
require-the-whole-version-in-a-tag
Aug 3, 2026
Merged

Require all three parts of the version in a tag#565
andiwand merged 1 commit into
mainfrom
require-the-whole-version-in-a-tag

Conversation

@andiwand

@andiwand andiwand commented Aug 3, 2026

Copy link
Copy Markdown
Member

parseVersion padded a missing part with a zero, so v4.7 and v4.7.0 were the same
build under two names - version name 4.7.0, code 40700, either way. That padding is
why the tags are in two formats: nothing ever had to choose, and the choice drifted at
v4.8.0.

Three parts are required now, and a two-part version fails the release build rather than
being quietly completed. A convention could not have done this - the tag is the only
place the version exists, so the build is the only thing that can refuse a badly spelled
one.

-Podr.version before after
v4.8.0, 4.8.0 4.8.0 / 40800 unchanged
v4.7 4.7.0 / 40700 build error
v4.100.0 build error unchanged
unset 0.0.0 / 1 unchanged

Verified by configuring the build with each of those.

The existing tags are left alone

In both formats, deliberately, and README.md says why. A release asset is served from a
URL carrying its tag name, and F-Droid rebuilds old versions from those names, so
renaming them would break both to buy nothing: the version code has never depended on the
spelling.

Cleaned up alongside this, outside the tree

  • nine bare duplicates (3.2.5 next to v3.2.5) that existed only in a local clone -
    github never had them
  • the v.2.12.0 typo tag, same commit as v2.12.0, no release attached
  • github releases for the twelve tags between v1.1.7 and v2.11.5 that had none

Tags and releases are 55 each now, local matches remote, and v4.13.0 keeps the latest
badge.

🤖 Generated with Claude Code

parseVersion padded a missing part with a zero, so 'v4.7' and 'v4.7.0' were the
same build under two names - version name 4.7.0, code 40700, either way. That
padding is why the tags are in two formats: nothing ever had to choose, and the
choice drifted at v4.8.0.

Three parts are required now, and a two-part version fails the release build
rather than being quietly completed. A convention could not have done this; the
tag is the only place the version exists, so the build is the only thing that
can refuse a badly spelled one.

The tags already pushed are left as they are, in both formats. A release asset
is served from a URL carrying its tag name and F-Droid rebuilds old versions
from those names, so renaming them would break both to buy nothing: the version
code has never depended on the spelling.

Cleaned up alongside this, outside the tree: nine bare duplicates ('3.2.5' next
to 'v3.2.5') that existed only in a local clone, the 'v.2.12.0' typo tag, and
the twelve tags between v1.1.7 and v2.11.5 that had no github release. Tags and
releases are 55 each now, and match.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015yn6kzFspdCFEZFYZZxwY8
@andiwand
andiwand merged commit 9d3a3dc into main Aug 3, 2026
7 checks passed
@andiwand
andiwand deleted the require-the-whole-version-in-a-tag branch August 3, 2026 19:11
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