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
86 changes: 86 additions & 0 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Pull Request

on:
pull_request:
branches: [ main ]
workflow_dispatch:

env:
SCHEME: "Occurrence"

jobs:
Lint:
runs-on: macos-26
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Lint
run: swiftformat --lint . --reporter github-actions-log

Swift:
strategy:
fail-fast: false
matrix:
os: [
macos-26,
ubuntu-latest,
]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Cache
uses: actions/cache@v5
with:
path: |
.build
~/Library/Developer/Xcode/DerivedData/ModuleCache.noindex
~/Library/Caches/org.swift.swiftpm
~/Library/org.swift.swiftpm
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-

- name: Package Resolution
run: swift package resolve

- name: Build
run: swift build

- name: Test
run: swift test

Xcode:
strategy:
fail-fast: false
matrix:
platform: [
"macOS",
"iOS",
"tvOS",
"watchOS",
"visionOS",
"macOS,variant=Mac Catalyst",
]
runs-on: macos-26
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Cache
uses: actions/cache@v5
with:
path: |
.build
~/Library/Developer/Xcode/DerivedData/ModuleCache.noindex
~/Library/Caches/org.swift.swiftpm
~/Library/org.swift.swiftpm
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.swift', '**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-
- name: Package Resolution
run: set -o pipefail && xcodebuild -resolvePackageDependencies | xcbeautify
- name: Build
env:
DESTINATION: "generic/platform=${{ matrix.platform }}"
run: set -o pipefail && xcodebuild build -scheme "$SCHEME" -destination "$DESTINATION" | xcbeautify
43 changes: 0 additions & 43 deletions .github/workflows/swift.yml

This file was deleted.

