From e2c1af933ecdfe2d3e1b85a7eac9329465831a28 Mon Sep 17 00:00:00 2001 From: Stephan Orgiazzi Date: Tue, 25 Aug 2026 14:55:57 +0200 Subject: [PATCH 1/8] chore(release): set app version to 1.16.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4128666..f9a58b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "playdot-player", - "version": "0.16.0", + "version": "1.16.0", "private": true, "workspaces": [ "website" From 09db072fd3eb412021d68e5b39a49340f97434b7 Mon Sep 17 00:00:00 2001 From: Stephan Orgiazzi Date: Tue, 25 Aug 2026 14:56:08 +0200 Subject: [PATCH 2/8] chore(release): sync Tauri version to 1.16.0 --- src-tauri/tauri.conf.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index d881247..efc2f2b 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -2,7 +2,7 @@ "$schema": "https://schema.tauri.app/config/2", "productName": "PLAY.", "mainBinaryName": "playdot-player", - "version": "0.16.0", + "version": "1.16.0", "identifier": "com.playdot.player", "build": { "beforeDevCommand": "bun run dev", From 5067141cecd0b372ce5737f03ddf50786d0f57dc Mon Sep 17 00:00:00 2001 From: Stephan Orgiazzi Date: Tue, 25 Aug 2026 14:56:19 +0200 Subject: [PATCH 3/8] chore(release): sync Cargo version to 1.16.0 --- src-tauri/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 75cebcd..7e8a3f1 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "playdot-player" -version = "0.16.0" +version = "1.16.0" description = "Windows-first video player with Tauri and libmpv" authors = ["playdot player"] edition = "2021" From 5fbb0d1f1e00cec5d21847f30996ab6f8746b7af Mon Sep 17 00:00:00 2001 From: Stephan Orgiazzi Date: Tue, 25 Aug 2026 14:56:49 +0200 Subject: [PATCH 4/8] fix(store): align MSIX version with app version --- scripts/build-msix.ps1 | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/scripts/build-msix.ps1 b/scripts/build-msix.ps1 index 5ab6e3d..f9b7440 100644 --- a/scripts/build-msix.ps1 +++ b/scripts/build-msix.ps1 @@ -26,24 +26,27 @@ if ([string]::IsNullOrWhiteSpace($Version)) { } if ($Version -notmatch '^(\d+)\.(\d+)\.(\d+)$') { - throw "Version '$Version' must contain exactly three numeric components, such as 0.16.0." + throw "Version '$Version' must contain exactly three numeric components, such as 1.16.0." } $appMajor = [int]$Matches[1] $appMinor = [int]$Matches[2] $appPatch = [int]$Matches[3] -$packageMajor = $appMajor + 1 -foreach ($component in @($packageMajor, $appMinor, $appPatch)) { +if ($appMajor -lt 1) { + throw "Microsoft Store package versions require a non-zero major version. Use PLAY. 1.x or later." +} + +foreach ($component in @($appMajor, $appMinor, $appPatch)) { if ($component -lt 0 -or $component -gt 65535) { throw "Version '$Version' cannot be mapped to a valid Microsoft Store package version." } } -# The Store requires a four-part package version whose first component is non-zero -# and reserves the fourth component. Offset the semantic major by one so pre-1.0 -# PLAY. versions remain monotonic: 0.16.0 -> 1.16.0.0, 1.0.0 -> 2.0.0.0. -$packageVersion = "$packageMajor.$appMinor.$appPatch.0" +# Keep PLAY.'s public semantic version identical to the first three MSIX +# components. Microsoft requires a four-part package version and reserves +# the fourth component, so PLAY. 1.16.0 maps directly to MSIX 1.16.0.0. +$packageVersion = "$appMajor.$appMinor.$appPatch.0" if (-not $SkipBuild) { & bun run setup-lib From 8b182b2d5005e8079e072e65be5951368a9bac18 Mon Sep 17 00:00:00 2001 From: Stephan Orgiazzi Date: Tue, 25 Aug 2026 14:57:02 +0200 Subject: [PATCH 5/8] docs(store): document unified app and MSIX versioning --- docs/releasing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/releasing.md b/docs/releasing.md index 38787c5..01f1b43 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -1,6 +1,6 @@ # Releasing PLAY. -## Versioning before 1.0 +## Versioning - Publish a minor release for a meaningful batch of user-visible capabilities or behavior changes. - Publish a patch release for corrections to the latest supported release. @@ -38,7 +38,7 @@ Partner Center identity used by the package: - Package/Properties/PublisherDisplayName: `Dev Jam Studio` - Store ID: `9NXXT91JCTHX` -The Store package version is derived from PLAY.'s semantic version by adding one to the semantic major and reserving the fourth component for Store use. For example, PLAY. `0.16.0` produces package version `1.16.0.0`, and PLAY. `1.0.0` produces `2.0.0.0`. +The Store package keeps PLAY.'s semantic version unchanged in its first three components and reserves the fourth component for Store use. For example, PLAY. `1.16.0` produces package version `1.16.0.0`. Store builds require PLAY. `1.x` or later because Microsoft package versions cannot start with zero. Build locally on Windows with the Windows SDK installed: From f90017a3e5e323fe122432eab813fd7b2da8133c Mon Sep 17 00:00:00 2001 From: Stephan Orgiazzi Date: Tue, 25 Aug 2026 14:57:23 +0200 Subject: [PATCH 6/8] ci: sync release version in Cargo.lock --- .github/workflows/sync-version-lock.yml | 43 +++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/sync-version-lock.yml diff --git a/.github/workflows/sync-version-lock.yml b/.github/workflows/sync-version-lock.yml new file mode 100644 index 0000000..41fa60f --- /dev/null +++ b/.github/workflows/sync-version-lock.yml @@ -0,0 +1,43 @@ +name: Sync release version lock + +on: + push: + branches: + - chore/version-1.16.0 + +permissions: + contents: write + +jobs: + sync-cargo-lock: + if: github.actor != 'github-actions[bot]' + runs-on: ubuntu-latest + steps: + - name: Check out release branch + uses: actions/checkout@v4 + with: + ref: chore/version-1.16.0 + + - name: Sync PLAY. version in Cargo.lock + shell: bash + run: | + python - <<'PY' + from pathlib import Path + + path = Path('src-tauri/Cargo.lock') + content = path.read_text(encoding='utf-8') + old = '[[package]]\nname = "playdot-player"\nversion = "0.16.0"\n' + new = '[[package]]\nname = "playdot-player"\nversion = "1.16.0"\n' + if content.count(old) != 1: + raise SystemExit('Expected exactly one PLAY. 0.16.0 package entry in Cargo.lock') + path.write_text(content.replace(old, new), encoding='utf-8') + PY + + - name: Commit synchronized lockfile + shell: bash + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add src-tauri/Cargo.lock + git commit -m "chore(release): sync Cargo.lock version" + git push origin HEAD:chore/version-1.16.0 From 6b278d04a6350e56efc1e9b2dbe14c85dbfbab1d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 12:57:32 +0000 Subject: [PATCH 7/8] chore(release): sync Cargo.lock version --- src-tauri/Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 2f22f4a..333ab31 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2912,7 +2912,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "playdot-player" -version = "0.16.0" +version = "1.16.0" dependencies = [ "lofty", "serde", From 91b4c3fd4badc23fdf634d5bda3dfd97df2186f1 Mon Sep 17 00:00:00 2001 From: Stephan Orgiazzi Date: Tue, 25 Aug 2026 14:57:57 +0200 Subject: [PATCH 8/8] ci: remove temporary version sync workflow --- .github/workflows/sync-version-lock.yml | 43 ------------------------- 1 file changed, 43 deletions(-) delete mode 100644 .github/workflows/sync-version-lock.yml diff --git a/.github/workflows/sync-version-lock.yml b/.github/workflows/sync-version-lock.yml deleted file mode 100644 index 41fa60f..0000000 --- a/.github/workflows/sync-version-lock.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Sync release version lock - -on: - push: - branches: - - chore/version-1.16.0 - -permissions: - contents: write - -jobs: - sync-cargo-lock: - if: github.actor != 'github-actions[bot]' - runs-on: ubuntu-latest - steps: - - name: Check out release branch - uses: actions/checkout@v4 - with: - ref: chore/version-1.16.0 - - - name: Sync PLAY. version in Cargo.lock - shell: bash - run: | - python - <<'PY' - from pathlib import Path - - path = Path('src-tauri/Cargo.lock') - content = path.read_text(encoding='utf-8') - old = '[[package]]\nname = "playdot-player"\nversion = "0.16.0"\n' - new = '[[package]]\nname = "playdot-player"\nversion = "1.16.0"\n' - if content.count(old) != 1: - raise SystemExit('Expected exactly one PLAY. 0.16.0 package entry in Cargo.lock') - path.write_text(content.replace(old, new), encoding='utf-8') - PY - - - name: Commit synchronized lockfile - shell: bash - run: | - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - git add src-tauri/Cargo.lock - git commit -m "chore(release): sync Cargo.lock version" - git push origin HEAD:chore/version-1.16.0