Skip to content

Comments

feat: add Windows support#16

Merged
james-w merged 4 commits intomainfrom
feat/windows-support
Dec 7, 2025
Merged

feat: add Windows support#16
james-w merged 4 commits intomainfrom
feat/windows-support

Conversation

@james-w
Copy link
Owner

@james-w james-w commented Dec 7, 2025

Summary

  • Add platform abstraction layer (src/platform/) for process management
    • Unix: uses nix crate for signals and process control
    • Windows: uses windows-sys for CreateProcessW, TerminateProcess, file locking
  • Use CreateProcessW with bInheritHandles=FALSE for proper daemon detachment
  • Wrap shell commands in parentheses for correct output redirection
  • Update Cargo.toml with platform-specific dependencies
  • Add cross-platform test helpers in tests/common.rs
  • Update all integration tests with Windows-compatible commands
  • Add Windows to GitHub Actions CI matrix
  • Fix path handling in watch.rs to use std::path APIs

Test plan

  • All 175 tests pass on Windows locally
  • All CI checks (tests, clippy, check, fmt) pass locally
  • Verify GitHub Actions CI passes on all three platforms (ubuntu, macos, windows)

🤖 Generated with Claude Code

james-w and others added 3 commits December 7, 2025 16:22
- Add platform abstraction layer (src/platform/) for process management
  - Unix: uses nix crate for signals and process control
  - Windows: uses windows-sys for CreateProcessW, TerminateProcess, file locking
- Use CreateProcessW with bInheritHandles=FALSE for proper daemon detachment
- Wrap shell commands in parentheses for correct output redirection
- Update Cargo.toml with platform-specific dependencies
- Add cross-platform test helpers in tests/common.rs
- Update all integration tests with Windows-compatible commands
- Add Windows to GitHub Actions CI matrix
- Fix path handling in watch.rs to use std::path APIs

All 175 tests pass on Windows.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Change doc comment to regular comment since it's a section header
not documenting the following function.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add support for cargo's --target flag (cross-compilation target triple)
and --all-targets flag (build all target types). Also adds cross-platform
clippy and check commands to pls.toml with platform-specific targets.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Dec 7, 2025

Codecov Report

❌ Patch coverage is 85.23207% with 35 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.13%. Comparing base (464e3b5) to head (7750bf1).
⚠️ Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
src/commands.rs 81.42% 2 Missing and 11 partials ⚠️
src/platform/unix.rs 84.81% 9 Missing and 3 partials ⚠️
src/config.rs 60.00% 0 Missing and 4 partials ⚠️
src/platform/mod.rs 93.33% 2 Missing ⚠️
src/targets/artifact/cargo.rs 86.66% 0 Missing and 2 partials ⚠️
src/targets/command/cargo.rs 93.33% 0 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #16      +/-   ##
==========================================
+ Coverage   78.87%   79.13%   +0.26%     
==========================================
  Files          36       38       +2     
  Lines        6252     6359     +107     
  Branches     6252     6359     +107     
==========================================
+ Hits         4931     5032     +101     
- Misses        975      977       +2     
- Partials      346      350       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@james-w james-w force-pushed the feat/windows-support branch from 1494dfb to e226ebe Compare December 7, 2025 17:15
On Windows CI, temp directories may use 8.3 short names (e.g., RUNNER~1)
which differ from the full paths returned by canonicalize(). Fix by
canonicalizing both the expected path and the actual path from the file
or command output.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@james-w james-w force-pushed the feat/windows-support branch from e226ebe to 7750bf1 Compare December 7, 2025 17:17
@james-w james-w merged commit 6406395 into main Dec 7, 2025
11 checks passed
@james-w james-w deleted the feat/windows-support branch December 7, 2025 17:30
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