1 change: 1 addition & 0 deletions .swiftformat
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@
--disable redundantType
--disable unusedArguments
--disable wrapArguments
--disable wrapPropertyBodies
42 changes: 12 additions & 30 deletions Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 1 addition & 4 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,9 @@ let package = Package(
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(url: "https://github.com/swiftlang/swift-testing.git", from: "6.2.0"),
.package(url: "https://github.com/swiftlang/swift-toolchain-sqlite.git", from: "1.0.7"),
.package(url: "https://github.com/apple/swift-log.git", from: "1.9.1"),
.package(url: "https://github.com/richardpiazza/Statement.git", from: "0.8.1"),
.package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.15.5", traits: ["SwiftToolchainCSQLite"]),
.package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.16.0", traits: ["SQLiteSwiftCSQLite"]),
.package(url: "https://github.com/swhitty/swift-mutex.git", from: "0.0.6"),
],
targets: [
Expand All @@ -45,7 +43,6 @@ let package = Package(
.testTarget(
name: "OccurrenceTests",
dependencies: [
.product(name: "Testing", package: "swift-testing"),
.product(name: "Logging", package: "swift-log"),
"Occurrence",
],
Expand Down
4 changes: 1 addition & 3 deletions Sources/Occurrence/CoreData/CoreDataLogProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
final class CoreDataLogProvider: LogProvider {

let storeUrl: URL
private let persistentContainer: Mutex<NSPersistentContainer>

Check warning on line 10 in Sources/Occurrence/CoreData/CoreDataLogProvider.swift

View workflow job for this annotation

GitHub Actions / Xcode (tvOS)

'Mutex' was deprecated in tvOS 15.0: use Mutex from Synchronization module

Check warning on line 10 in Sources/Occurrence/CoreData/CoreDataLogProvider.swift

View workflow job for this annotation

GitHub Actions / Xcode (tvOS)

'Mutex' was deprecated in tvOS 15.0: use Mutex from Synchronization module
private let context: Mutex<NSManagedObjectContext>

Check warning on line 11 in Sources/Occurrence/CoreData/CoreDataLogProvider.swift

View workflow job for this annotation

GitHub Actions / Xcode (tvOS)

'Mutex' was deprecated in tvOS 15.0: use Mutex from Synchronization module

init(url: URL? = nil) throws {
storeUrl = try url ?? FileManager.default.defaultDatabaseUrl()
Expand Down Expand Up @@ -126,7 +126,7 @@

let backgroundContext = context.withLock { $0 }

let results = backgroundContext.performAndWait {
return backgroundContext.performAndWait {
var results: [Logger.Entry] = []
do {
let entries = try backgroundContext.fetch(request)
Expand All @@ -136,8 +136,6 @@
}
return results
}

return results
}

func purge(matching filter: Logger.Filter?) {
Expand Down
3 changes: 1 addition & 2 deletions Sources/Occurrence/SQLite/SQLiteLogProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ final class SQLiteLogProvider: LogProvider {

static func defaultURL() throws -> URL {
let directory = try FileManager.default.occurrenceDirectory()
let url = directory.appendingPathComponent("LogProvider.sqlite")
return url
return directory.appendingPathComponent("LogProvider.sqlite")
}

private let db: Connection
Expand Down
26 changes: 13 additions & 13 deletions Tests/OccurrenceTests/LogProviderTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func subsystems(logProvider: any LogProvider) throws {
func subsystems(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(date: january1st_1530, subsystem: subsystem1, level: .debug, message: "one", metadata: nil, source: ""))
logProvider.log(Logger.Entry(date: january1st_1630, subsystem: subsystem2, level: .debug, message: "two", metadata: nil, source: ""))

Expand All @@ -105,7 +105,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func subsystemFilter(logProvider: any LogProvider) throws {
func subsystemFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(date: january1st_1530, subsystem: subsystem1, level: .debug, message: "one", metadata: nil, source: ""))
logProvider.log(Logger.Entry(date: january1st_1630, subsystem: subsystem2, level: .debug, message: "two", metadata: nil, source: ""))
logProvider.log(Logger.Entry(date: january2nd_0808, subsystem: subsystem1, level: .debug, message: "three", metadata: nil, source: ""))
Expand All @@ -120,7 +120,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func levelFilter(logProvider: any LogProvider) throws {
func levelFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .trace, message: "one", metadata: nil, source: ""))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .debug, message: "two", metadata: nil, source: ""))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .info, message: "three", metadata: nil, source: ""))
Expand Down Expand Up @@ -175,7 +175,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func messageFilter(logProvider: any LogProvider) throws {
func messageFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .debug, message: "for", metadata: nil, source: ""))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .debug, message: "forward", metadata: nil, source: ""))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .debug, message: "warden", metadata: nil, source: ""))
Expand All @@ -194,7 +194,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func sourceFilter(logProvider: any LogProvider) throws {
func sourceFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .trace, message: "one", source: "Class1"))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .trace, message: "two", source: "Class2"))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .trace, message: "three", source: "Class3"))
Expand All @@ -216,7 +216,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func fileFilter(logProvider: any LogProvider) throws {
func fileFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(subsystem: subsystem2, level: .warning, message: "one", source: "", file: "File1.swift"))
logProvider.log(Logger.Entry(subsystem: subsystem2, level: .warning, message: "two", source: "", file: "File2.swift"))
logProvider.log(Logger.Entry(subsystem: subsystem2, level: .warning, message: "three", source: "", file: "File3.swift"))
Expand All @@ -238,7 +238,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func functionFilter(logProvider: any LogProvider) throws {
func functionFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(subsystem: subsystem2, level: .debug, message: "one", source: "", function: "doWork()"))
logProvider.log(Logger.Entry(subsystem: subsystem2, level: .debug, message: "two", source: "", function: "presentData()"))
logProvider.log(Logger.Entry(subsystem: subsystem2, level: .debug, message: "three", source: "", function: "asyncTask(_:)"))
Expand All @@ -260,7 +260,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func periodFilter(logProvider: any LogProvider) throws {
func periodFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(date: january1st_1530, subsystem: subsystem1, level: .debug, message: "one", source: ""))
logProvider.log(Logger.Entry(date: january1st_1630, subsystem: subsystem2, level: .debug, message: "two", source: ""))
logProvider.log(Logger.Entry(date: january2nd_0808, subsystem: subsystem1, level: .debug, message: "three", source: ""))
Expand All @@ -280,7 +280,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func andFilter(logProvider: any LogProvider) throws {
func andFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(date: january1st_1530, subsystem: subsystem1, level: .debug, message: "one", source: ""))
logProvider.log(Logger.Entry(date: january1st_1630, subsystem: subsystem2, level: .info, message: "two", source: ""))
logProvider.log(Logger.Entry(date: january2nd_0808, subsystem: subsystem1, level: .debug, message: "three", source: ""))
Expand Down Expand Up @@ -310,7 +310,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func orFilter(logProvider: any LogProvider) throws {
func orFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(date: january1st_1530, subsystem: subsystem1, level: .debug, message: "one", source: ""))
logProvider.log(Logger.Entry(date: january1st_1630, subsystem: subsystem2, level: .info, message: "two", source: ""))
logProvider.log(Logger.Entry(date: january2nd_0808, subsystem: subsystem1, level: .debug, message: "three", source: ""))
Expand All @@ -330,7 +330,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func notFilter(logProvider: any LogProvider) throws {
func notFilter(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(date: january1st_1530, subsystem: subsystem1, level: .debug, message: "one", source: ""))
logProvider.log(Logger.Entry(date: january1st_1630, subsystem: subsystem2, level: .info, message: "two", source: ""))
logProvider.log(Logger.Entry(date: january2nd_0808, subsystem: subsystem1, level: .debug, message: "three", source: ""))
Expand All @@ -349,7 +349,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func ascendingLimit(logProvider: any LogProvider) throws {
func ascendingLimit(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .trace, message: "one", source: ""))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .debug, message: "two", source: ""))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .info, message: "three", source: ""))
Expand All @@ -374,7 +374,7 @@ final class LogProviderTests {
}

@Test(arguments: try Self.logProviders)
func descendingLimit(logProvider: any LogProvider) throws {
func descendingLimit(logProvider: any LogProvider) {
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .trace, message: "one", source: ""))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .debug, message: "two", source: ""))
logProvider.log(Logger.Entry(subsystem: subsystem1, level: .info, message: "three", source: ""))
Expand Down
2 changes: 1 addition & 1 deletion Tests/OccurrenceTests/RedactionTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ struct RedactionTests {
"c": ["d": "three"],
]

@Test func redactingKeyPaths() throws {
@Test func redactingKeyPaths() {
let redactedDictionary = dictionary.redacting(keyPaths: ["a", "c.d"])
#expect(redactedDictionary.keys.sorted() == ["a", "b", "c"])
#expect(redactedDictionary["a"] as? String == "<REDACTED>")
Expand Down
Loading