Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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/codecov-action@v3.1.0
- 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/codecov-action@v3.1.0
- 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/codecov-action@v3.1.0
- 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
- Package@swift-5.7.swift
- Package@swift-5.8.swift
- Package@swift-5.9.swift
- Package@swift-5.10.swift
- .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 Package@swift-5.10.swift
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 Package@swift-5.7.swift
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 Package@swift-5.8.swift
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 Package@swift-5.9.swift
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
Loading