Fix Windows CI: update swift-docc-plugin to 1.4.6#132
Fix Windows CI: update swift-docc-plugin to 1.4.6#132
Conversation
#128) - Add concurrency groups to cancel in-progress runs on same branch - Add paths-ignore to skip CI on doc-only changes - Add pull_request trigger for PRs to main - Add configure job with dynamic matrix (minimal on feature branches, full on main/PRs) - Gate Windows builds to full matrix only - Split macOS into core (always) and full (main/PRs only) jobs - Update lint/docs conditions to run when optional jobs are skipped - Update all GitHub Actions to latest versions (checkout v6, cache v5, codecov v6, etc.) - Add cache cleanup workflows for deleted branches and closed PRs - Update CodeQL workflow action versions Closes #128, closes #126, closes #127 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Ubuntu matrix: add Swift 6.2 and 6.3, remove nightly versions; use 6.3 as single-version for feature branches - build-macos: keep SPM-only; move macOS Build to build-macos-full - build-macos-full: add macOS Build with Xcode 26.4; update iOS/watchOS/tvOS/visionOS to Xcode 26.4 / osVersion 26.4 - Add build-android and build-wasm jobs (full-matrix only) - Update lint and docs needs to include new jobs - codeql.yml: update runner to macos-26, Xcode to 26.4 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- configure outputs separate ubuntu-os/swift/type arrays (matching MonthBar pattern) - build-ubuntu composes matrix from all three outputs; wasm/wasm-embedded types use swift:6.3-noble container; type and wasmtime-version: 41.0.3 passed to swift-build - Remove separate build-wasm job - Android: add swift 6.3 alongside 6.2, add free-disk-space step, android-swift-version/android-api-level/android-run-tests parameters, coverage upload Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- configure: guard ci-skip check with event_name check so it always runs on pull_request events (github.event.head_commit is null on PRs) - build-macos: add needs: [configure], gate on configure success so ci-skip propagates via dependency chain instead of re-checking head_commit.message Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The swift:6.3 Docker image does not include curl, which is required by the Codecov uploader. Applies to all 6.3 builds including wasm types. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add version branch pattern to pull_request trigger so PRs targeting v0.0.4 (and similar) fire the full matrix CI - Use github.head_ref || github.ref_name for concurrency group so push and pull_request events for the same branch share a group; PR run (arrives second) cancels the concurrent push run Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Settings.projectRoot now uses a 3-strategy fallback matching the SyndiKit pattern: working directory first (reliable for WASM/Android/SPM), then #filePath-relative (macOS/Linux CI), then walking up parent directories. Add android-copy-files to copy Documentation.docc to the Android emulator's working directory so the path resolution finds the files via Strategy 1. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Examples/ (2.1MB) and full Documentation.docc (with images) exceed WASM memory constraints. On WASI, use only the two lightweight tutorial .md files (~36KB total). Matches SyndiKit's #if os(WASI) subset pattern. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Strategy 1b to Settings.projectRoot: detect Documentation.docc/ in working dir (android-copy-files copies last component only) - Add #if os(Android) branch to docPaths with prefix-less paths matching the flat copy layout on Android devices - Add id: build to swift-build steps and gate coverage upload/processing on steps.build.outputs.contains-code-coverage == 'true' across all jobs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.4.6 adds .gitattributes for symlinks on Windows, fixing build failures where symlinked plugin source files were checked out as plain text, causing 'cannot find Lock in scope' and related errors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Code ReviewSummaryThis PR consolidates three separate fixes:
Issues🔴 Windows matrix:
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v0.0.4 #132 +/- ##
==========================================
- Coverage 78.16% 78.13% -0.03%
==========================================
Files 126 126
Lines 5651 4555 -1096
==========================================
- Hits 4417 3559 -858
+ Misses 1234 996 -238
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Code Review: Fix Windows CI - update swift-docc-plugin to 1.4.6The Package.resolved update is the right fix — swift-docc-plugin 1.4.6 adds .gitattributes for symlink handling on Windows, which directly addresses the missing-type compile errors. Duplicate PR notice This PR (132) and PR 131 are both from the same branch 'fix/windows-docc-plugin-symlinks' targeting different bases:
This means PR 132's diff includes all the CI workflow changes from PR 129 in addition to the Package.resolved bump. Consider whether this release branch should receive the workflow changes as well, or if only the Package.resolved fix should be cherry-picked. One of the two PRs should be closed to reduce confusion. The fix itself Correct and minimal. No source changes required since Package.swift already declares 'from: "1.4.0"'. |
Summary
swift-docc-pluginfrom1.4.5→1.4.6inPackage.resolvedProblem
Windows CI (
windows-2022andwindows-2025) was failing with:The root cause:
swift-docc-pluginuses aSymbolic Links/directory to share source files across plugin targets. On Windows, without proper.gitattributes, git checks these symlinks out as plain text files (containing just the path string). The Swift compiler then tries to compile these empty stubs, producing missing-type errors.Fix
swift-docc-plugin1.4.6 release notes: "Add .gitattributes for symlinks on Windows." — this ensures git resolves symlinks to real source files on Windows checkouts.Package.swiftalready declaresfrom: "1.4.0", so onlyPackage.resolvedneeded updating.Test plan
Build on Windows (windows-2022)passesBuild on Windows (windows-2025)passes🤖 Generated with Claude Code
Perform an AI-assisted review on