Skip to content

chore: sync ship-binary versions + NSIS PRODUCT_VERSION to 0.12.1#17

Merged
AA-EION merged 2 commits into
masterfrom
chore/version-sync-0.12.1
May 21, 2026
Merged

chore: sync ship-binary versions + NSIS PRODUCT_VERSION to 0.12.1#17
AA-EION merged 2 commits into
masterfrom
chore/version-sync-0.12.1

Conversation

@AA-EION
Copy link
Copy Markdown
Owner

@AA-EION AA-EION commented May 21, 2026

Why

The fork's GitHub release cadence drifted away from the in-tree version strings several PRs back. NSIS PRODUCT_VERSION was last bumped to 0.5.0 in #6; binary crate versions have been frozen at 0.6.0 / 0.1.0 since the fork started. v0.12.0 + (the now-yanked) v0.12.1 shipped without noticing — maxima.exe --version reported "0.1.0", Windows "Add/Remove Programs" said "0.5.0", and the new FInstall.txt's maxima_lib_version field showed "1.0.0".

User caught it in code review while reviewing the v0.12.1 cut.

What

Sync ship-binary crates + the NSIS installer's PRODUCT_VERSION to 0.12.1 (matching the about-to-be-re-tagged release):

Component Before After
installer/maxima-setup.nsi PRODUCT_VERSION 0.5.0 0.12.1
maxima-cli/Cargo.toml 0.6.0 0.12.1
maxima-bootstrap/Cargo.toml 0.6.0 0.12.1
maxima-service/Cargo.toml 0.6.0 0.12.1
maxima-tui/Cargo.toml 0.1.0 0.12.1
maxima-ui/Cargo.toml 0.1.0 0.12.1
maxima-lib/Cargo.toml 1.0.0 1.0.0 (library — referenced from FInstall.txt; staying)

No functional changes. Cargo.lock is gitignored.

Test plan

  • cargo check --target x86_64-pc-windows-gnu -p maxima-cli -p maxima-bootstrap -p maxima-service -p maxima-tui -p maxima-ui passes
  • CI windows + linux jobs
  • After merge: re-tag v0.12.1, verify MaximaSetup.exe installs with the right DisplayVersion in Windows registry

Context

The yanked v0.12.1 was created before this sync; merging this and re-tagging gives us a clean v0.12.1 with consistent version strings throughout the install tree.

🤖 Generated with Claude Code

The fork's GitHub release cadence drifted away from the in-tree
version strings several PRs back (last bumped to "0.4.0" at #6;
NSIS PRODUCT_VERSION stuck at "0.5.0" since then). v0.12.0 + v0.12.1
shipped without anyone noticing — `maxima.exe --version` reported
"0.1.0", Windows "Add/Remove Programs" said "0.5.0", and the new
`FInstall.txt`'s `maxima_lib_version` field showed "1.0.0".

Sync them all to "0.12.1" (matching the upcoming release tag) for
binary crates that ship in the installer:

* maxima-cli            0.6.0 → 0.12.1
* maxima-bootstrap      0.6.0 → 0.12.1
* maxima-service        0.6.0 → 0.12.1
* maxima-tui            0.1.0 → 0.12.1
* maxima-ui             0.1.0 → 0.12.1
* installer/PRODUCT_VERSION 0.5.0 → 0.12.1

`maxima-lib` keeps version "1.0.0" — it's the library, not a
shippable binary, and its version is referenced from
`FInstall.txt`'s `maxima_lib_version` field. Bumping it isn't
meaningful here.

No functional changes; needed before re-tagging v0.12.1 (the
earlier tag was yanked because it lacked this sync).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request synchronizes the version number to 0.12.1 across the installer and all workspace crates. The reviewer suggests adopting Cargo workspace inheritance to manage the project version and common dependencies from a single location, which would prevent the version drift seen in this PR.

Comment thread maxima-bootstrap/Cargo.toml Outdated
name = "maxima-bootstrap"
description = "Maxima handler for custom EA protocols"
version = "0.6.0"
version = "0.12.1"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

To prevent future version drift (as noted in the PR description where some components were stuck at 0.1.0 or 0.6.0), consider using workspace inheritance. By defining the version once in the root Cargo.toml under [workspace.package] and using version.workspace = true in the member crates, you ensure all components stay in sync automatically. This pattern can also be applied to common dependencies (like tokio, serde, clap, etc.) to maintain consistency across the workspace.

Gemini suggested workspace inheritance to prevent the very drift this
PR is fixing. Solving the root cause beats fixing symptoms — apply it.

* Add `[workspace.package] version = "0.12.1"` to the root Cargo.toml.
  Single source of truth, bumped at every release tag.
* Switch the 5 ship-binary crates (maxima-cli, maxima-bootstrap,
  maxima-service, maxima-tui, maxima-ui) from `version = "0.12.1"`
  to `version.workspace = true`. Next time only the root file needs
  editing.
* maxima-lib and maxima-resources opt OUT (keep their literal
  version):
  - maxima-lib's version is referenced from `FInstall.txt`'s
    `maxima_lib_version` field — we deliberately pin it at 1.0.0
    even as ship-binary versions roll forward, so consumers of the
    marker know which library API they're reading against.
  - maxima-resources is a build-time helper; its version is internal
    plumbing.

`cargo pkgid -p maxima-cli` now reports
`path+file:///…/maxima-cli#0.12.1`. Lockfile picked up the new
version cleanly.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@AA-EION AA-EION merged commit 419b7bb into master May 21, 2026
3 checks passed
@AA-EION AA-EION deleted the chore/version-sync-0.12.1 branch May 21, 2026 18:23
AA-EION added a commit that referenced this pull request May 21, 2026
Patch release covering:

* fix: is_done() over-counting + decoder poisoning across retries (#19)
  → resolves the silent-hang-after-"Installation finished!" bug a user
  hit during a TF2 install with one CDN-failing file.

The actual fix is already on master via #19. This PR just bumps the
on-disk version strings before tagging v0.12.2. Thanks to the
`[workspace.package] version` inheritance from #17, only the workspace
root Cargo.toml + NSIS `PRODUCT_VERSION` need updating; the five
ship-binary crates inherit automatically via `version.workspace = true`.

Co-authored-by: AA-EION <contactus@eionstudios.com>
Co-authored-by: Claude Opus 4.7 <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