CoreDataPlus is a Swift package for Apple platforms (iOS, macOS, watchOS, tvOS) - no Linux support.
Structure:
Sources/— organized by Core Data features (Migration/,Notifications/,Transformers/) plus utility extensionsTests/— XCTest suites using<Feature>_Tests.swiftnaming, fixtures inResources/, helpers inUtils/CoreDataPlus.xcodeproj— mirrors SwiftPM for Xcode integrationSupport/— Info.plists and build collateralbin/— automation scripts (formatting, linting, DocC)
swift build/swift test— build and test the packagebash bin/format.sh/bash bin/lint.sh— format and lint codebash bin/docc.sh— generate documentation
Style: 2-space indentation, 120-character wrap, trailing commas in multiline collections. Use lowerCamelCase for functions/properties, UpperCamelCase for types.
Requirements: Run formatter before PRs. Address SwiftLint warnings (line length limits, sorted imports). Avoid @objcMembers, force unwraps, and double spaces.
Testing: Write XCTest coverage for new features. Place fixtures in Tests/Resources/. Add regression tests for bug fixes and performance tests for migrations.
PRs: Use imperative commit messages ("Update Swift Package instructions"). Reference issues with (#123). Describe changes, testing, and API impacts. Run format/lint/test scripts before review.