Updates from brightdigit.com - #129
Conversation
|
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 |
Review SummaryThis is a large (169 files, +1498/-2232) subrepo-sync PR pulling changes from BrightDigit's monorepo into SyndiKit's Potential issues
Positive notes
Test coverageNo new tests were added or removed, and none needed to be — the diff has no observable behavior changes in the library itself. Given the CI matrix changes above, it'd be worth confirming the Overall this looks like a safe, mostly-mechanical merge; the main things worth a maintainer's explicit sign-off are the macOS 13 minimum deployment target bump and the self-hosted-runner-on- |
Review SummaryThis PR is an automated git-subrepo sync pulling ~5 months of tooling/infra changes from the
Overall this looks safe to merge as routine subrepo maintenance. A few things worth a look before merging: 1.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v1.0.0 #129 +/- ##
==========================================
+ Coverage 78.30% 78.36% +0.06%
==========================================
Files 74 74
Lines 1553 1553
==========================================
+ Hits 1216 1217 +1
+ Misses 337 336 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Review: PR #129 — Sync subrepo branch brightdigit-com-260621This is a large vendoring/sync PR from the monorepo (mostly header-format normalization + CI/lint tooling migration to mise, plus a handful of genuine source changes: file splits for 1.
|
ReviewThis is a CI/tooling-only sync from the brightdigit.com monorepo — no Swift source under Potential bugs / regressions
Design considerations worth a sanity check
Minor / cosmetic
Other
No test coverage feedback since no Swift source changed. No security concerns spotted (secrets usage elsewhere in the workflow looks correct). |
ReviewThis is mostly a CI/infra + tooling sync from the Bugs / correctness
Documentation staleness
Minor nits
Scope observation (not a blocker)This PR also adds a substantial amount of generic Everything else
|
Review: PR #129 — Updates from brightdigit.comThis is a subrepo sync carrying CI/tooling changes plus a batch of Potential bugs / regressions
Documentation gap
Minor nits
Looks good
No test coverage concerns beyond CI itself, since this PR doesn't touch |
Rebuild SyndiKit.yml around a three-tier configure matrix on GitHub-hosted runners (no self-hosted): a single folded build-ubuntu across stable Swift 5.10-6.3 + nightly 6.4 (wasm/wasm-embedded on 6.3+6.4 only); macOS SPM on Swift 6.3 (Xcode 26.4) + 6.4 (Xcode 27 preview runner) with the full Apple platform matrix in the full tier; Windows and Android covering 6.3 + 6.4; and a restored source-compat suite. Reduced runs stay lean (noble x 6.3/6.4 + macOS SPM only). Devcontainers: default to Swift 6.3, add 6.2/6.3/6.4 (6.4 nightly image), remove the old 6.1/6.2 nightly folders. Refresh the stale CLAUDE.md CI section. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Restore the standalone .github/workflows/swift-source-compat.yml (swift:5.10/ 6.0/6.1/6.2/6.3 + nightly-6.4) and drop the in-file source-compat-suite job from SyndiKit.yml; update CLAUDE.md accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
c9269b4 to
516bb01
Compare
Review: PR #129 — Updates from brightdigit.comThis is a subrepo sync bringing over CI/tooling changes from the Overview
Potential issues
Code quality / style
Test coverage
Security
Overall this is a solid, well-documented CI modernization (self-hosted → hosted runners, broader Swift version matrix) with good doc hygiene. The main things I'd want a maintainer to explicitly confirm are the 🤖 Generated with Claude Code |
* Migrate to Swift 6.4: mise-based lint tooling, rebuilt CI, and source cleanups (#127) * Migrate lint/style/CI configs in 6 BrightDigit subrepo packages [skip ci] Apply the issue #54 config migration to the vendored BrightDigit libraries (SyndiKit, TransistorPublishPlugin, Contribute, ContributeWordPress, NPMPublishPlugin, YoutubePublishPlugin) using the MistKit/SundialKit library config variant: - .swiftlint.yml: strict library ruleset + no_unchecked_sendable custom rule - .swiftformat -> .swift-format: Apple swift-format JSON - .mise.toml: swift-format 604 (Swift 6.4-aligned), swiftlint, periphery - Scripts/lint.sh (mise-based, replaces Mint) + Scripts/header.sh - CI workflow -> brightdigit/swift-build@v1 (ubuntu + macos) + STRICT lint job - Remove obsolete .hound.yml Configs + CI only; source reformatting/headers deferred (matches main repo). SwiftTube and Spinetail skipped (slated for OpenAPI-generator migration). Committed in the monorepo only; no git subrepo push performed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci: trigger pipeline (config migration) * packages CI: install curl + cache mise tools in lint job * CI: test vendored BrightDigit packages via monorepo matrix Add a `test-packages` matrix job to main.yaml that builds, tests, and lints the 6 vendored BrightDigit packages in-place. In the monorepo checkout every sibling already sits at its relative-path location, so each package resolves with zero dependency reconstruction — replacing the per-package setup-deps CI. - detect-changes: add `packages` paths-filter + `packages-changed` output - remove standalone workflows + orphaned setup-deps from the 4 rel-dep packages (ContributeWordPress, Transistor, NPM, Youtube); their standalone CI was synthetic (relative deps are committed) - keep SyndiKit + Contribute standalone CIs (genuinely standalone libraries) - bump all GitHub Actions to latest: checkout v6, cache v5, upload-artifact v7, download-artifact v8, dorny/paths-filter v4 (swift-build@v1 unchanged) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Conform v1.0.0 codebase to standardized lint configs Post-rebase cleanup after replaying the config migration onto v1.0.0: - Fix swiftlint/swift-format violations surfaced by the stricter standardized configs (explicit ACLs, formatting, XCTFail messages, XCTUnwrap instead of force-unwraps, doc-comment corrections) - Inline-disable intentional exceptions in source: iTunes* type names, RSS-spec webMaster, @unchecked Sendable fallback, large test fixtures - Split files violating one_declaration_per_file - Normalize license headers via Scripts/header.sh (straight quotes) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: refresh DocC catalog for v1.0.0 - Update requirements to match Package.swift (Swift 5.10 / Xcode 15.3, iOS 13 / watchOS 6 / tvOS 13 / macOS 10.15 deployment targets) - Bump install snippet to from: "1.0.0" - Fix transposed JSONFeed column in the Feedable mapping table (siteURL -> homePageUrl, summary -> description) - Fix invalid Swift in code snippets (Data(contentsOf:) usage, missing paren in case pattern) - Fix typos and stale LICENSE link Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Migrate lint/style/CI configs to BrightDigit template patterns (#54) (#76) * Phase 4 — OpenAPI & dependency migration (#109) * SyndiKit CI: use jdx/mise-action for robust lint tool bootstrap Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: add macOS + Windows nightly-6.4 CI legs across all 5 standalone repos Extend ButtondownKit/Spinetail/SwiftTube/Contribute/SyndiKit standalone CI to the BrightDigit multi-platform template now that a self-hosted macOS runner with /Applications/Xcode-beta.app (Swift 6.4) is available: - build-macos: [self-hosted, macOS] + swift-build xcode=Xcode-beta. Blocking on all 5. Contribute & SyndiKit migrated off macos-15; their Ubuntu + lint legs migrated swift:6.3-noble -> swiftlang/swift:nightly-6.4.x-noble. - build-windows: hosted windows-2022/2025, swift.org nightly snapshot 6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-01-a. Gated to full-matrix runs via a single-package configure job. continue-on-error on the OpenAPI repos + Contribute (unverified deps); blocking on SyndiKit. - SyndiKit also gains build-macos-platforms (iOS/watchOS/tvOS on released Xcode_26.4 — not nightly 6.4). WASM + Android deferred: no nightly 6.4 support yet. WASM is a swift-build limitation (brightdigit/swift-build#115 — no input to override the auto-derived -RELEASE wasm SDK URL); Android is blocked upstream (no nightly 6.4 SDK). Each workflow documents re-adding them. Contribute WASM is permanently N/A (Yams on the Musl/wasm SDK). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: wire WASM + Android nightly-6.4 CI legs via swift-build SDK-bundle inputs Now that swift.org publishes nightly 6.4 SDK bundles on swift-6.4.x-branch and brightdigit/swift-build#116 adds inputs to install caller-supplied bundles, add: - build-wasm to ButtondownKit/Spinetail/SwiftTube/SyndiKit (NOT Contribute — Yams fails on the Musl/wasm SDK). Uses wasm-sdk-url + wasm-sdk-checksum pointing at the swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-15-a_wasm artifactbundle, with WASI emulation + memory flags. - build-android to all 5 repos. Uses android-sdk-url + android-sdk-id (+ matching android-swift-version) for the swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-15-a_android artifactbundle via skiptools custom-sdk-url; build-only (android-run-tests: false). Both legs are full-matrix-gated and continue-on-error: they reference @v1 and are inert until swift-build#116 is released and the v1 tag moved, after which they should be confirmed green and promoted to blocking (SyndiKit first). Bump the snapshot SDK URLs/checksums periodically. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: run all Apple-platform suites on self-hosted Xcode-beta (Swift 6.4) Per the rule that Swift 6.4 builds use the self-hosted runners (the only macOS Swift 6.4 toolchain is /Applications/Xcode-beta.app = Xcode 27 / Swift 6.4): - Move SyndiKit + Contribute build-macos-platforms off hosted macos-26/Xcode_26.4 (which is only Swift 6.2) onto [self-hosted, macOS] + Xcode-beta. - Add build-macos-platforms (iOS/watchOS/tvOS) to ButtondownKit/Spinetail/SwiftTube on the same self-hosted runner — these are swift-tools-version:6.4, so hosted released-Xcode runners can't even parse their manifests. All use the iOS/watchOS/tvOS 27.0 simulator runtimes present on the runner (iPhone 17 Pro / Apple Watch Ultra 3 (49mm) / Apple TV 4K (3rd generation)), full-matrix-gated and continue-on-error (simulator-on-nightly is the most fragile leg; promote once green). lint now needs build-macos-platforms. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: give Windows its own (stricter) matrix tier Three CI tiers instead of two: small set (build-ubuntu/build-macos/lint, always) < full-matrix (macОS-platforms/wasm/android) < +Windows. configure now emits a second output, run-windows, equal to full-matrix MINUS PRs into semver branches. build-windows (the most expensive leg — hosted windows-2022/2025 ×2) gates on run-windows; the rest keep full-matrix. So PRs into semver branches still exercise the full non-Windows matrix but skip Windows. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: test against swift-build feature branch + fold build-wasm into build-ubuntu - Point every brightdigit/swift-build@v1 reference at @sdk-url-checksum-nightly-6.4 (PR #116) TEMPORARILY so CI exercises the new wasm-sdk-url/android-sdk-url code before it ships in @v1. Revert to @v1 once #116 is merged + the v1 tag moved. - Fold build-wasm into build-ubuntu as a continue-on-error step in the same nightly-6.4.x-noble container (one spin-up; runs on every push/PR now, not just full-matrix). Removed the standalone build-wasm job from ButtondownKit/Spinetail/ SwiftTube/SyndiKit (Contribute has no wasm — Yams on Musl/wasm). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: only run push CI on main (drop integration branch from push trigger) Push events now trigger only on main (+ release tags). Feature/integration branches like brightdigit-com-260406 get CI through their PRs instead of a redundant branch-push run. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: unify the 5 CI workflows to byte-identical (except name) - Windows is now blocking everywhere (dropped continue-on-error from build-windows in all 5, not just SyndiKit). - The only per-package functional difference — the wasm step (Contribute can't build Yams on wasm) — is externalized to the ENABLE_WASM repo variable: `if: ${{ vars.ENABLE_WASM != 'false' }}`. Set ENABLE_WASM=false on Contribute. - Normalized all comments to a shared template. Result: the five workflow files are byte-identical except the `name:` line; the only behavioral knob is each repo's ENABLE_WASM variable. Filed Contribute#10 to fix Yams-on-wasm and re-enable it there. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: remove continue-on-error from all 5 CI workflows Make the WASM step, the Apple-platforms job (iOS/watchOS/tvOS), and the Android job blocking across all five subrepos. Tidy the now-stale continue-on-error comment phrases. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: gate watchOS leg on ENABLE_WATCHOS (disable where failing) watchOS-27 SDK rejects deps that infer an 8.0 deployment target (SwiftPM #10188, not fixable in-repo). Gate the build-macos-platforms watchOS leg on a new ENABLE_WATCHOS repo variable (mirrors ENABLE_WASM), keeping the 5 workflows byte-identical. ENABLE_WATCHOS=false is set on ButtondownKit/SwiftTube/ Contribute/Spinetail; SyndiKit (unaffected) keeps running watchOS. Tracked in brightdigit.com#119. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: build-ubuntu as a [standard, wasm, wasm-embedded] matrix Mirror brightdigit/MistKit: the configure job emits ubuntu-type (gated by ENABLE_WASM), and build-ubuntu fans out over it via fromJSON. Standard ('') always runs; wasm + wasm-embedded run unless ENABLE_WASM=false (e.g. Yams on Contribute). Both wasm variants share the nightly-6.4.x SDK bundle. Replaces the single folded WASM step. Byte-identical across all 5. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: make wasm/wasm-embedded legs build-only The wasm/embedded BUILD passes (OpenAPIURLSession is guarded out on WASI), but running the suite under WasmKit fails: Foundation resource bundles (test Fixtures) aren't mounted in the WASI sandbox, and embedded hits OpenAPIRuntime keypath-demangling limits at runtime. Neither is our bug. Build-only validates wasm/embedded compilation (the goal); the standard leg still runs the full suite + coverage. Mirrors the Android leg's build-only stance. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Add tests for uncovered EntryID/SiteCollection/media-properties branches Covers the 9 patch-coverage gaps flagged on PR #127: - EntryID: init(string:)/init?(_:)/description/Codable for all four cases - SiteCollectionDirectoryBuilder: init() + directory(fromCollection:) - PodcastEpisodeProperties.init?(rssItem:) nil branch (no enclosure) - YouTubeIDProperties.init?(entry:) nil branch (non-YouTube Atom entry) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * CI: revert swift-build action to @v1 (temp sdk-url-checksum-nightly-6.4 branch deleted) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Align with BrightDigit v1.0.0 CI template and drop self-hosted DocC cruft Add the template's auxiliary workflows (check-unsafe-flags, cleanup-caches, swift-source-compat) and .swift-version. Trim the devcontainer matrix to the supported set (stable 5.10-6.3, nightly 6.4 only; root pinned to 6.3). Remove the now-stale Mintfile and the self-hosted DocC / XcodeGen stack (netlify.toml, Dockerfile, .dockerignore, .htaccess, project.yml, Scripts/docc.sh, Scripts/httpd.conf, Scripts/gh-md-toc) since docs are hosted via SPI. Refresh .swiftlint.yml excludes and CLAUDE.md to match the mise-based 6.4 tooling. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Bump github.com/coreoffice/xmlcoder from 0.18.1 to 0.18.2 Bumps [github.com/coreoffice/xmlcoder](https://github.com/CoreOffice/XMLCoder) from 0.18.1 to 0.18.2. - [Release notes](https://github.com/CoreOffice/XMLCoder/releases) - [Commits](CoreOffice/XMLCoder@0.18.1...0.18.2) --- updated-dependencies: - dependency-name: github.com/coreoffice/xmlcoder dependency-version: 0.18.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Updates from brightdigit.com (#129) * Fix remaining subrepo CI failures * Cache lint tools and align Publish Ink pin * Wave 0 review feedback: CI hygiene, docs & agent tooling (#130) * Restore multi-version CI matrix and refresh devcontainers Rebuild SyndiKit.yml around a three-tier configure matrix on GitHub-hosted runners (no self-hosted): a single folded build-ubuntu across stable Swift 5.10-6.3 + nightly 6.4 (wasm/wasm-embedded on 6.3+6.4 only); macOS SPM on Swift 6.3 (Xcode 26.4) + 6.4 (Xcode 27 preview runner) with the full Apple platform matrix in the full tier; Windows and Android covering 6.3 + 6.4; and a restored source-compat suite. Reduced runs stay lean (noble x 6.3/6.4 + macOS SPM only). Devcontainers: default to Swift 6.3, add 6.2/6.3/6.4 (6.4 nightly image), remove the old 6.1/6.2 nightly folders. Refresh the stale CLAUDE.md CI section. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Keep swift-source-compat as a separate workflow Restore the standalone .github/workflows/swift-source-compat.yml (swift:5.10/ 6.0/6.1/6.2/6.3 + nightly-6.4) and drop the in-file source-compat-suite job from SyndiKit.yml; update CLAUDE.md accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci(android): cap API level at 34 and cover Swift 6.3 + 6.4-nightly (#131) The Swift Android SDK's bundled NDK sysroot for API 36 does not ship crtbegin_dynamic.o / crtend_android.o, which the Swift toolchain still asks ld.lld to link. That broke the Android leg of CI at API 36 (see android/ndk#1391). Rewrite the build-android matrix as a cross product of {Swift 6.3, Swift 6.4-nightly} x {API 28, API 34}, moving the nightly's SDK URL and ID onto the swift entry so the 6.3 rows leave them empty. Claude-Session: https://claude.ai/code/session_014j6vCW2JwTi3P9Sm6q2q4E Co-authored-by: Claude <noreply@anthropic.com> * ci(macos): extract matrix JSON and bump Xcode 26.4 → 26.6 Move macOS CI matrix entries into .github/matrices/ for readability, and bump Apple platform simulator OS versions to 26.5 on the Xcode 26 legs. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix v1.0.0 CI badge: correct workflow filename case and stray ? The CI badge pointed at `syndikit.yml` (lowercase), but on the v1.0.0 branch the workflow file is `SyndiKit.yml` (PascalCase, matching the other Wave 0 repos), so the badge rendered "no status". Also drop the stray `?` in `&?branch=main`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
* Migrate to Swift 6.4: mise-based lint tooling, rebuilt CI, and source cleanups (#127) * Migrate lint/style/CI configs in 6 BrightDigit subrepo packages [skip ci] Apply the issue #54 config migration to the vendored BrightDigit libraries (SyndiKit, TransistorPublishPlugin, Contribute, ContributeWordPress, NPMPublishPlugin, YoutubePublishPlugin) using the MistKit/SundialKit library config variant: - .swiftlint.yml: strict library ruleset + no_unchecked_sendable custom rule - .swiftformat -> .swift-format: Apple swift-format JSON - .mise.toml: swift-format 604 (Swift 6.4-aligned), swiftlint, periphery - Scripts/lint.sh (mise-based, replaces Mint) + Scripts/header.sh - CI workflow -> brightdigit/swift-build@v1 (ubuntu + macos) + STRICT lint job - Remove obsolete .hound.yml Configs + CI only; source reformatting/headers deferred (matches main repo). SwiftTube and Spinetail skipped (slated for OpenAPI-generator migration). Committed in the monorepo only; no git subrepo push performed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci: trigger pipeline (config migration) * packages CI: install curl + cache mise tools in lint job * CI: test vendored BrightDigit packages via monorepo matrix Add a `test-packages` matrix job to main.yaml that builds, tests, and lints the 6 vendored BrightDigit packages in-place. In the monorepo checkout every sibling already sits at its relative-path location, so each package resolves with zero dependency reconstruction — replacing the per-package setup-deps CI. - detect-changes: add `packages` paths-filter + `packages-changed` output - remove standalone workflows + orphaned setup-deps from the 4 rel-dep packages (ContributeWordPress, Transistor, NPM, Youtube); their standalone CI was synthetic (relative deps are committed) - keep SyndiKit + Contribute standalone CIs (genuinely standalone libraries) - bump all GitHub Actions to latest: checkout v6, cache v5, upload-artifact v7, download-artifact v8, dorny/paths-filter v4 (swift-build@v1 unchanged) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Conform v1.0.0 codebase to standardized lint configs Post-rebase cleanup after replaying the config migration onto v1.0.0: - Fix swiftlint/swift-format violations surfaced by the stricter standardized configs (explicit ACLs, formatting, XCTFail messages, XCTUnwrap instead of force-unwraps, doc-comment corrections) - Inline-disable intentional exceptions in source: iTunes* type names, RSS-spec webMaster, @unchecked Sendable fallback, large test fixtures - Split files violating one_declaration_per_file - Normalize license headers via Scripts/header.sh (straight quotes) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: refresh DocC catalog for v1.0.0 - Update requirements to match Package.swift (Swift 5.10 / Xcode 15.3, iOS 13 / watchOS 6 / tvOS 13 / macOS 10.15 deployment targets) - Bump install snippet to from: "1.0.0" - Fix transposed JSONFeed column in the Feedable mapping table (siteURL -> homePageUrl, summary -> description) - Fix invalid Swift in code snippets (Data(contentsOf:) usage, missing paren in case pattern) - Fix typos and stale LICENSE link Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Migrate lint/style/CI configs to BrightDigit template patterns (#54) (#76) * Phase 4 — OpenAPI & dependency migration (#109) * SyndiKit CI: use jdx/mise-action for robust lint tool bootstrap Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: add macOS + Windows nightly-6.4 CI legs across all 5 standalone repos Extend ButtondownKit/Spinetail/SwiftTube/Contribute/SyndiKit standalone CI to the BrightDigit multi-platform template now that a self-hosted macOS runner with /Applications/Xcode-beta.app (Swift 6.4) is available: - build-macos: [self-hosted, macOS] + swift-build xcode=Xcode-beta. Blocking on all 5. Contribute & SyndiKit migrated off macos-15; their Ubuntu + lint legs migrated swift:6.3-noble -> swiftlang/swift:nightly-6.4.x-noble. - build-windows: hosted windows-2022/2025, swift.org nightly snapshot 6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-01-a. Gated to full-matrix runs via a single-package configure job. continue-on-error on the OpenAPI repos + Contribute (unverified deps); blocking on SyndiKit. - SyndiKit also gains build-macos-platforms (iOS/watchOS/tvOS on released Xcode_26.4 — not nightly 6.4). WASM + Android deferred: no nightly 6.4 support yet. WASM is a swift-build limitation (brightdigit/swift-build#115 — no input to override the auto-derived -RELEASE wasm SDK URL); Android is blocked upstream (no nightly 6.4 SDK). Each workflow documents re-adding them. Contribute WASM is permanently N/A (Yams on the Musl/wasm SDK). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: wire WASM + Android nightly-6.4 CI legs via swift-build SDK-bundle inputs Now that swift.org publishes nightly 6.4 SDK bundles on swift-6.4.x-branch and brightdigit/swift-build#116 adds inputs to install caller-supplied bundles, add: - build-wasm to ButtondownKit/Spinetail/SwiftTube/SyndiKit (NOT Contribute — Yams fails on the Musl/wasm SDK). Uses wasm-sdk-url + wasm-sdk-checksum pointing at the swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-15-a_wasm artifactbundle, with WASI emulation + memory flags. - build-android to all 5 repos. Uses android-sdk-url + android-sdk-id (+ matching android-swift-version) for the swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-15-a_android artifactbundle via skiptools custom-sdk-url; build-only (android-run-tests: false). Both legs are full-matrix-gated and continue-on-error: they reference @v1 and are inert until swift-build#116 is released and the v1 tag moved, after which they should be confirmed green and promoted to blocking (SyndiKit first). Bump the snapshot SDK URLs/checksums periodically. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: run all Apple-platform suites on self-hosted Xcode-beta (Swift 6.4) Per the rule that Swift 6.4 builds use the self-hosted runners (the only macOS Swift 6.4 toolchain is /Applications/Xcode-beta.app = Xcode 27 / Swift 6.4): - Move SyndiKit + Contribute build-macos-platforms off hosted macos-26/Xcode_26.4 (which is only Swift 6.2) onto [self-hosted, macOS] + Xcode-beta. - Add build-macos-platforms (iOS/watchOS/tvOS) to ButtondownKit/Spinetail/SwiftTube on the same self-hosted runner — these are swift-tools-version:6.4, so hosted released-Xcode runners can't even parse their manifests. All use the iOS/watchOS/tvOS 27.0 simulator runtimes present on the runner (iPhone 17 Pro / Apple Watch Ultra 3 (49mm) / Apple TV 4K (3rd generation)), full-matrix-gated and continue-on-error (simulator-on-nightly is the most fragile leg; promote once green). lint now needs build-macos-platforms. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: give Windows its own (stricter) matrix tier Three CI tiers instead of two: small set (build-ubuntu/build-macos/lint, always) < full-matrix (macОS-platforms/wasm/android) < +Windows. configure now emits a second output, run-windows, equal to full-matrix MINUS PRs into semver branches. build-windows (the most expensive leg — hosted windows-2022/2025 ×2) gates on run-windows; the rest keep full-matrix. So PRs into semver branches still exercise the full non-Windows matrix but skip Windows. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: test against swift-build feature branch + fold build-wasm into build-ubuntu - Point every brightdigit/swift-build@v1 reference at @sdk-url-checksum-nightly-6.4 (PR #116) TEMPORARILY so CI exercises the new wasm-sdk-url/android-sdk-url code before it ships in @v1. Revert to @v1 once #116 is merged + the v1 tag moved. - Fold build-wasm into build-ubuntu as a continue-on-error step in the same nightly-6.4.x-noble container (one spin-up; runs on every push/PR now, not just full-matrix). Removed the standalone build-wasm job from ButtondownKit/Spinetail/ SwiftTube/SyndiKit (Contribute has no wasm — Yams on Musl/wasm). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: only run push CI on main (drop integration branch from push trigger) Push events now trigger only on main (+ release tags). Feature/integration branches like brightdigit-com-260406 get CI through their PRs instead of a redundant branch-push run. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: unify the 5 CI workflows to byte-identical (except name) - Windows is now blocking everywhere (dropped continue-on-error from build-windows in all 5, not just SyndiKit). - The only per-package functional difference — the wasm step (Contribute can't build Yams on wasm) — is externalized to the ENABLE_WASM repo variable: `if: ${{ vars.ENABLE_WASM != 'false' }}`. Set ENABLE_WASM=false on Contribute. - Normalized all comments to a shared template. Result: the five workflow files are byte-identical except the `name:` line; the only behavioral knob is each repo's ENABLE_WASM variable. Filed Contribute#10 to fix Yams-on-wasm and re-enable it there. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: remove continue-on-error from all 5 CI workflows Make the WASM step, the Apple-platforms job (iOS/watchOS/tvOS), and the Android job blocking across all five subrepos. Tidy the now-stale continue-on-error comment phrases. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: gate watchOS leg on ENABLE_WATCHOS (disable where failing) watchOS-27 SDK rejects deps that infer an 8.0 deployment target (SwiftPM #10188, not fixable in-repo). Gate the build-macos-platforms watchOS leg on a new ENABLE_WATCHOS repo variable (mirrors ENABLE_WASM), keeping the 5 workflows byte-identical. ENABLE_WATCHOS=false is set on ButtondownKit/SwiftTube/ Contribute/Spinetail; SyndiKit (unaffected) keeps running watchOS. Tracked in brightdigit.com#119. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: build-ubuntu as a [standard, wasm, wasm-embedded] matrix Mirror brightdigit/MistKit: the configure job emits ubuntu-type (gated by ENABLE_WASM), and build-ubuntu fans out over it via fromJSON. Standard ('') always runs; wasm + wasm-embedded run unless ENABLE_WASM=false (e.g. Yams on Contribute). Both wasm variants share the nightly-6.4.x SDK bundle. Replaces the single folded WASM step. Byte-identical across all 5. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: make wasm/wasm-embedded legs build-only The wasm/embedded BUILD passes (OpenAPIURLSession is guarded out on WASI), but running the suite under WasmKit fails: Foundation resource bundles (test Fixtures) aren't mounted in the WASI sandbox, and embedded hits OpenAPIRuntime keypath-demangling limits at runtime. Neither is our bug. Build-only validates wasm/embedded compilation (the goal); the standard leg still runs the full suite + coverage. Mirrors the Android leg's build-only stance. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Add tests for uncovered EntryID/SiteCollection/media-properties branches Covers the 9 patch-coverage gaps flagged on PR #127: - EntryID: init(string:)/init?(_:)/description/Codable for all four cases - SiteCollectionDirectoryBuilder: init() + directory(fromCollection:) - PodcastEpisodeProperties.init?(rssItem:) nil branch (no enclosure) - YouTubeIDProperties.init?(entry:) nil branch (non-YouTube Atom entry) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * CI: revert swift-build action to @v1 (temp sdk-url-checksum-nightly-6.4 branch deleted) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Align with BrightDigit v1.0.0 CI template and drop self-hosted DocC cruft Add the template's auxiliary workflows (check-unsafe-flags, cleanup-caches, swift-source-compat) and .swift-version. Trim the devcontainer matrix to the supported set (stable 5.10-6.3, nightly 6.4 only; root pinned to 6.3). Remove the now-stale Mintfile and the self-hosted DocC / XcodeGen stack (netlify.toml, Dockerfile, .dockerignore, .htaccess, project.yml, Scripts/docc.sh, Scripts/httpd.conf, Scripts/gh-md-toc) since docs are hosted via SPI. Refresh .swiftlint.yml excludes and CLAUDE.md to match the mise-based 6.4 tooling. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Bump github.com/coreoffice/xmlcoder from 0.18.1 to 0.18.2 Bumps [github.com/coreoffice/xmlcoder](https://github.com/CoreOffice/XMLCoder) from 0.18.1 to 0.18.2. - [Release notes](https://github.com/CoreOffice/XMLCoder/releases) - [Commits](CoreOffice/XMLCoder@0.18.1...0.18.2) --- updated-dependencies: - dependency-name: github.com/coreoffice/xmlcoder dependency-version: 0.18.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Updates from brightdigit.com (#129) * Fix remaining subrepo CI failures * Cache lint tools and align Publish Ink pin * Wave 0 review feedback: CI hygiene, docs & agent tooling (#130) * Restore multi-version CI matrix and refresh devcontainers Rebuild SyndiKit.yml around a three-tier configure matrix on GitHub-hosted runners (no self-hosted): a single folded build-ubuntu across stable Swift 5.10-6.3 + nightly 6.4 (wasm/wasm-embedded on 6.3+6.4 only); macOS SPM on Swift 6.3 (Xcode 26.4) + 6.4 (Xcode 27 preview runner) with the full Apple platform matrix in the full tier; Windows and Android covering 6.3 + 6.4; and a restored source-compat suite. Reduced runs stay lean (noble x 6.3/6.4 + macOS SPM only). Devcontainers: default to Swift 6.3, add 6.2/6.3/6.4 (6.4 nightly image), remove the old 6.1/6.2 nightly folders. Refresh the stale CLAUDE.md CI section. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Keep swift-source-compat as a separate workflow Restore the standalone .github/workflows/swift-source-compat.yml (swift:5.10/ 6.0/6.1/6.2/6.3 + nightly-6.4) and drop the in-file source-compat-suite job from SyndiKit.yml; update CLAUDE.md accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci(android): cap API level at 34 and cover Swift 6.3 + 6.4-nightly (#131) The Swift Android SDK's bundled NDK sysroot for API 36 does not ship crtbegin_dynamic.o / crtend_android.o, which the Swift toolchain still asks ld.lld to link. That broke the Android leg of CI at API 36 (see android/ndk#1391). Rewrite the build-android matrix as a cross product of {Swift 6.3, Swift 6.4-nightly} x {API 28, API 34}, moving the nightly's SDK URL and ID onto the swift entry so the 6.3 rows leave them empty. Claude-Session: https://claude.ai/code/session_014j6vCW2JwTi3P9Sm6q2q4E Co-authored-by: Claude <noreply@anthropic.com> * ci(macos): extract matrix JSON and bump Xcode 26.4 → 26.6 Move macOS CI matrix entries into .github/matrices/ for readability, and bump Apple platform simulator OS versions to 26.5 on the Xcode 26 legs. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix v1.0.0 CI badge: correct workflow filename case and stray ? The CI badge pointed at `syndikit.yml` (lowercase), but on the v1.0.0 branch the workflow file is `SyndiKit.yml` (PascalCase, matching the other Wave 0 repos), so the badge rendered "no status". Also drop the stray `?` in `&?branch=main`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
* Migrate to Swift 6.4: mise-based lint tooling, rebuilt CI, and source cleanups (#127) * Migrate lint/style/CI configs in 6 BrightDigit subrepo packages [skip ci] Apply the issue #54 config migration to the vendored BrightDigit libraries (SyndiKit, TransistorPublishPlugin, Contribute, ContributeWordPress, NPMPublishPlugin, YoutubePublishPlugin) using the MistKit/SundialKit library config variant: - .swiftlint.yml: strict library ruleset + no_unchecked_sendable custom rule - .swiftformat -> .swift-format: Apple swift-format JSON - .mise.toml: swift-format 604 (Swift 6.4-aligned), swiftlint, periphery - Scripts/lint.sh (mise-based, replaces Mint) + Scripts/header.sh - CI workflow -> brightdigit/swift-build@v1 (ubuntu + macos) + STRICT lint job - Remove obsolete .hound.yml Configs + CI only; source reformatting/headers deferred (matches main repo). SwiftTube and Spinetail skipped (slated for OpenAPI-generator migration). Committed in the monorepo only; no git subrepo push performed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci: trigger pipeline (config migration) * packages CI: install curl + cache mise tools in lint job * CI: test vendored BrightDigit packages via monorepo matrix Add a `test-packages` matrix job to main.yaml that builds, tests, and lints the 6 vendored BrightDigit packages in-place. In the monorepo checkout every sibling already sits at its relative-path location, so each package resolves with zero dependency reconstruction — replacing the per-package setup-deps CI. - detect-changes: add `packages` paths-filter + `packages-changed` output - remove standalone workflows + orphaned setup-deps from the 4 rel-dep packages (ContributeWordPress, Transistor, NPM, Youtube); their standalone CI was synthetic (relative deps are committed) - keep SyndiKit + Contribute standalone CIs (genuinely standalone libraries) - bump all GitHub Actions to latest: checkout v6, cache v5, upload-artifact v7, download-artifact v8, dorny/paths-filter v4 (swift-build@v1 unchanged) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Conform v1.0.0 codebase to standardized lint configs Post-rebase cleanup after replaying the config migration onto v1.0.0: - Fix swiftlint/swift-format violations surfaced by the stricter standardized configs (explicit ACLs, formatting, XCTFail messages, XCTUnwrap instead of force-unwraps, doc-comment corrections) - Inline-disable intentional exceptions in source: iTunes* type names, RSS-spec webMaster, @unchecked Sendable fallback, large test fixtures - Split files violating one_declaration_per_file - Normalize license headers via Scripts/header.sh (straight quotes) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: refresh DocC catalog for v1.0.0 - Update requirements to match Package.swift (Swift 5.10 / Xcode 15.3, iOS 13 / watchOS 6 / tvOS 13 / macOS 10.15 deployment targets) - Bump install snippet to from: "1.0.0" - Fix transposed JSONFeed column in the Feedable mapping table (siteURL -> homePageUrl, summary -> description) - Fix invalid Swift in code snippets (Data(contentsOf:) usage, missing paren in case pattern) - Fix typos and stale LICENSE link Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Migrate lint/style/CI configs to BrightDigit template patterns (#54) (#76) * Phase 4 — OpenAPI & dependency migration (#109) * SyndiKit CI: use jdx/mise-action for robust lint tool bootstrap Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: add macOS + Windows nightly-6.4 CI legs across all 5 standalone repos Extend ButtondownKit/Spinetail/SwiftTube/Contribute/SyndiKit standalone CI to the BrightDigit multi-platform template now that a self-hosted macOS runner with /Applications/Xcode-beta.app (Swift 6.4) is available: - build-macos: [self-hosted, macOS] + swift-build xcode=Xcode-beta. Blocking on all 5. Contribute & SyndiKit migrated off macos-15; their Ubuntu + lint legs migrated swift:6.3-noble -> swiftlang/swift:nightly-6.4.x-noble. - build-windows: hosted windows-2022/2025, swift.org nightly snapshot 6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-01-a. Gated to full-matrix runs via a single-package configure job. continue-on-error on the OpenAPI repos + Contribute (unverified deps); blocking on SyndiKit. - SyndiKit also gains build-macos-platforms (iOS/watchOS/tvOS on released Xcode_26.4 — not nightly 6.4). WASM + Android deferred: no nightly 6.4 support yet. WASM is a swift-build limitation (brightdigit/swift-build#115 — no input to override the auto-derived -RELEASE wasm SDK URL); Android is blocked upstream (no nightly 6.4 SDK). Each workflow documents re-adding them. Contribute WASM is permanently N/A (Yams on the Musl/wasm SDK). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: wire WASM + Android nightly-6.4 CI legs via swift-build SDK-bundle inputs Now that swift.org publishes nightly 6.4 SDK bundles on swift-6.4.x-branch and brightdigit/swift-build#116 adds inputs to install caller-supplied bundles, add: - build-wasm to ButtondownKit/Spinetail/SwiftTube/SyndiKit (NOT Contribute — Yams fails on the Musl/wasm SDK). Uses wasm-sdk-url + wasm-sdk-checksum pointing at the swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-15-a_wasm artifactbundle, with WASI emulation + memory flags. - build-android to all 5 repos. Uses android-sdk-url + android-sdk-id (+ matching android-swift-version) for the swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-06-15-a_android artifactbundle via skiptools custom-sdk-url; build-only (android-run-tests: false). Both legs are full-matrix-gated and continue-on-error: they reference @v1 and are inert until swift-build#116 is released and the v1 tag moved, after which they should be confirmed green and promoted to blocking (SyndiKit first). Bump the snapshot SDK URLs/checksums periodically. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: run all Apple-platform suites on self-hosted Xcode-beta (Swift 6.4) Per the rule that Swift 6.4 builds use the self-hosted runners (the only macOS Swift 6.4 toolchain is /Applications/Xcode-beta.app = Xcode 27 / Swift 6.4): - Move SyndiKit + Contribute build-macos-platforms off hosted macos-26/Xcode_26.4 (which is only Swift 6.2) onto [self-hosted, macOS] + Xcode-beta. - Add build-macos-platforms (iOS/watchOS/tvOS) to ButtondownKit/Spinetail/SwiftTube on the same self-hosted runner — these are swift-tools-version:6.4, so hosted released-Xcode runners can't even parse their manifests. All use the iOS/watchOS/tvOS 27.0 simulator runtimes present on the runner (iPhone 17 Pro / Apple Watch Ultra 3 (49mm) / Apple TV 4K (3rd generation)), full-matrix-gated and continue-on-error (simulator-on-nightly is the most fragile leg; promote once green). lint now needs build-macos-platforms. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: give Windows its own (stricter) matrix tier Three CI tiers instead of two: small set (build-ubuntu/build-macos/lint, always) < full-matrix (macОS-platforms/wasm/android) < +Windows. configure now emits a second output, run-windows, equal to full-matrix MINUS PRs into semver branches. build-windows (the most expensive leg — hosted windows-2022/2025 ×2) gates on run-windows; the rest keep full-matrix. So PRs into semver branches still exercise the full non-Windows matrix but skip Windows. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: test against swift-build feature branch + fold build-wasm into build-ubuntu - Point every brightdigit/swift-build@v1 reference at @sdk-url-checksum-nightly-6.4 (PR #116) TEMPORARILY so CI exercises the new wasm-sdk-url/android-sdk-url code before it ships in @v1. Revert to @v1 once #116 is merged + the v1 tag moved. - Fold build-wasm into build-ubuntu as a continue-on-error step in the same nightly-6.4.x-noble container (one spin-up; runs on every push/PR now, not just full-matrix). Removed the standalone build-wasm job from ButtondownKit/Spinetail/ SwiftTube/SyndiKit (Contribute has no wasm — Yams on Musl/wasm). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: only run push CI on main (drop integration branch from push trigger) Push events now trigger only on main (+ release tags). Feature/integration branches like brightdigit-com-260406 get CI through their PRs instead of a redundant branch-push run. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: unify the 5 CI workflows to byte-identical (except name) - Windows is now blocking everywhere (dropped continue-on-error from build-windows in all 5, not just SyndiKit). - The only per-package functional difference — the wasm step (Contribute can't build Yams on wasm) — is externalized to the ENABLE_WASM repo variable: `if: ${{ vars.ENABLE_WASM != 'false' }}`. Set ENABLE_WASM=false on Contribute. - Normalized all comments to a shared template. Result: the five workflow files are byte-identical except the `name:` line; the only behavioral knob is each repo's ENABLE_WASM variable. Filed Contribute#10 to fix Yams-on-wasm and re-enable it there. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: remove continue-on-error from all 5 CI workflows Make the WASM step, the Apple-platforms job (iOS/watchOS/tvOS), and the Android job blocking across all five subrepos. Tidy the now-stale continue-on-error comment phrases. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: gate watchOS leg on ENABLE_WATCHOS (disable where failing) watchOS-27 SDK rejects deps that infer an 8.0 deployment target (SwiftPM new ENABLE_WATCHOS repo variable (mirrors ENABLE_WASM), keeping the 5 workflows byte-identical. ENABLE_WATCHOS=false is set on ButtondownKit/SwiftTube/ Contribute/Spinetail; SyndiKit (unaffected) keeps running watchOS. Tracked in brightdigit.com#119. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: build-ubuntu as a [standard, wasm, wasm-embedded] matrix Mirror brightdigit/MistKit: the configure job emits ubuntu-type (gated by ENABLE_WASM), and build-ubuntu fans out over it via fromJSON. Standard ('') always runs; wasm + wasm-embedded run unless ENABLE_WASM=false (e.g. Yams on Contribute). Both wasm variants share the nightly-6.4.x SDK bundle. Replaces the single folded WASM step. Byte-identical across all 5. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Subrepos: make wasm/wasm-embedded legs build-only The wasm/embedded BUILD passes (OpenAPIURLSession is guarded out on WASI), but running the suite under WasmKit fails: Foundation resource bundles (test Fixtures) aren't mounted in the WASI sandbox, and embedded hits OpenAPIRuntime keypath-demangling limits at runtime. Neither is our bug. Build-only validates wasm/embedded compilation (the goal); the standard leg still runs the full suite + coverage. Mirrors the Android leg's build-only stance. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Add tests for uncovered EntryID/SiteCollection/media-properties branches Covers the 9 patch-coverage gaps flagged on PR #127: - EntryID: init(string:)/init?(_:)/description/Codable for all four cases - SiteCollectionDirectoryBuilder: init() + directory(fromCollection:) - PodcastEpisodeProperties.init?(rssItem:) nil branch (no enclosure) - YouTubeIDProperties.init?(entry:) nil branch (non-YouTube Atom entry) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * CI: revert swift-build action to @v1 (temp sdk-url-checksum-nightly-6.4 branch deleted) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Align with BrightDigit v1.0.0 CI template and drop self-hosted DocC cruft Add the template's auxiliary workflows (check-unsafe-flags, cleanup-caches, swift-source-compat) and .swift-version. Trim the devcontainer matrix to the supported set (stable 5.10-6.3, nightly 6.4 only; root pinned to 6.3). Remove the now-stale Mintfile and the self-hosted DocC / XcodeGen stack (netlify.toml, Dockerfile, .dockerignore, .htaccess, project.yml, Scripts/docc.sh, Scripts/httpd.conf, Scripts/gh-md-toc) since docs are hosted via SPI. Refresh .swiftlint.yml excludes and CLAUDE.md to match the mise-based 6.4 tooling. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Bump github.com/coreoffice/xmlcoder from 0.18.1 to 0.18.2 Bumps [github.com/coreoffice/xmlcoder](https://github.com/CoreOffice/XMLCoder) from 0.18.1 to 0.18.2. - [Release notes](https://github.com/CoreOffice/XMLCoder/releases) - [Commits](CoreOffice/XMLCoder@0.18.1...0.18.2) --- updated-dependencies: - dependency-name: github.com/coreoffice/xmlcoder dependency-version: 0.18.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Updates from brightdigit.com (#129) * Fix remaining subrepo CI failures * Cache lint tools and align Publish Ink pin * Wave 0 review feedback: CI hygiene, docs & agent tooling (#130) * Restore multi-version CI matrix and refresh devcontainers Rebuild SyndiKit.yml around a three-tier configure matrix on GitHub-hosted runners (no self-hosted): a single folded build-ubuntu across stable Swift 5.10-6.3 + nightly 6.4 (wasm/wasm-embedded on 6.3+6.4 only); macOS SPM on Swift 6.3 (Xcode 26.4) + 6.4 (Xcode 27 preview runner) with the full Apple platform matrix in the full tier; Windows and Android covering 6.3 + 6.4; and a restored source-compat suite. Reduced runs stay lean (noble x 6.3/6.4 + macOS SPM only). Devcontainers: default to Swift 6.3, add 6.2/6.3/6.4 (6.4 nightly image), remove the old 6.1/6.2 nightly folders. Refresh the stale CLAUDE.md CI section. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Keep swift-source-compat as a separate workflow Restore the standalone .github/workflows/swift-source-compat.yml (swift:5.10/ 6.0/6.1/6.2/6.3 + nightly-6.4) and drop the in-file source-compat-suite job from SyndiKit.yml; update CLAUDE.md accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci(android): cap API level at 34 and cover Swift 6.3 + 6.4-nightly (#131) The Swift Android SDK's bundled NDK sysroot for API 36 does not ship crtbegin_dynamic.o / crtend_android.o, which the Swift toolchain still asks ld.lld to link. That broke the Android leg of CI at API 36 (see android/ndk#1391). Rewrite the build-android matrix as a cross product of {Swift 6.3, Swift 6.4-nightly} x {API 28, API 34}, moving the nightly's SDK URL and ID onto the swift entry so the 6.3 rows leave them empty. Claude-Session: https://claude.ai/code/session_014j6vCW2JwTi3P9Sm6q2q4E Co-authored-by: Claude <noreply@anthropic.com> * ci(macos): extract matrix JSON and bump Xcode 26.4 → 26.6 Move macOS CI matrix entries into .github/matrices/ for readability, and bump Apple platform simulator OS versions to 26.5 on the Xcode 26 legs. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix v1.0.0 CI badge: correct workflow filename case and stray ? The CI badge pointed at `syndikit.yml` (lowercase), but on the v1.0.0 branch the workflow file is `SyndiKit.yml` (PascalCase, matching the other Wave 0 repos), so the badge rendered "no status". Also drop the stray `?` in `&?branch=main`. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Draft PR to sync the git-subrepo tracking branch into the default branch.
Opened as part of the brightdigit.com monorepo subrepo maintenance sweep (branch
brightdigit-com-260717batch). Contains the changes pushed from the monorepo viagit subrepo push.🤖 Generated with Claude Code