Update platform requirements to match RadiantKit minimums (#139)#140
Update platform requirements to match RadiantKit minimums (#139)#140
Conversation
Raises minimum platform versions to align with RadiantKit dependency requirements: macOS 15, iOS 18, watchOS 11, tvOS 18, visionOS 2, and macCatalyst 18. Updates both code and documentation for consistency. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
📝 WalkthroughWalkthroughUpdates minimum platform version requirements across documentation and manifest files. macOS bumped to 15, iOS to 18, watchOS to 11, tvOS to 18, visionOS to 2, and macCatalyst to 18 in CLAUDE.md, Package.swift, WWDC2023.swift, and README.md. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Possibly related issues
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
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 ReviewI've reviewed PR #140 and have the following feedback: ✅ Positive Aspects
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI Agents
In @Package/Sources/Platforms/WWDC2023.swift:
- Around line 34-39: The WWDC2023.swift SupportedPlatform declarations (e.g.,
SupportedPlatform.macOS(.v15), iOS(.v18), watchOS(.v11), tvOS(.v18),
visionOS(.v2), macCatalyst(.v18)) raise deployment targets above RadiantKit's
stated minima; adjust these values to match RadiantKit 1.0.0-beta.4 minimums
(macOS .v12, iOS .v15, watchOS .v8, tvOS .v15, visionOS .v1, macCatalyst .v15)
unless there is an explicit, documented reason for higher targets—if a higher
target is required, add a short comment in WWDC2023.swift explaining the
rationale and which API or dependency enforces the increase.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
CLAUDE.mdPackage.swiftPackage/Sources/Platforms/WWDC2023.swiftREADME.md
🧰 Additional context used
📓 Path-based instructions (3)
Package/Sources/**/*.swift
📄 CodeRabbit inference engine (CLAUDE.md)
Package/Sources/**/*.swift: Always regenerate Package.swift after editing files in Package/Sources/ using ./Scripts/package.sh
Use result builders (@ProductsBuilder, @DependencyBuilder) for declarative syntax in Package definition files
Define products and targets in Package/Sources/ using the custom Package builder pattern, then regenerate Package.swift
Files:
Package/Sources/Platforms/WWDC2023.swift
**/*.swift
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.swift: Use async/await for all I/O operations, including VM operations (start, pause, stop), configuration retrieval, and image loading
Ensure all public types conform to Sendable protocol for thread safety
Use protocol-based design with associated types for abstraction and extensibility
Use typed errors following Swift conventions (VMSystemError, MachineError, LibraryError, BuilderError, BookmarkError)
Use the Builder pattern for complex object creation, particularly for machine and configuration building
Extend core types with features following Swift conventions using extensions (e.g., Machine, MachineSystem extensions)
Include comprehensive doc comments on all public APIs following DocC standards
Support Swift 6.0+ with strict concurrency checking enabled and use modern Swift features (noncopyable generics, variadic generics)
Use conditional compilation where necessary to support multiple platforms (macOS, iOS, watchOS, tvOS, Linux)
Use lazy loading for configuration and metadata to improve performance
Files:
Package/Sources/Platforms/WWDC2023.swiftPackage.swift
Package.swift
📄 CodeRabbit inference engine (CLAUDE.md)
Package.swift: Do not edit Package.swift directly; it is generated from source files in Package/ directory
Maintain minimum deployment targets: macOS 14+, iOS/watchOS/tvOS as applicable, Linux (Ubuntu 20.04+)
Files:
Package.swift
🧠 Learnings (11)
📓 Common learnings
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to Package.swift : Maintain minimum deployment targets: macOS 14+, iOS/watchOS/tvOS as applicable, Linux (Ubuntu 20.04+)
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Generate and validate documentation using swift package generate-documentation with appropriate platform and hosting settings
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to Sources/BushelMacOSCore/**/*.swift : Implement platform-specific logic through protocol conformances (e.g., MacOSVirtualization for MachineSystem, MacOSRelease for version management)
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to **/*.swift : Use conditional compilation where necessary to support multiple platforms (macOS, iOS, watchOS, tvOS, Linux)
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Build on multiple Swift versions (6.0, 6.1, 6.2, nightly) and multiple Xcode versions to ensure compatibility
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to Package.swift : Do not edit Package.swift directly; it is generated from source files in Package/ directory
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to Package.swift : Maintain minimum deployment targets: macOS 14+, iOS/watchOS/tvOS as applicable, Linux (Ubuntu 20.04+)
Applied to files:
README.mdCLAUDE.mdPackage/Sources/Platforms/WWDC2023.swiftPackage.swift
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to **/*.swift : Use conditional compilation where necessary to support multiple platforms (macOS, iOS, watchOS, tvOS, Linux)
Applied to files:
README.mdCLAUDE.mdPackage/Sources/Platforms/WWDC2023.swiftPackage.swift
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Build on multiple Swift versions (6.0, 6.1, 6.2, nightly) and multiple Xcode versions to ensure compatibility
Applied to files:
README.mdCLAUDE.mdPackage/Sources/Platforms/WWDC2023.swiftPackage.swift
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to **/*.swift : Support Swift 6.0+ with strict concurrency checking enabled and use modern Swift features (noncopyable generics, variadic generics)
Applied to files:
README.mdCLAUDE.mdPackage.swift
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to Sources/BushelMacOSCore/**/*.swift : Implement platform-specific logic through protocol conformances (e.g., MacOSVirtualization for MachineSystem, MacOSRelease for version management)
Applied to files:
README.mdCLAUDE.mdPackage/Sources/Platforms/WWDC2023.swiftPackage.swift
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to Package.swift : Do not edit Package.swift directly; it is generated from source files in Package/ directory
Applied to files:
CLAUDE.mdPackage/Sources/Platforms/WWDC2023.swiftPackage.swift
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to Package/Sources/**/*.swift : Define products and targets in Package/Sources/ using the custom Package builder pattern, then regenerate Package.swift
Applied to files:
CLAUDE.mdPackage/Sources/Platforms/WWDC2023.swift
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to **/*.swift : Use protocol-based design with associated types for abstraction and extensibility
Applied to files:
CLAUDE.md
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Applies to **/*.swift : Use the Builder pattern for complex object creation, particularly for machine and configuration building
Applied to files:
CLAUDE.md
📚 Learning: 2025-12-19T17:23:57.462Z
Learnt from: CR
Repo: brightdigit/BushelKit PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T17:23:57.462Z
Learning: Generate and validate documentation using swift package generate-documentation with appropriate platform and hosting settings
Applied to files:
CLAUDE.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: claude-review
- GitHub Check: Analyze (swift)
- GitHub Check: Build on macOS (visionos, macos-15, /Applications/Xcode_26.0.app, Apple Vision Pro, 26.0, true)
- GitHub Check: Build on macOS (watchos, macos-15, /Applications/Xcode_16.4.app, Apple Watch Series 10 (42mm), 11.5)
- GitHub Check: Analyze (swift)
🔇 Additional comments (3)
README.md (1)
56-56: Documentation update is correct.The deployment target requirements are accurately updated to reflect the new minimum platform versions. The documentation is clear and consistent with the changes in WWDC2023.swift.
CLAUDE.md (1)
17-17: Documentation update is correct.The macOS deployment target requirement is accurately updated from macOS 14+ to macOS 15+, which aligns with the platform version changes in WWDC2023.swift.
Note: The existing learning states "Maintain minimum deployment targets: macOS 14+, iOS/watchOS/tvOS as applicable" - this learning should be updated to reflect the new macOS 15+ baseline.
Package.swift (1)
3230-3235: Package.swift was correctly regenerated from source files.The platform version updates in Package.swift (lines 3230-3235) match the source file WWDC2023.swift exactly. Both files were committed together in the same change, the working tree is clean, and the regeneration script exists. The workflow was properly followed—no manual edits to Package.swift were made.
| SupportedPlatform.macOS(.v15) | ||
| SupportedPlatform.iOS(.v18) | ||
| SupportedPlatform.watchOS(.v11) | ||
| SupportedPlatform.tvOS(.v18) | ||
| SupportedPlatform.visionOS(.v2) | ||
| SupportedPlatform.macCatalyst(.v18) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Step 1: Check if RadiantKit is a dependency in the current Package.swift
echo "=== Searching for RadiantKit dependency in current Package.swift ==="
rg -n "RadiantKit" Package.swift | head -20Repository: brightdigit/BushelKit
Length of output: 447
🏁 Script executed:
#!/bin/bash
# Clone RadiantKit and check its Package.swift platform requirements
TEMP_DIR=$(mktemp -d)
trap "rm -rf $TEMP_DIR" EXIT
echo "=== Cloning RadiantKit repository ==="
git clone --depth 1 https://github.com/brightdigit/RadiantKit.git "$TEMP_DIR/RadiantKit" 2>&1 | grep -E "Cloning|fatal"
if [ -f "$TEMP_DIR/RadiantKit/Package.swift" ]; then
echo ""
echo "=== RadiantKit Platform Requirements ==="
rg -n "\.macOS|\.iOS|\.watchOS|\.tvOS|\.visionOS|\.macCatalyst" "$TEMP_DIR/RadiantKit/Package.swift" -B 2 -A 2
else
echo "ERROR: Could not find RadiantKit Package.swift"
exit 1
fiRepository: brightdigit/BushelKit
Length of output: 392
Platform versions in WWDC2023.swift exceed RadiantKit's actual requirements.
RadiantKit (1.0.0-beta.4) specifies: macOS .v12, iOS .v15, watchOS .v8, tvOS .v15, visionOS .v1, and macCatalyst .v15. However, WWDC2023.swift defines significantly higher versions: macOS .v15, iOS .v18, watchOS .v11, tvOS .v18, visionOS .v2, and macCatalyst .v18. These version jumps are not justified by the RadiantKit dependency and unnecessarily increase the minimum deployment targets beyond what's required.
Verify the rationale for these version bumps. If they are not driven by RadiantKit requirements, consider aligning them to the actual dependency minimums or document the reason for the higher targets.
🤖 Prompt for AI Agents
In @Package/Sources/Platforms/WWDC2023.swift around lines 34 - 39, The
WWDC2023.swift SupportedPlatform declarations (e.g.,
SupportedPlatform.macOS(.v15), iOS(.v18), watchOS(.v11), tvOS(.v18),
visionOS(.v2), macCatalyst(.v18)) raise deployment targets above RadiantKit's
stated minima; adjust these values to match RadiantKit 1.0.0-beta.4 minimums
(macOS .v12, iOS .v15, watchOS .v8, tvOS .v15, visionOS .v1, macCatalyst .v15)
unless there is an explicit, documented reason for higher targets—if a higher
target is required, add a short comment in WWDC2023.swift explaining the
rationale and which API or dependency enforces the increase.
Raises minimum platform versions to align with RadiantKit dependency requirements: macOS 15, iOS 18, watchOS 11, tvOS 18, visionOS 2, and macCatalyst 18. Updates both code and documentation for consistency.
🤖 Generated with Claude Code
Perform an AI-assisted review on
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.