Skip to content

Commit

Permalink
6.0.0 (#49)
Browse files Browse the repository at this point in the history
  • Loading branch information
alemar11 authored Jun 26, 2024
1 parent 16dc92e commit 3c834ff
Show file tree
Hide file tree
Showing 116 changed files with 3,886 additions and 4,855 deletions.
107 changes: 63 additions & 44 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
name: "CoreDataPlus CI"

concurrency:
group: ${{ github.ref }}
cancel-in-progress: true

on:
schedule:
- cron: '0 23 * * *' # At the end of every day
- cron: '0 0 * * 2' # Run every Tuesday
push:
branches:
- main
Expand All @@ -16,12 +12,16 @@ on:
- main
- develop

concurrency:
group: ${{ github.ref }}
cancel-in-progress: true

jobs:
info:
name: Show macOS and Xcode versions
runs-on: macos-12
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_14.0.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
steps:
- name: Versions
run: |
Expand All @@ -32,95 +32,114 @@ jobs:
xcrun simctl list
macOS:
name: Test macOS
runs-on: macos-12
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_14.0.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: macOS
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus macOS" -destination "platform=macOS" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "platform=macOS" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'

- name: Upload tests report
if: failure()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: macOS tests report
path: ~/Downloads/Report
iOS:
name: Test iOS
runs-on: macos-12
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_14.0.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=16.0,name=iPhone 13 Pro"] #, "OS=12.4,name=iPhone XS", "OS=11.4,name=iPhone X"]
destination: ["OS=17.0,name=iPhone 15 Pro"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: iOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus iOS" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'

- name: Upload tests report
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: iOS tests report
path: ~/Downloads/Report
path: ~/Downloads/Report
visionOS:
name: Test visionOS
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=1.0,name=Apple Vision Pro"]
steps:
- uses: actions/checkout@v4
- name: iOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'

- name: Upload tests report
if: always()
uses: actions/upload-artifact@v4
with:
name: visionOS tests report
path: ~/Downloads/Report
tvOS:
name: Test tvOS
runs-on: macos-12
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_14.0.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=16.0,name=Apple TV 4K (2nd generation)"] #, "OS=13.0,name=Apple TV 4K (at 1080p)", "OS=11.4,name=Apple TV 4K"]
destination: ["OS=17.0,name=Apple TV"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: tvOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus tvOS" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'

- name: Upload tests report
if: failure()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: tvOS tests report
path: ~/Downloads/Report
watchOS:
name: Test watchOS
runs-on: macOS-12
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_14.0.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
strategy:
matrix:
destination: ["OS=9.0,name=Apple Watch Series 8 (45mm)"] #, ""OS=5.3,name=Apple Watch Series 4 - 44mm", "OS=4.2,name=Apple Watch Series 3 - 42mm"]
destination: ["OS=10.0,name=Apple Watch Series 9 (45mm)"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: watchOS - ${{ matrix.destination }}
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus watchOS" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "CoreDataPlus.xcodeproj" -scheme "CoreDataPlus" -destination "${{ matrix.destination }}" clean test -quiet -resultBundlePath '~/Downloads/Report/report.xcresult'

- name: Upload tests report
if: failure()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: watchOS tests report
path: ~/Downloads/Report
spm:
SPM:
name: Test SPM Integration
runs-on: macos-12
runs-on: macos-14
env:
DEVELOPER_DIR: /Applications/Xcode_14.0.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: SPM Test
run: |
swift --version
swift test
lint:
name: Swift Lint
runs-on: macos-12
steps:
- uses: actions/checkout@v2
- name: Run SwiftLint
run: |
swift --version
swiftlint --reporter github-actions-logging
# lint:
# name: Swift Lint
# runs-on: macos-14
# steps:
# - uses: actions/checkout@v4
# - name: Run SwiftLint
# run: |
# swift --version
# swiftlint --reporter github-actions-logging

7 changes: 0 additions & 7 deletions .jazzy.yml

This file was deleted.

69 changes: 69 additions & 0 deletions .swift-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"fileScopedDeclarationPrivacy" : {
"accessLevel" : "private"
},
"indentation" : {
"spaces" : 2
},
"indentConditionalCompilationBlocks" : true,
"indentSwitchCaseLabels" : false,
"lineBreakAroundMultilineExpressionChainComponents" : false,
"lineBreakBeforeControlFlowKeywords" : false,
"lineBreakBeforeEachArgument" : false,
"lineBreakBeforeEachGenericRequirement" : false,
"lineLength" : 120,
"maximumBlankLines" : 1,
"multiElementCollectionTrailingCommas" : true,
"noAssignmentInExpressions" : {
"allowedFunctions" : [
"XCTAssertNoThrow"
]
},
"prioritizeKeepingFunctionOutputTogether" : false,
"respectsExistingLineBreaks" : true,
"rules" : {
"AllPublicDeclarationsHaveDocumentation" : false,
"AlwaysUseLiteralForEmptyCollectionInit" : false,
"AlwaysUseLowerCamelCase" : true,
"AmbiguousTrailingClosureOverload" : true,
"BeginDocumentationCommentWithOneLineSummary" : false,
"DoNotUseSemicolons" : true,
"DontRepeatTypeInStaticProperties" : true,
"FileScopedDeclarationPrivacy" : true,
"FullyIndirectEnum" : true,
"GroupNumericLiterals" : true,
"IdentifiersMustBeASCII" : true,
"NeverForceUnwrap" : false,
"NeverUseForceTry" : false,
"NeverUseImplicitlyUnwrappedOptionals" : false,
"NoAccessLevelOnExtensionDeclaration" : true,
"NoAssignmentInExpressions" : true,
"NoBlockComments" : true,
"NoCasesWithOnlyFallthrough" : true,
"NoEmptyTrailingClosureParentheses" : true,
"NoLabelsInCasePatterns" : true,
"NoLeadingUnderscores" : false,
"NoParensAroundConditions" : true,
"NoPlaygroundLiterals" : true,
"NoVoidReturnOnFunctionSignature" : true,
"OmitExplicitReturns" : true,
"OneCasePerLine" : true,
"OneVariableDeclarationPerLine" : true,
"OnlyOneTrailingClosureArgument" : false,
"OrderedImports" : true,
"ReplaceForEachWithForLoop" : true,
"ReturnVoidInsteadOfEmptyTuple" : true,
"TypeNamesShouldBeCapitalized" : true,
"UseEarlyExits" : false,
"UseLetInEveryBoundCaseVariable" : true,
"UseShorthandTypeNames" : true,
"UseSingleLinePropertyGetter" : true,
"UseSynthesizedInitializer" : true,
"UseTripleSlashForDocumentationComments" : true,
"UseWhereClausesInForLoops" : false,
"ValidateDocumentationComments" : false
},
"spacesAroundRangeFormationOperators" : false,
"tabWidth" : 8,
"version" : 1
}
13 changes: 12 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

### 6.0.0 ⭐

- Xcode 15.
- Swift 5.10 support.
- VisionOS support.
- Swift Concurrency support.
- `NSCompositeAttributeDescription` extensions.
- Removed `LightweightMigrationManager`.
- `entityName` is now ovverridable
- `ModelVersion` now support both the old migration flow (`LegacyMigration`) and the new one (`StagedMigration`)

### 5.0.0 ⭐

- Xcode 13.
Expand All @@ -19,7 +30,7 @@
- Added `NSAttributeDescription` utility methods.
- Added `NSEntityMapping` utility methods.
- Added `NSAttributeDescription` utility methods.
- Added `LightweightMigrationManger`, a `NSMigrationManager` subclass to do *lightweight* migrations with a fake progress reporting.
- Added `LightweightMigrationManager`, a `NSMigrationManager` subclass to do *lightweight* migrations with a fake progress reporting.
- Added `MigrationProgressReporter` to report migration progress via a `Progress` object.
- Added a `NSManagedObjectContext` helper method to create a child context.
- Added support for `NSPersistentStoreCoordinator` notifications payloads.
Expand Down
Loading

0 comments on commit 3c834ff

Please sign in to comment.