Skip to content

V1.0.0#5

Open
leogdion wants to merge 11 commits into
mainfrom
v1.0.0
Open

V1.0.0#5
leogdion wants to merge 11 commits into
mainfrom
v1.0.0

Conversation

@leogdion

@leogdion leogdion commented Aug 1, 2023

Copy link
Copy Markdown
Member

No description provided.

leogdion and others added 2 commits June 14, 2023 19:49
commit c089e4aee5ef9bd86c11e4dc8394ce7a1fcf927f
Author: Leo Dion <leogdion@brightdigit.com>
Date:   Wed Jun 14 19:48:23 2023 -0400

    adding files from BrightDigit

commit 5edd02ff2c4a78636e0d7f38d244b33be0726e71
Author: Leo Dion <leogdion@brightdigit.com>
Date:   Wed Jun 14 19:27:43 2023 -0400

    adding swift package
@codecov

codecov Bot commented Aug 1, 2023

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 88.33152% with 107 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (main@0310a6e). Learn more about missing BASE report.

Files with missing lines Patch % Lines
.../Contribute/Protocols/MarkdownContentBuilder.swift 0.00% 34 Missing ⚠️
Sources/Contribute/Protocols/ContentType.swift 0.00% 23 Missing ⚠️
...Contribute/SwiftSoupMarkdownGenerator+Markup.swift 88.46% 12 Missing ⚠️
...ces/Contribute/MarkdownContentBuilderOptions.swift 0.00% 7 Missing ⚠️
Tests/ContributeTests/XCTestCase+Extension.swift 89.36% 5 Missing ⚠️
Sources/Contribute/String.swift 93.22% 4 Missing ⚠️
...tribute/SwiftSoupMarkdownGenerator+TableList.swift 92.15% 4 Missing ⚠️
...ributeTests/FileURLDownloaderRemoteFileTests.swift 87.87% 4 Missing ⚠️
...rces/Contribute/PassthroughMarkdownGenerator.swift 0.00% 3 Missing ⚠️
Sources/Contribute/Protocols/URLSessionable.swift 0.00% 3 Missing ⚠️
... and 4 more
Additional details and impacted files
@@           Coverage Diff           @@
##             main       #5   +/-   ##
=======================================
  Coverage        ?   88.33%           
=======================================
  Files           ?       39           
  Lines           ?      917           
  Branches        ?        0           
=======================================
  Hits            ?      810           
  Misses          ?      107           
  Partials        ?        0           
Flag Coverage Δ
macos 88.05% <88.05%> (?)
noble 88.35% <88.35%> (?)
spm 88.05% <88.05%> (?)
swift-6.4 88.35% <88.35%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 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.

leogdion and others added 8 commits August 3, 2023 11:18
)

