Skip to content

Commit

Permalink
Bump the Swift version to 6.0 (#8)
Browse files Browse the repository at this point in the history
* Bump the Swift version to 6.0

* Update `ci.yml`

* Update `CHANGELOG.md`

* Update `README.md`
  • Loading branch information
ns-vasilev authored Dec 25, 2024
1 parent 1b9bf18 commit 621f592
Show file tree
Hide file tree
Showing 10 changed files with 159 additions and 52 deletions.
102 changes: 70 additions & 32 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ jobs:
fail-fast: false
matrix:
include:
- xcode: "Xcode_16.0"
runsOn: macOS-14
name: "macOS 14, Xcode 16.0, Swift 6.0"
- xcode: "Xcode_15.4"
runsOn: macOS-14
name: "macOS 14, Xcode 15.4, Swift 5.10"
- xcode: "Xcode_15.0"
runsOn: macos-13
name: "macOS 13, Xcode 15.0, Swift 5.9.0"
Expand All @@ -44,16 +50,12 @@ jobs:
- uses: actions/checkout@v3
- name: ${{ matrix.name }}
run: xcodebuild test -scheme "Log" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
- name: Upload test coverage reports to Codecov
uses: space-code/oss-common-actions/.github/actions/upload_test_coverage_report@main
with:
scheme_name: Log
filename: ${{ matrix.name }}
token: ${{ secrets.CODECOV_TOKEN }}
xcode: true
xcode_archive_path: test_output/${{ matrix.name }}.xcresult
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
path: test_output

iOS:
name: ${{ matrix.name }}
Expand All @@ -65,6 +67,18 @@ jobs:
fail-fast: false
matrix:
include:
- destination: "OS=18.1,name=iPhone 16 Pro"
name: "iOS 18.1"
xcode: "Xcode_16.1"
runsOn: macOS-14
- destination: "OS=18.0,name=iPhone 16 Pro"
name: "iOS 18.0"
xcode: "Xcode_16.0"
runsOn: macOS-14
- destination: "OS=17.5,name=iPhone 15 Pro"
name: "iOS 17.5"
xcode: "Xcode_15.4"
runsOn: macOS-14
- destination: "OS=17.0.1,name=iPhone 14 Pro"
name: "iOS 17.0.1"
xcode: "Xcode_15.0"
Expand All @@ -77,10 +91,12 @@ jobs:
- uses: actions/checkout@v3
- name: ${{ matrix.name }}
run: xcodebuild test -scheme "Log" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
- uses: actions/upload-artifact@v4
- name: Upload test coverage reports to Codecov
uses: space-code/oss-common-actions/.github/actions/upload_test_coverage_report@main
with:
name: ${{ matrix.name }}
path: test_output
scheme_name: Log
filename: ${{ matrix.name }}
token: ${{ secrets.CODECOV_TOKEN }}

tvOS:
name: ${{ matrix.name }}
Expand All @@ -92,6 +108,18 @@ jobs:
fail-fast: false
matrix:
include:
- destination: "OS=18.1,name=Apple TV"
name: "tvOS 18.1"
xcode: "Xcode_16.1"
runsOn: macOS-14
- destination: "OS=18.0,name=Apple TV"
name: "tvOS 18.0"
xcode: "Xcode_16.0"
runsOn: macOS-14
- destination: "OS=17.5,name=Apple TV"
name: "tvOS 17.5"
xcode: "Xcode_15.4"
runsOn: macOS-14
- destination: "OS=17.0,name=Apple TV"
name: "tvOS 17.0"
xcode: "Xcode_15.0"
Expand All @@ -104,16 +132,12 @@ jobs:
- uses: actions/checkout@v3
- name: ${{ matrix.name }}
run: xcodebuild test -scheme "Log" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
- name: Upload test coverage reports to Codecov
uses: space-code/oss-common-actions/.github/actions/upload_test_coverage_report@main
with:
scheme_name: Log
filename: ${{ matrix.name }}
token: ${{ secrets.CODECOV_TOKEN }}
xcode: true
xcode_archive_path: test_output/${{ matrix.name }}.xcresult
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
path: test_output

watchOS:
name: ${{ matrix.name }}
Expand All @@ -125,6 +149,18 @@ jobs:
fail-fast: false
matrix:
include:
- destination: "OS=11.1,name=Apple Watch Series 10 (46mm)"
name: "watchOS 11.1"
xcode: "Xcode_16.1"
runsOn: macOS-14
- destination: "OS=11.0,name=Apple Watch Series 10 (46mm)"
name: "watchOS 11.0"
xcode: "Xcode_16.0"
runsOn: macOS-14
- destination: "OS=10.5,name=Apple Watch Series 9 (45mm)"
name: "watchOS 10.5"
xcode: "Xcode_15.4"
runsOn: macOS-14
- destination: "OS=10.0,name=Apple Watch Series 9 (45mm)"
name: "watchOS 10.0"
xcode: "Xcode_15.0"
Expand All @@ -137,16 +173,12 @@ jobs:
- uses: actions/checkout@v3
- name: ${{ matrix.name }}
run: xcodebuild test -scheme "Log" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
- name: Upload test coverage reports to Codecov
uses: space-code/oss-common-actions/.github/actions/upload_test_coverage_report@main
with:
scheme_name: Log
filename: ${{ matrix.name }}
token: ${{ secrets.CODECOV_TOKEN }}
xcode: true
xcode_archive_path: test_output/${{ matrix.name }}.xcresult
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
path: test_output

spm:
name: ${{ matrix.name }}
Expand All @@ -158,10 +190,16 @@ jobs:
fail-fast: false
matrix:
include:
- name: "Xcode 15"
- name: "macOS 14, SPM 6.0.2 Test"
xcode: "Xcode_16.1"
runsOn: macOS-14
- name: "macOS 14, SPM 6.0.0 Test"
xcode: "Xcode_16.0"
runsOn: macOS-14
- name: "macOS 14, SPM 5.9.0 Test"
xcode: "Xcode_15.0"
runsOn: macos-13
- name: "Xcode 14"
runsOn: macos-14
- name: "macOS 13, SPM 5.8.1 Test"
xcode: "Xcode_14.3.1"
runsOn: macos-13
steps:
Expand All @@ -186,11 +224,11 @@ jobs:

discover-typos:
name: Discover Typos
runs-on: macOS-12
runs-on: macOS-13
env:
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Discover typos
run: |
export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin"
Expand Down
6 changes: 5 additions & 1 deletion .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
excluded:
- Tests
- Package.swift
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- .build

# Rules
Expand Down Expand Up @@ -130,4 +134,4 @@ nesting:
type_name:
max_length:
warning: 40
error: 50
error: 50
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,19 @@
All notable changes to this project will be documented in this file.

#### 1.x Releases
- `1.2.x` Releases - [1.2.0](#120)
- `1.1.x` Releases - [1.1.0](#110)
- `1.0.x` Releases - [1.0.0](#100)

## [1.2.0](https://github.com/space-code/log/releases/tag/1.2.0)
Released on 2024-12-25.

#### Added
- Bump the Swift version to 6.0.
- Added in Pull Request [#5](https://github.com/space-code/log/pull/6).

## [1.1.0](https://github.com/space-code/log/releases/tag/1.1.0)

#### Added
- Make the `logLevel` property changeable
- Added in Pull Request [#5](https://github.com/space-code/log/pull/5).
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version: 5.9
// swift-tools-version: 6.0
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription
Expand Down
23 changes: 23 additions & 0 deletions [email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// swift-tools-version: 5.10
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
name: "Log",
platforms: [
.macOS(.v10_15),
.iOS(.v13),
.watchOS(.v7),
.tvOS(.v13),
.visionOS(.v1),
],
products: [
.library(name: "Log", targets: ["Log"]),
],
dependencies: [],
targets: [
.target(name: "Log", dependencies: []),
.testTarget(name: "LogTests", dependencies: ["Log"]),
]
)
2 changes: 0 additions & 2 deletions [email protected]
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// swift-tools-version: 5.7
// The swift-tools-version declares the minimum version of Swift required to build this package.
// swiftlint:disable all

import PackageDescription

Expand All @@ -21,4 +20,3 @@ let package = Package(
.testTarget(name: "LogTests", dependencies: ["Log"]),
]
)
// swiftlint:enable all
2 changes: 0 additions & 2 deletions [email protected]
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// swift-tools-version: 5.8
// The swift-tools-version declares the minimum version of Swift required to build this package.
// swiftlint:disable all

import PackageDescription

Expand All @@ -21,4 +20,3 @@ let package = Package(
.testTarget(name: "LogTests", dependencies: ["Log"]),
]
)
// swiftlint:enable all
23 changes: 23 additions & 0 deletions [email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// swift-tools-version: 5.9
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
name: "Log",
platforms: [
.macOS(.v10_15),
.iOS(.v13),
.watchOS(.v7),
.tvOS(.v13),
.visionOS(.v1),
],
products: [
.library(name: "Log", targets: ["Log"]),
],
dependencies: [],
targets: [
.target(name: "Log", dependencies: []),
.testTarget(name: "LogTests", dependencies: ["Log"]),
]
)
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ Once you have your Swift package set up, adding `log` as a dependency is as easy

```swift
dependencies: [
.package(url: "https://github.com/space-code/log.git", .upToNextMajor(from: "1.0.0"))
.package(url: "https://github.com/space-code/log.git", .upToNextMajor(from: "1.2.0"))
]
```

Expand Down
40 changes: 27 additions & 13 deletions Sources/Log/Classes/Models/LogLevel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,33 @@ public struct LogLevel: OptionSet {

public typealias RawValue = UInt

/// Creates a new default `.off` instance with a bitmask of `1 << 0`.
public static let off = LogLevel(rawValue: offBitmask)
/// Creates a new default `.debug` instance with a bitmask of `1 << 1`.
public static let debug = LogLevel(rawValue: debugBitmask)
/// Creates a new default `.info` instance with a bitmask of `1 << 2`.
public static let info = LogLevel(rawValue: infoBitmask)
/// Creates a new default `.error` instance with a bitmask of `1 << 3`.
public static let error = LogLevel(rawValue: errorBitmask)
/// Creates a new default `.fault` instance with a bitmask of `1 << 4`.
public static let fault = LogLevel(rawValue: faultBitmask)
/// Creates a new default `.error` instance.
public static let all = LogLevel(rawValue: allBitmask)

#if swift(>=6.0)
/// Creates a new default `.off` instance with a bitmask of `1 << 0`.
public nonisolated(unsafe) static let off = LogLevel(rawValue: offBitmask)
/// Creates a new default `.debug` instance with a bitmask of `1 << 1`.
public nonisolated(unsafe) static let debug = LogLevel(rawValue: debugBitmask)
/// Creates a new default `.info` instance with a bitmask of `1 << 2`.
public nonisolated(unsafe) static let info = LogLevel(rawValue: infoBitmask)
/// Creates a new default `.error` instance with a bitmask of `1 << 3`.
public nonisolated(unsafe) static let error = LogLevel(rawValue: errorBitmask)
/// Creates a new default `.fault` instance with a bitmask of `1 << 4`.
public nonisolated(unsafe) static let fault = LogLevel(rawValue: faultBitmask)
/// Creates a new default `.error` instance.
public nonisolated(unsafe) static let all = LogLevel(rawValue: allBitmask)
#else
/// Creates a new default `.off` instance with a bitmask of `1 << 0`.
public static let off = LogLevel(rawValue: offBitmask)
/// Creates a new default `.debug` instance with a bitmask of `1 << 1`.
public static let debug = LogLevel(rawValue: debugBitmask)
/// Creates a new default `.info` instance with a bitmask of `1 << 2`.
public static let info = LogLevel(rawValue: infoBitmask)
/// Creates a new default `.error` instance with a bitmask of `1 << 3`.
public static let error = LogLevel(rawValue: errorBitmask)
/// Creates a new default `.fault` instance with a bitmask of `1 << 4`.
public static let fault = LogLevel(rawValue: faultBitmask)
/// Creates a new default `.error` instance.
public static let all = LogLevel(rawValue: allBitmask)
#endif
/// Returns the raw bitmask value of the LogLevel and satisfies the `RawRepresentable` protocol.
public let rawValue: RawValue

Expand Down

0 comments on commit 621f592

Please sign in to comment.