Skip to content

CI: run Rust checks on macOS and Windows (cross-platform phase 0) - #67

Open
op-q wants to merge 3 commits into
chore/move-install-scriptfrom
ci/three-os-tests
Open

op-q wants to merge 3 commits into
chore/move-install-scriptfrom
ci/three-os-tests

Conversation

@op-q

@op-q op-q commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Cross-platform plan, phase 0. Opened as a draft on purpose: the first run is meant to show what breaks on macOS and Windows. Failures get recorded in the plan before anything is fixed. Stacked on #66.

  • Adds a rust-platforms job that runs Clippy and cargo test --workspace --all-targets on macos-14 and windows-2025.
  • The existing "Rust" job is unchanged, because branch protection requires that exact name.
  • The new checks are not required yet. Once they pass, add Rust (macos-14) and Rust (windows-2025) to the required checks in the repository settings.

Heads-up for the browser removal: branch protection also requires Web and Analyze JavaScript and TypeScript. Removal phase 3 deletes the job that produces Web, and with no TypeScript left, the CodeQL JS/TS job has nothing to analyse. Both have to be taken out of the required checks when that lands, or every PR will wait forever on checks that never report.

🤖 Generated with Claude Code

https://claude.ai/code/session_01G7Fy45hUvna94cd79WKG8S

No `cfg(not(unix))` branch in the CLI has ever been compiled: CI runs on
Ubuntu alone, and the release workflow only ever executes `drop --version` on
macOS and has no Windows target. Cross-platform phase 0 is to find out what
breaks before fixing any of it, so this adds Clippy and the full test suite on
`macos-14` and `windows-2025`.

A separate job rather than a matrix on `rust`: formatting cannot vary by
platform, and branch protection requires a check named exactly "Rust", which a
matrix would rename.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G7Fy45hUvna94cd79WKG8S
op-q and others added 2 commits September 14, 2026 12:10
The first Windows run failed Clippy on two items only the symlink tests use:
an import in the archive tests and the hostile-archive builder. Everything
else, including every cfg(not(unix)) branch in the CLI, compiled.

The test step now runs even when Clippy fails, so one run reports both.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G7Fy45hUvna94cd79WKG8S
The relay refuses a frame that is too large from its header and closes the
socket, which can happen while the test is still writing the frame's body.
Linux's socket buffer usually absorbs that write; macOS's usually does not,
and the second CI run on macOS failed with a broken pipe. The relay behaved
correctly both times.

The write may now fail by the relay hanging up. What is asserted is still what
the receiver saw: an error, and no part of the chunk.

Also records what the first macOS and Windows runs found in the cross-platform
plan. Windows passed the whole suite once two Unix-only test helpers were gated,
and every non-Unix branch in the CLI compiled for the first time.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G7Fy45hUvna94cd79WKG8S
@op-q
op-q marked this pull request as ready for review September 14, 2026 10:27
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

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