Skip to content

Release 2.0.0: numeric versioning, Windows MSI upgrades - #19

Open
evangress wants to merge 1 commit into
masterfrom
release/2.0.0
Open

evangress wants to merge 1 commit into
masterfrom
release/2.0.0

Conversation

@evangress

Copy link
Copy Markdown

Prepares the 2.0.0 release. Don't tag yet: test the installers from the manual build first (see the checklist).

Changes

  • Version 2.0.0 in mu/__init__.py and [tool.briefcase], and the CHANGES.md entry is finalised.
  • Release versions are plain numeric X.Y.Z from now on. MSI versions are numeric-only and Briefcase strips any suffix, so b1, b2 and b3 were all MSI version 2.0.0. Installers are now tested from a manual build.yml run, and fixes ship as the next patch (2.0.1). docs/release.md, docs/packaging.md, the build.yml header and CLAUDE.md document this.
  • Windows MSIs now replace the installed Nu. Briefcase 0.4.2's MSI template has no <MajorUpgrade>, so a new installer would install alongside the old one: two "Nu Editor" entries sharing files. 0.4.5 adds <MajorUpgrade AllowSameVersionUpgrades="yes">, which also handles the betas' identical 2.0.0 version.
    • Windows builds with Briefcase 0.4.5.
    • macOS and Linux stay on 0.4.2, because 0.4.5 breaks the AppImage (host_arch).
    • The pin is now set per matrix entry.
  • The MSI UpgradeCode is pinned as guid = "55aac296-…" under [tool.briefcase.app.mu.windows]. It's the value Briefcase has derived from the bundle id (uuid5("mu.kovir.org")) since b1, so existing installs are recognised. Pinning it means a future rename can't break upgrades.
  • [tool.briefcase] license now uses PEP 639 form, matching [project]. This clears Briefcase's "You should not release your project without resolving this warning".

Testing

  • Full suite: 1066 passed, 21 skipped. ruff check is clean, and mkdocs build --strict is clean.
  • briefcase.config.parse_config reports version 2.0.0 and the pinned guid for Windows, with no license warning.
  • Manual installer build: https://github.com/kovirlabs/nu/actions/runs/38062073228

Before tagging v2.0.0

Download the installers from the manual run above. Then:

  • Windows: install over an existing beta. Expect one "Nu Editor" entry in Apps, now 2.0.0.
  • Each OS: first launch with the network off.
  • Each OS:
    • run a script;
    • use the REPL;
    • run a Pygame Zero game;
    • step through the debugger;
    • install a package;
    • click Help.
  • Merge, then tag v2.0.0 on the merge commit.

🤖 Generated with Claude Code

- Version 2.0.0 (mu/__init__.py + [tool.briefcase]); CHANGES.md entry
  finalised.
- Release versions are plain numeric X.Y.Z from now on: MSI versions are
  numeric-only and Briefcase strips suffixes (so 2.0.0b1-b3 were all MSI
  version 2.0.0). Test installers from a manual build.yml run; ship
  fixes as the next patch. docs/release.md, docs/packaging.md, build.yml
  and CLAUDE.md say so.
- Windows builds with Briefcase 0.4.5, whose MSI template adds
  <MajorUpgrade AllowSameVersionUpgrades="yes">; 0.4.2's had none, so a
  new MSI would install alongside the old one instead of replacing it.
  macOS/Linux stay on 0.4.2 (0.4.5 breaks the AppImage); the pin is now
  per matrix entry.
- Pin the MSI UpgradeCode as `guid` (the value Briefcase has derived from
  the bundle id since b1), so a rename can't break upgrades.
- [tool.briefcase] license in PEP 639 form, clearing Briefcase's
  "should not release" warning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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