Skip to content

fix: migration version comparison handles semantic versioning pre-releases#780

Open
km-git007 wants to merge 1 commit intogarrytan:mainfrom
km-git007:fix/migration-version-comparison
Open

fix: migration version comparison handles semantic versioning pre-releases#780
km-git007 wants to merge 1 commit intogarrytan:mainfrom
km-git007:fix/migration-version-comparison

Conversation

@km-git007
Copy link
Copy Markdown

Adds helper functions _base_version() and _version_lte() to the setup migration logic to reliably compare semantic versions that may include pre-release tags (e.g., 0.15.2.0-rc1). By extracting base versions before comparison, we ensure that dev builds in the same release cycle as a migration's target version are handled correctly.

Simplifies the inline version comparison logic (replacing complex sort-based comparisons with clear, testable helpers) and adds documentation explaining the semantic versioning behavior.

Tested with realistic migration scenarios:

  • Fresh install: 0.0.0.0 -> 0.15.2.1 (runs v0.15.2.0 migration) ✓
  • Already migrated: stays at 0.15.2.0 (skips v0.15.2.0) ✓
  • Version bump: 0.15.2.0 -> 0.15.2.1 (runs v0.15.2.1) ✓
  • Dev version: 0.15.1.0 -> 0.15.2.0-rc1 (runs v0.15.2.0) ✓
  • Future migration: skips v0.15.3.0 when current is 0.15.2.1 ✓

…eases

Adds helper functions _base_version() and _version_lte() to the setup
migration logic to reliably compare semantic versions that may include
pre-release tags (e.g., 0.15.2.0-rc1). By extracting base versions before
comparison, we ensure that dev builds in the same release cycle as a
migration's target version are handled correctly.

Simplifies the inline version comparison logic (replacing complex sort-based
comparisons with clear, testable helpers) and adds documentation explaining
the semantic versioning behavior.

Tested with realistic migration scenarios:
- Fresh install: 0.0.0.0 -> 0.15.2.1 (runs v0.15.2.0 migration) ✓
- Already migrated: stays at 0.15.2.0 (skips v0.15.2.0) ✓
- Version bump: 0.15.2.0 -> 0.15.2.1 (runs v0.15.2.1) ✓
- Dev version: 0.15.1.0 -> 0.15.2.0-rc1 (runs v0.15.2.0) ✓
- Future migration: skips v0.15.3.0 when current is 0.15.2.1 ✓

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
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