Skip to content

Update platform requirements to match RadiantKit minimums (#139)#140

Closed
leogdion wants to merge 1 commit intomainfrom
139-update-platform-requirements
Closed

Update platform requirements to match RadiantKit minimums (#139)#140
leogdion wants to merge 1 commit intomainfrom
139-update-platform-requirements

Conversation

@leogdion
Copy link
Copy Markdown
Member

@leogdion leogdion commented Jan 6, 2026

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 CodePeer.com

Summary by CodeRabbit

  • Chores
    • Updated minimum platform deployment targets. The app now requires macOS 15+, iOS 18+, watchOS 11+, tvOS 18+, visionOS 2+, and macCatalyst 18+.

✏️ Tip: You can customize this high-level summary in your review settings.

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>
@leogdion leogdion linked an issue Jan 6, 2026 that may be closed by this pull request
3 tasks
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Jan 6, 2026

📝 Walkthrough

Walkthrough

Updates 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

Cohort / File(s) Summary
Documentation Updates
CLAUDE.md, README.md
Updated documented minimum platform requirements to reflect macOS 15, iOS 18, watchOS 11, tvOS 18, visionOS 2, and macCatalyst 18.
Manifest & Configuration
Package.swift, Package/Sources/Platforms/WWDC2023.swift
Updated platform version constants and package manifest declarations from previous deployment targets to macOS .v15, iOS .v18, watchOS .v11, tvOS .v18, visionOS .v2, and macCatalyst .v18.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related issues

Poem

🐰 Platforms hop, versions climb so high,
From fifteen to eighteen, reaching the sky,
macOS, iOS, watch and vision too,
A fluffy bump-up to something new! 🚀

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: updating platform requirements to match RadiantKit minimums, which is reflected across all modified files (CLAUDE.md, Package.swift, WWDC2023.swift, and README.md).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings

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.

@claude
Copy link
Copy Markdown

claude bot commented Jan 6, 2026

Code Review

I've reviewed PR #140 and have the following feedback:

Positive Aspects

  1. Correct Platform Version Updates: All platform versions are updated correctly to match RadiantKit's requirements as specified in issue Update platform requirements to match RadiantKit minimums #139:

    • macOS: 14 → 15 ✓
    • iOS: 15 → 18 ✓
    • watchOS: 8 → 11 ✓
    • tvOS: 15 → 18 ✓
    • visionOS: 1 → 2 ✓
    • macCatalyst: 15 → 18 ✓
  2. Comprehensive Documentation Updates: The changes properly update all relevant documentation files:

    • CLAUDE.md (deployment target updated)
    • README.md (requirements section updated)
    • Package.swift (generated file)
    • Package/Sources/Platforms/WWDC2023.swift (source file)
  3. Follows Project Conventions: The PR correctly updates the source file in Package/Sources/Platforms/ which will be used to regenerate Package.swift, following the project's documented pattern.

  4. Proper Attribution: Includes Claude Code attribution in the commit message, following project conventions.

⚠️ Issues & Concerns

1. Critical: Naming Convention Mismatch

The platform set is named WWDC2023 but now specifies platform versions from WWDC 2024:

  • macOS 15 (Sequoia) - announced WWDC 2024
  • iOS 18 - announced WWDC 2024
  • watchOS 11 - announced WWDC 2024
  • tvOS 18 - announced WWDC 2024
  • visionOS 2 - announced WWDC 2024

Recommendation: The struct should be renamed from WWDC2023 to WWDC2024 to accurately reflect the platform versions. This is important for code clarity and maintainability.

Impact: While this doesn't affect functionality, it creates confusion for future maintainers and violates the principle of self-documenting code.

2. Missing Regeneration Step

According to CLAUDE.md, after modifying files in Package/Sources/, you should regenerate Package.swift:

./Scripts/package.sh .

Verification Needed: Confirm that Package.swift was regenerated from the source files and not manually edited. The diff shows both files were changed, which is correct, but it's worth verifying the regeneration was done properly.

3. Old Platform Versions in Prior State

The previous platform versions were notably outdated:

  • macOS 12 (from WWDC 2021)
  • iOS 15 (from WWDC 2021)
  • visionOS 1 (from WWDC 2023)

This suggests the WWDC2023 name was already inaccurate, which further supports renaming it.

📋 Additional Recommendations

  1. Test Coverage: Ensure the package builds successfully on all updated platform minimums. The CI/CD pipeline should validate this.

  2. Breaking Change Documentation: This is a breaking change for any consumers using older platform versions. Consider:

    • Bumping the major version number (or documenting this as a breaking change in release notes)
    • Clearly communicating this in the changelog
  3. Dependency Verification: While the issue mentions RadiantKit requires these versions, consider verifying that all other dependencies (OSVer, IPSWDownloads, etc.) are compatible with these minimum versions.

🏁 Conclusion

The PR correctly implements the required platform version updates with proper documentation changes. However, the WWDC2023WWDC2024 naming issue should be addressed before merging to maintain code clarity.

Recommendation: Update the struct name from WWDC2023 to WWDC2024 in both Package/Sources/Platforms/WWDC2023.swift (rename file too) and regenerate Package.swift.

Once the naming is corrected, this PR will be ready to merge. ✅

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between e515399 and 945faad.

📒 Files selected for processing (4)
  • CLAUDE.md
  • Package.swift
  • Package/Sources/Platforms/WWDC2023.swift
  • README.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.swift
  • Package.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.md
  • CLAUDE.md
  • Package/Sources/Platforms/WWDC2023.swift
  • Package.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.md
  • CLAUDE.md
  • Package/Sources/Platforms/WWDC2023.swift
  • Package.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.md
  • CLAUDE.md
  • Package/Sources/Platforms/WWDC2023.swift
  • Package.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.md
  • CLAUDE.md
  • Package.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.md
  • CLAUDE.md
  • Package/Sources/Platforms/WWDC2023.swift
  • Package.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.md
  • Package/Sources/Platforms/WWDC2023.swift
  • Package.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.md
  • Package/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.

Comment on lines +34 to +39
SupportedPlatform.macOS(.v15)
SupportedPlatform.iOS(.v18)
SupportedPlatform.watchOS(.v11)
SupportedPlatform.tvOS(.v18)
SupportedPlatform.visionOS(.v2)
SupportedPlatform.macCatalyst(.v18)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 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 -20

Repository: 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
fi

Repository: 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.

@leogdion leogdion closed this Jan 7, 2026
@leogdion leogdion deleted the 139-update-platform-requirements branch January 7, 2026 20:10
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.

Update platform requirements to match RadiantKit minimums

1 participant