Skip to content

The Windows installer bundles the desktop JAR from the client package (#562) - #566

Merged
emooreatx merged 4 commits into
mainfrom
fix/562-windows-installer-bundles-the-client-package
Sep 8, 2026
Merged

The Windows installer bundles the desktop JAR from the client package (#562)#566
emooreatx merged 4 commits into
mainfrom
fix/562-windows-installer-bundles-the-client-package

Conversation

@emooreatx

Copy link
Copy Markdown
Contributor

Every run of windows-installer.yml since 0.5.189 failed at its first real
step — cd client && ./gradlew … against a directory #471 deleted — and
read success at the run level because the job is non-gating. No installer
has been produced since.

The wheel depends on ciris-client, whose win_amd64 wheel carries the
Compose uber-jar under ciris_client/_artifacts/ with a manifest, and the
launcher already resolves it through ciris_client.artifact_path. So: the
Gradle setup and the UberJar/stage steps go; after pip install of the
server wheel a step asks the client package where the JAR is; the PyInstaller
spec collects ciris_client's data and modules into the bundle; the stage
check asserts the JAR rode along; jlink trims the JRE against that JAR. The
README and the jlink script's usage follow.

The job stays non-gating for this PR: its rationale ("the Windows wheel does
not build") is no longer true, but the installer has not produced an
artifact in months and the first green run should be watched before the
job is allowed to fail main. Driven by workflow_dispatch on this branch.

Proof: a workflow_dispatch run of windows-installer.yml on this branch — https://github.com/CIRISAI/CIRISServer/actions/runs/34226383277 — the artifact ciris-server-windows-installer (CIRIS-Server-Setup-0.5.203-x64.exe) is the deliverable.

Not in this PR: removing the job's continue-on-error — its stated reason (the Windows wheel does not build) is stale since 0.5.202, but the job should produce one green artifact before it may fail main. Follow-up once this run is green.

🤖 Generated with Claude Code

…, not from a client tree that no longer exists (#562)

Every run of windows-installer.yml since 0.5.189 failed at its first real
step — `cd client && ./gradlew …` against a directory #471 deleted — and
read `success` at the run level because the job is non-gating. No installer
has been produced since.

The wheel depends on `ciris-client`, whose win_amd64 wheel carries the
Compose uber-jar under `ciris_client/_artifacts/` with a manifest, and the
launcher already resolves it through `ciris_client.artifact_path`. So: the
Gradle setup and the UberJar/stage steps go; after `pip install` of the
server wheel a step asks the client package where the JAR is; the PyInstaller
spec collects `ciris_client`'s data and modules into the bundle; the stage
check asserts the JAR rode along; jlink trims the JRE against that JAR. The
README and the jlink script's usage follow.

The job stays non-gating for this PR: its rationale ("the Windows wheel does
not build") is no longer true, but the installer has not produced an
artifact in months and the first green run should be watched before the
job is allowed to fail main. Driven by workflow_dispatch on this branch.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 93e5f97ae3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread installers/windows/README.md Outdated
copy desktopApp\build\compose\jars\CIRIS-windows-*.jar ..\python\ciris_server\desktop_app\
# 0. build + install the wheel (needs Rust + maturin); pip pulls ciris-client,
# whose win_amd64 wheel carries the desktop JAR (no Gradle, no client/ tree)
cd ..; maturin build --release -o dist-wheel; pip install (Get-ChildItem dist-wheel\*.whl)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Run the wheel build from the repository root

When a Windows developer follows this recipe from the checkout root, the retained cd .. moves outside the repository before invoking maturin, where the project manifests and subsequent installers\windows path do not exist. Remove this directory change, which was only needed to return from the now-deleted client directory.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Addressed in c649136: the cd .. is gone — the recipe now says it runs from the repository root and moves into installers\windows only for the PyInstaller step. Also refreshed while there: the version example (0.5.38 → 0.5.203) and the pointer to a windows7-installer.yml that no longer exists.

…th 0.5.202's Windows wheel, and run 34226383277 produced the first artifact

continue-on-error had been on the job since the Windows wheel could not
build; under it the job failed on `cd client` on every run after #471 while
the run read success. The rebuilt job just produced
CIRIS-Server-Setup-0.5.203-x64.exe (117 MiB: the frozen node, the client
package's 66 MB desktop JAR, a 51 MB jlink runtime). From here a failure
is a failure. The step-level continue-on-error on the two CIRISCache steps
stays — a cache miss is not an installer failure.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@emooreatx

Copy link
Copy Markdown
Contributor Author

Proof run green end to end on the first try: https://github.com/CIRISAI/CIRISServer/actions/runs/34226383277

step result
Locate the desktop JAR in the installed client package ciris_client\_artifacts\CIRIS-windows-x64-1.5.210.jar (66 MB, from the ciris-client 0.5.210 win_amd64 wheel pip pulled)
Build PyInstaller bundle → Stage _internal\ciris_client\_artifacts\ carries the JAR and manifest
Trim JRE via jlink 51.2 MB runtime at dist\runtime
Build installer with Inno Setup → Upload artifact ciris-server-windows-installer, 117 MiB, expires 2026-09-22

With one artifact on the record the job's continue-on-error comes off in this PR (second commit), and the PR carries ci:full so the now-gating job proves itself once more on the PR head before merge. Not verified here: installing the .exe on a Windows machine and launching the desktop — the bundle contents are asserted, the install UX is not.

@emooreatx emooreatx added the ci:full Run the full CI matrix (macOS + Windows) on this PR label Sep 8, 2026
emooreatx and others added 2 commits September 8, 2026 07:54
…ns on the PR

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…nd names the workflow that exists (Codex on #566)

The `cd ..` that returned from the deleted client/ step walked out of the
checkout before maturin ran; the version example and the reference to a
windows7-installer.yml that no longer exists are refreshed with it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@emooreatx

Copy link
Copy Markdown
Contributor Author

The ubuntu clippy + test failure on c649136 is unrelated to this PR: four folded_health fixtures failed because the runner itself was io-stalled and the node's real PSI probe degraded the "undegraded" node the fixtures start from (io stalled: EVERY task in this container was blocked on io 21.7% of the last 10s). Passes 3/3 locally on the same base. Filed as #567 (the fixture reads a process-wide surface it does not own — #542's class). Rerunning the job when the run completes.

@emooreatx
emooreatx merged commit 55b8c7a into main Sep 8, 2026
20 of 21 checks passed
@emooreatx
emooreatx deleted the fix/562-windows-installer-bundles-the-client-package branch September 8, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:full Run the full CI matrix (macOS + Windows) on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant