From d95f1ca9681a7e6a1df7acbbb3e874f6e420719a Mon Sep 17 00:00:00 2001
From: James Williams <29534093+williajm@users.noreply.github.com>
Date: Sat, 5 Sep 2026 16:47:39 +0100
Subject: [PATCH 1/4] Prepare 1.1.0 with Windows executable releases
---
.github/workflows/ci.yml | 2 +-
.github/workflows/release.yml | 90 +++++++-
CHANGELOG.md | 31 +++
CLAUDE.md | 14 +-
Makefile | 10 +-
README.md | 41 +++-
docs/getting-started.md | 25 ++-
docs/packaging.md | 104 +++++++++
docs/planning.md | 49 ++--
pyproject.toml | 28 ++-
scripts/binary_smoke.py | 108 +++++++++
scripts/build_binary.py | 112 +++++++++
scripts/glidepath_binary.py | 27 +++
scripts/test_binary.ps1 | 44 ++++
site/index.html | 53 ++++-
src/glidepath/gui/assets/glidepath.ico | Bin 0 -> 68673 bytes
tests/gui/test_binary_smoke.py | 57 +++++
tests/test_scripts_binary.py | 151 +++++++++++++
uv.lock | 299 +++++++++++++++----------
19 files changed, 1080 insertions(+), 165 deletions(-)
create mode 100644 docs/packaging.md
create mode 100644 scripts/binary_smoke.py
create mode 100644 scripts/build_binary.py
create mode 100644 scripts/glidepath_binary.py
create mode 100644 scripts/test_binary.ps1
create mode 100644 src/glidepath/gui/assets/glidepath.ico
create mode 100644 tests/gui/test_binary_smoke.py
create mode 100644 tests/test_scripts_binary.py
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e448936..c298a06 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -62,7 +62,7 @@ jobs:
run: uv run python scripts/check_dep_age.py
- name: Export lockfile for audit
- run: uv export --frozen --no-emit-project --output-file requirements-audit.txt
+ run: uv export --frozen --all-groups --no-emit-project --output-file requirements-audit.txt
- name: pip-audit (known CVEs)
run: uv run pip-audit --disable-pip --requirement requirements-audit.txt
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 897fea8..e4e3c71 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,5 +1,6 @@
-# Publishes a release when a vX.Y.Z tag is pushed: the sdist/wheel are
-# built and smoke-tested in an unprivileged job, published to PyPI via
+# Publishes a release when a vX.Y.Z tag is pushed: the sdist/wheel and
+# Windows executable are built and smoke-tested in unprivileged jobs.
+# Python packages are published to PyPI via
# trusted publishing (OIDC — no stored tokens) with PEP 740 attestations,
# and only then announced as a GitHub Release with the artifacts
# attached, per the release process in docs/planning.md §4.10. The
@@ -73,6 +74,74 @@ jobs:
release-notes.md
if-no-files-found: error
+ # Compilation only runs for a release tag, after build validates its
+ # ancestry, version and changelog. No publish permissions or secrets.
+ build-windows:
+ needs: build
+ runs-on: windows-2025
+ timeout-minutes: 45
+ steps:
+ - name: Checkout
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+ with:
+ persist-credentials: false
+
+ - name: Install uv
+ uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
+ with:
+ version: "0.11.32"
+ enable-cache: true
+
+ - name: Install locked build dependencies
+ run: uv sync --locked --no-dev --group binary
+
+ - name: Build folder bundle
+ run: uv run --locked --no-dev --group binary python scripts/build_binary.py
+
+ - name: Test relocated folder bundle without Python on PATH
+ run: >-
+ pwsh -NoProfile -File scripts/test_binary.ps1
+ -Executable build/nuitka/glidepath_binary.dist/glidepath.exe
+ -Report build/nuitka/smoke-standalone.json
+
+ - name: Build single executable
+ run: uv run --locked --no-dev --group binary python scripts/build_binary.py --mode onefile
+
+ - name: Stage the versioned executable
+ run: |
+ $version = $env:GITHUB_REF_NAME.Substring(1)
+ New-Item -ItemType Directory -Path windows-release | Out-Null
+ Copy-Item build/nuitka/glidepath.exe "windows-release/glidepath-$version-windows-x64.exe"
+
+ - name: Test the release executable and verify its version
+ run: |
+ $version = $env:GITHUB_REF_NAME.Substring(1)
+ pwsh -NoProfile -File scripts/test_binary.ps1 `
+ -Executable "windows-release/glidepath-$version-windows-x64.exe" `
+ -Report build/nuitka/smoke-onefile.json
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
+ $report = Get-Content build/nuitka/smoke-onefile.json -Raw | ConvertFrom-Json
+ if ($report.version -ne $version) {
+ throw "Executable version $($report.version) does not match release $version"
+ }
+
+ - name: Upload tested Windows release asset
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ with:
+ name: windows-release-assets
+ path: windows-release/*.exe
+ if-no-files-found: error
+
+ - name: Upload build diagnostics
+ if: always()
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ with:
+ name: windows-build-diagnostics
+ path: |
+ build/nuitka/compilation-report.xml
+ build/nuitka/smoke-*.json
+ if-no-files-found: ignore
+
# Publishes to PyPI via trusted publishing: the job's OIDC token is
# exchanged for a short-lived upload token, so no PyPI credential is
# stored in the repo. This job checks out nothing and runs no project
@@ -82,7 +151,7 @@ jobs:
# contract registered on PyPI; its protection rules (required
# reviewer, v* tags only) gate this job.
publish-pypi:
- needs: build
+ needs: [build, build-windows]
runs-on: ubuntu-latest
environment:
name: pypi
@@ -100,8 +169,8 @@ jobs:
# The GitHub Release is created only after PyPI publication succeeds,
# so a failed upload never leaves a public release advertising a
- # package that is not there. The sdist/wheel are attached so the
- # release carries the exact published artifacts, and signed build
+ # package that is not there. The sdist/wheel and Windows exe are attached
+ # so the release carries the exact published artifacts, and signed build
# provenance is attested for them first — the GitHub-side mirror of
# the PEP 740 attestations PyPI holds, so a download from the release
# page verifies with `gh attestation verify A retirement planner that shows its working
All data stays local on your machine; nothing is transmitted.
- Requires only uv, which - manages the Python toolchain for you. + On Windows x64, download one file and run it. Python and terminal + commands are not required.
$ curl -LsSf https://astral.sh/uv/install.sh | sh # installs uv (macOS/Linux; Windows: see the README)
-$ uv tool install glidepath # installs the latest release from PyPI
+
+ Windows: download and run
+ Windows executables are available in releases from v1.1.0.
+
+
+ - Open the latest release and look under Assets.
+ - Download
glidepath-X.Y.Z-windows-x64.exe.
+ - Keep it in a folder of your choice and double-click to launch.
+
+ The file is the app itself; there is no installation wizard. To
+ upgrade, close Glidepath and download the newer executable. Your
+ saved plans stay where you put them.
+ The app is not yet signed with a Windows publisher
+ certificate. Windows may show “Windows protected your PC” or
+ “unrecognised app”. Check that your download came from this
+ repository’s release before deciding whether to proceed.
+ If the latest release has no .exe
+ yet, use the uv installation below.
+
+
+ Install with uv — Linux, macOS or Windows
+ uv installs Glidepath from PyPI
+ and fetches the Python it needs. On macOS or Linux:
+$ curl -LsSf https://astral.sh/uv/install.sh | sh
+ Close and reopen the terminal, then install and launch Glidepath:
+$ uv tool install glidepath
$ glidepath
+ For Windows PowerShell commands and terminal setup, follow the
+ uv installation instructions.
+ Upgrade later with uv tool upgrade glidepath.
+
- The README
- has the step-by-step version, including the Windows install command;
- the getting-started guide
+ The getting-started guide
walks through what to gather, entering it, reading the projection,
and changing the assumptions behind it.
pipx install glidepath works too. Or run
diff --git a/src/glidepath/gui/assets/glidepath.ico b/src/glidepath/gui/assets/glidepath.ico
new file mode 100644
index 0000000000000000000000000000000000000000..0c3019796f0d60a579eb517f433c0bf13d5ee634
GIT binary patch
literal 68673
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
z
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