* Swift 6.4 language mode + GitHub Actions CI (#73)

* 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>

* Apply lint/style migration + fix swiftlint --strict in 4 BrightDigit packages

Brings Contribute, NPMPublishPlugin, ContributeWordPress, and
YoutubePublishPlugin to a clean `swiftlint --strict` pass (the failing matrix
Lint legs). Applies the same issue #54 treatment as the main repo:
swift-format formatting + MIT license headers (Scripts/header.sh) + source
fixes. SyndiKit intentionally left for a separate pass.

Source fixes (no config changes; public API and behavior preserved):
- generic_type_name: shorten generic parameter names to <=20 chars
- type_contents_order / file_types_order: reorder type members
- explicit_acl / explicit_top_level_acl: add explicit access modifiers
- one_declaration_per_file: split secondary declarations into new files
- missing_docs: add doc comments to public declarations (Youtube)
- force_try: replace try! with do/catch
- superfluous/blanket_disable_command: remove stale / narrow to scoped disables
- xct_specific_matcher, first_where, identifier_name, line_length,
  multiline_arguments_brackets, empty_xctest_method, orphaned_doc_comment

Verified per package: swiftlint --strict = 0, swift build --build-tests, and
swift test all pass; CI-mode Scripts/lint.sh exits "Linting completed successfully".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Migrate lint/style/CI configs to BrightDigit template patterns (#54) (#76)

* Phase 4 — OpenAPI & dependency migration (#109)

* Add test coverage and restore Linux coverage under Swift 6.4 (#116)

* Restore Linux coverage under Swift 6.4 via patched coverage action (#92)

Swift 6.4's swiftbuild engine emits Linux test bundles as <Name>.so under
.build/out/Products/<config>-linux-<arch>/ (no .xctest), which
sersoft-gmbh/swift-coverage-action@v5 couldn't pair with the profdata, so
Linux coverage was silently dropped. Point the Ubuntu coverage step at the
brightdigit fork (pinned by SHA) that detects the .so test bundle, and
re-enable fail-on-empty-output so a future regression is fatal again.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Add coverage for NPMPublishPlugin/ButtondownKit; ignore generated files

Raise patch coverage for first-party code changed in the Phase 4 OpenAPI
migration (#109).

- NPMPublishPlugin: add pure-logic XCTest suites for the restructured NPM/
  types whose tests were dropped (URL.relativePath, NPM.Argument, the
  Argument/Job result builders, Command, Settings, Job + ci()/run(),
  NPMInvocationError), and expand NPMInvocation factory coverage.
- ButtondownKit: cover ButtondownClient sendDraft/email error paths and
  init(apiKey:) via the existing MockTransport.
- codecov: ignore OpenAPI-generated files (**/Generated/**) in the root
  config and add per-package configs for ButtondownKit and SwiftTube.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Fix Contribute lint.sh errors

- Repin .swift-version to 6.4.x-snapshot (5.8 toolchain not installed)
- Force native build system for periphery so it finds the index store
  (Swift 6.4's swiftbuild writes it to .build/index-build/...)
- Use .isEmpty over == "" (SwiftLint empty_string)
- Drop redundant try? on Result<Bool, Never>.get() in FileManagerSpy
- Remove unused enum/property flagged by periphery
- Verify closure invocation via return value instead of mutating a
  captured var from a @sendable closure

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Contribute: depend on brightdigit/SwiftSoup fork via URL; drop vendored copy

Replaces the relative-path dependency on the in-repo vendored SwiftSoup
(Packages/scinfu/SwiftSoup) with the published brightdigit/SwiftSoup fork
(branch fix/swift-6.4-inline-crash = upstream f474b11 + the @inline patch).
Removes the 144-file vendored tree. Contribute now has no path dependencies
and builds standalone (verified: debug + release build on Swift 6.4).

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>

* Contribute: declare + CI all Apple platforms (iOS/watchOS/tvOS)

Contribute's Package.swift only declared .macOS, but the package supports all
Apple platforms. Declare iOS(.v13)/tvOS(.v13)/watchOS(.v6) — the floors set by its
only platform-constrained dependency, SwiftSoup (Yams and swift-markdown declare
none) — and add a build-macos-platforms job.

The graph (swift-markdown main is tools-version 6.2, cmark gfm 5.3, SwiftSoup/Yams
older) resolves under the released Xcode_26.4 on macos-26, so the suite runs on
hosted runners like SyndiKit's — validating Apple-platform source compatibility on
released Xcode (not nightly 6.4). continue-on-error for now: first time the
SwiftSoup-fork / swift-markdown-main deps are built for iOS/watchOS/tvOS.

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>

* 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>
@coderabbitai

coderabbitai Bot commented Jun 21, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@leogdion, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 54 minutes and 5 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 15c17f20-5786-493f-88e5-d22c563294c6

📥 Commits

Reviewing files that changed from the base of the PR and between 0310a6e and 0bfb818.

⛔ Files ignored due to path filters (3)
  • Sources/Contribute/Documentation.docc/Resources/ContributeLogo.png is excluded by !**/*.png
  • Sources/Contribute/Documentation.docc/Resources/ContributeLogo.svg is excluded by !**/*.svg
  • Sources/Contribute/Documentation.docc/Resources/ContributeLogo@2x.png is excluded by !**/*.png
📒 Files selected for processing (76)
  • .devcontainer/devcontainer-lock.json
  • .devcontainer/devcontainer.json
  • .github/workflows/Contribute.yml
  • .github/workflows/check-unsafe-flags.yml
  • .github/workflows/claude-code-review.yml
  • .github/workflows/claude.yml
  • .github/workflows/cleanup-caches.yml
  • .github/workflows/swift-source-compat.yml
  • .gitignore
  • .mise.toml
  • .periphery.yml
  • .spi.yml
  • .swift-format
  • .swift-version
  • .swiftlint.yml
  • CLAUDE.md
  • Package.resolved
  • Package.swift
  • Scripts/header.sh
  • Scripts/lint.sh
  • Sources/Contribute/ContributeError.swift
  • Sources/Contribute/Documentation.docc/Documentation.md
  • Sources/Contribute/Documentation.docc/Resources/ContributeLogo.webp
  • Sources/Contribute/FileNameGenerator.swift
  • Sources/Contribute/FileURLDownloader.swift
  • Sources/Contribute/FilteredHTMLMarkdownExtractor.swift
  • Sources/Contribute/FrontMatterYAMLExporter.swift
  • Sources/Contribute/HTMLtoMarkdown.swift
  • Sources/Contribute/ImportError.swift
  • Sources/Contribute/MarkdownContentBuilderOptions.swift
  • Sources/Contribute/MarkdownContentYAMLBuilder.swift
  • Sources/Contribute/PassthroughMarkdownGenerator.swift
  • Sources/Contribute/Protocols/BasicContentURLGenerator.swift
  • Sources/Contribute/Protocols/ContentType.swift
  • Sources/Contribute/Protocols/ContentURLGenerator.swift
  • Sources/Contribute/Protocols/FileManagerProtocol.swift
  • Sources/Contribute/Protocols/FrontMatterExporter.swift
  • Sources/Contribute/Protocols/FrontMatterFormatter.swift
  • Sources/Contribute/Protocols/FrontMatterMarkdownFormatter.swift
  • Sources/Contribute/Protocols/FrontMatterTranslator.swift
  • Sources/Contribute/Protocols/HTMLSource.swift
  • Sources/Contribute/Protocols/MarkdownContentBuilder.swift
  • Sources/Contribute/Protocols/MarkdownExtractor.swift
  • Sources/Contribute/Protocols/MarkdownGenerator.swift
  • Sources/Contribute/Protocols/URLDownloader.swift
  • Sources/Contribute/Protocols/URLSessionable.swift
  • Sources/Contribute/SimpleFrontMatterMarkdownFormatter.swift
  • Sources/Contribute/String.swift
  • Sources/Contribute/SwiftSoupMarkdownGenerator+Markup.swift
  • Sources/Contribute/SwiftSoupMarkdownGenerator+TableList.swift
  • Sources/Contribute/SwiftSoupMarkdownGenerator.swift
  • Sources/Contribute/URL.swift
  • Sources/Contribute/YAML.swift
  • Tests/ContributeTests/FileNameGeneratorTests.swift
  • Tests/ContributeTests/FileURLDownloaderLocalFileTests.swift
  • Tests/ContributeTests/FileURLDownloaderRemoteFileTests.swift
  • Tests/ContributeTests/FilteredHTMLMarkdownExtractorTests.swift
  • Tests/ContributeTests/FrontMatterYAMLExporterTests.swift
  • Tests/ContributeTests/HTMLtoMarkdownTests.swift
  • Tests/ContributeTests/MarkdownContentYAMLBuilderTests.swift
  • Tests/ContributeTests/Mock/MockFrontMatter.swift
  • Tests/ContributeTests/Mock/MockSource.swift
  • Tests/ContributeTests/Result+Extension.swift
  • Tests/ContributeTests/SimpleFrontMatterMarkdownFormatterTests.swift
  • Tests/ContributeTests/Spies/FileManagerSpy.swift
  • Tests/ContributeTests/Spies/FileManagerTestError.swift
  • Tests/ContributeTests/Spies/FrontMatterExporterSpy.swift
  • Tests/ContributeTests/Spies/FrontMatterTranslatorSpy.swift
  • Tests/ContributeTests/Spies/MarkdownExtractorSpy.swift
  • Tests/ContributeTests/Spies/NetworkManagerSpy.swift
  • Tests/ContributeTests/Spies/NetworkManagerTestError.swift
  • Tests/ContributeTests/StringExtensionTests.swift
  • Tests/ContributeTests/SwiftSoupMarkdownGeneratorTests.swift
  • Tests/ContributeTests/TestError.swift
  • Tests/ContributeTests/XCTestCase+Extension.swift
  • Tests/ContributeTests/YAMLTests.swift
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch v1.0.0

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Add generic CI/dev-environment files shared across BrightDigit packages
and drop vestigial tooling no longer used:

- Add .github/workflows/{check-unsafe-flags,cleanup-caches,swift-source-compat,claude,claude-code-review}.yml
- Add .devcontainer (Swift 6.4 nightly)
- Add CLAUDE.md
- Remove Mintfile (mise-only now), project.yml (stale XcodeGen config),
  Scripts/gh-md-toc (unused)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@leogdion leogdion marked this pull request as ready for review June 22, 2026 15:06
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.

2 participants