Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CI.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Both jobs use CircleCI's hosted Windows executor (`circleci/windows@5.0`).
2. The credential-free build validates the canonical remote, full tag SHA,
tag-to-SHA identity, protected `main` ancestry, and every project version
file. It provisions/asserts Node 24.x via the `OpenJS.NodeJS.LTS` winget
package, pnpm 10.18.1, the Rust MSVC target, Git, and Inno Setup 6.
package, pnpm 11.24.0, the Rust MSVC target, Git, and Inno Setup 6.
3. It uses a new temporary `WorkRoot`, runs `release-doctor.ps1`, then runs
`windows-release-build.ps1` with the immutable SHA and `-SmokeInstall`.
It never uploads. Four assets, `release-manifest.json`, and build logs are
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,12 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
version: 11

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: pnpm
cache-dependency-path: apps/desktop-tauri/pnpm-lock.yaml

Expand Down
1 change: 0 additions & 1 deletion apps/desktop-tauri/.npmrc
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
registry=https://registry.npmjs.org/
minimum-release-age=1440
2 changes: 1 addition & 1 deletion apps/desktop-tauri/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "desktop-tauri",
"private": true,
"version": "0.55.0",
"packageManager": "pnpm@10.18.1",
"packageManager": "pnpm@11.24.0",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
1 change: 1 addition & 0 deletions apps/desktop-tauri/pnpm-workspace.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
allowBuilds:
esbuild: true
minimumReleaseAge: 1440
2 changes: 1 addition & 1 deletion docs/BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

- **Rust** stable with the `x86_64-pc-windows-msvc` target
- **Microsoft Visual Studio Build Tools** with the **Desktop development with C++** workload
- **Node.js** 20+ and pnpm
- **Node.js** 22.13+ (24 recommended) and pnpm 11

Install the tools manually with rustup/winget/corepack, or use a tool manager
such as mise. There is no automatic Windows bootstrap script in this port.
Expand Down
2 changes: 1 addition & 1 deletion docs/release/ci-cd.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ gets the restricted `GH_TOKEN` context.
branches, PRs, non-semver tags, non-canonical remotes, tag/SHA mismatch,
and commits whose tag is not reachable from protected `origin/main`.
2. The build job provisions/asserts Node 24.x via the `OpenJS.NodeJS.LTS`
winget package, pnpm 10.18.1, the Windows MSVC Rust target, Git, and Inno
winget package, pnpm 11.24.0, the Windows MSVC Rust target, Git, and Inno
Setup 6. It validates every committed project version against the tag.
3. The build invokes `scripts/release-doctor.ps1 -SkipGitHub`, then
`scripts/windows-release-build.ps1 -Ref <full-SHA> -SmokeInstall` with a
Expand Down
6 changes: 3 additions & 3 deletions scripts/install-release-prerequisites.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -471,8 +471,8 @@ if (-not (Test-Path -LiteralPath $packageJsonPath -PathType Leaf)) {
}
$packageJson = Get-Content -Raw -LiteralPath $packageJsonPath | ConvertFrom-Json
$expectedPnpm = [string]$packageJson.packageManager -replace '^pnpm@', ''
if ($expectedPnpm -notmatch '^10\.18\.1$') {
throw "Unexpected packageManager '$($packageJson.packageManager)'; release pipeline pins pnpm 10.18.1."
if ($expectedPnpm -notmatch '^11\.24\.0$') {
throw "Unexpected packageManager '$($packageJson.packageManager)'; release pipeline pins pnpm 11.24.0."
}

Require-PrerequisiteCommand 'git' 'Git.Git' 'git' | Out-Null
Expand Down Expand Up @@ -586,4 +586,4 @@ if ($innoVersion -notmatch '^6\.') {
Write-Host "[ok] Inno Setup $innoVersion ($iscc)"

Write-Host ''
Write-Host "Release prerequisites passed (Git, Node $requiredNodeMajor, pnpm 10.18.1, Rust MSVC target, Inno Setup 6)."
Write-Host "Release prerequisites passed (Git, Node $requiredNodeMajor, pnpm 11.24.0, Rust MSVC target, Inno Setup 6)."
2 changes: 1 addition & 1 deletion scripts/release-pipeline.tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Assert-Throws { Assert-NodeMajor 'v23.11.0' 24 } 'non-24 Node major rejected by

$prerequisiteText = Get-Content -Raw -LiteralPath (Join-Path $scriptRoot 'install-release-prerequisites.ps1')
Assert-True ($prerequisiteText -match '\$requiredNodeMajor\s*=\s*24') 'release prerequisite pins Node major 24'
Assert-True ($prerequisiteText -match '10\\.18\\.1') 'release prerequisite keeps pnpm 10.18.1 pinned'
Assert-True ($prerequisiteText -match '11\\.24\\.0') 'release prerequisite keeps pnpm 11.24.0 pinned'

Assert-Equal (Normalize-GitHubRepository 'https://github.com/nesszer/Win-CodexBar.git') 'nesszer/win-codexbar' 'HTTPS canonical URL'
Assert-Equal (Normalize-GitHubRepository 'git@github.com:nesszer/Win-CodexBar.git') 'nesszer/win-codexbar' 'SSH canonical URL'
Expand Down
Loading