Skip to content

Releases: diogot/swift-xcresult-parser

v1.0.5: Merge pull request #7 from diogot/fix/process-termination-race-condition

25 Jan 23:04
Immutable release. Only release title and notes can be modified.
206e42f

Choose a tag to compare

What's Changed

  • Merge pull request #7 from diogot/fix/process-termination-race-condition
  • Restore CI cache and fix test assertion
  • Use shell redirection to temp files instead of pipes
  • Remove SPM cache to fix flaky CI
  • Serialize IntegrationTests to prevent xcresulttool contention
  • Add CI diagnostics: timeout, verbose output, xcresulttool check
  • Fix race condition in process termination handling

Installation

Swift Package Manager

Add to your Package.swift:

dependencies: [
    .package(url: "https://github.com/diogot/swift-xcresult-parser.git", from: "1.0.5")
]

Then add XCResultParser to your target dependencies:

.target(name: "YourTarget", dependencies: ["XCResultParser"])

Requirements

  • Swift 6.2+
  • macOS 15+
  • Xcode 16+

For more information, see the README.

v1.0.4

22 Jan 22:36
Immutable release. Only release title and notes can be modified.
v1.0.4
6133516

Choose a tag to compare

What's Changed

  • Merge pull request #6 from diogot/ci-improvements
  • Add CI caching and concurrency improvements

Installation

Swift Package Manager

Add to your Package.swift:

dependencies: [
    .package(url: "https://github.com/diogot/swift-xcresult-parser.git", from: "1.0.4")
]

Then add XCResultParser to your target dependencies:

.target(name: "YourTarget", dependencies: ["XCResultParser"])

Requirements

  • Swift 6.2+
  • macOS 15+
  • Xcode 16+

For more information, see the README.

v1.0.3

03 Dec 15:05
Immutable release. Only release title and notes can be modified.
v1.0.3
9008f38

Choose a tag to compare

Installation

Swift Package Manager

Add to your Package.swift:

dependencies: [
    .package(url: "https://github.com/diogot/swift-xcresult-parser.git", from: "1.0.3")
]

Then add XCResultParser to your target dependencies:

.target(name: "YourTarget", dependencies: ["XCResultParser"])

Features

  • 📦 Parse Xcode .xcresult bundles
  • ⚠️ Extract build warnings, errors, and analyzer warnings
  • 🧪 Extract test failures with source locations
  • 🔄 Type-safe Swift models with resilient decoding
  • ⚡ Async/await support with Swift concurrency
  • 🛡️ Zero external dependencies

Requirements

  • Swift 6.2+
  • macOS 15+
  • Xcode 16+

Usage

import XCResultParser

let parser = XCResultParser(path: "path/to/test.xcresult")
let result = try await parser.parse()

// Access build issues
for issue in result.buildResults?.allIssues ?? [] {
    print("\(issue.severity): \(issue.message)")
}

// Access test failures
for failure in result.testResults?.failures ?? [] {
    print("FAIL: \(failure.testClass).\(failure.testName)")
}

For more information, see the README.

v1.0.2

01 Dec 15:12
Immutable release. Only release title and notes can be modified.
v1.0.2
9d05ff8

Choose a tag to compare

Installation

Swift Package Manager

Add to your Package.swift:

dependencies: [
    .package(url: "https://github.com/diogot/swift-xcresult-parser.git", from: "1.0.2")
]

Then add XCResultParser to your target dependencies:

.target(name: "YourTarget", dependencies: ["XCResultParser"])

Features

  • 📦 Parse Xcode .xcresult bundles
  • ⚠️ Extract build warnings, errors, and analyzer warnings
  • 🧪 Extract test failures with source locations
  • 🔄 Type-safe Swift models with resilient decoding
  • ⚡ Async/await support with Swift concurrency
  • 🛡️ Zero external dependencies

Requirements

  • Swift 6.2+
  • macOS 15+
  • Xcode 16+

Usage

import XCResultParser

let parser = XCResultParser(path: "path/to/test.xcresult")
let result = try await parser.parse()

// Access build issues
for issue in result.buildResults?.allIssues ?? [] {
    print("\(issue.severity): \(issue.message)")
}

// Access test failures
for failure in result.testResults?.failures ?? [] {
    print("FAIL: \(failure.testClass).\(failure.testName)")
}

For more information, see the README.

v1.0.0

27 Nov 14:01
Immutable release. Only release title and notes can be modified.
v1.0.0
32ba42e

Choose a tag to compare

Installation

Swift Package Manager

Add to your Package.swift:

dependencies: [
    .package(url: "https://github.com/diogot/swift-xcresult-parser.git", from: "1.0.0")
]

Then add XCResultParser to your target dependencies:

.target(name: "YourTarget", dependencies: ["XCResultParser"])

Features

  • 📦 Parse Xcode .xcresult bundles
  • ⚠️ Extract build warnings, errors, and analyzer warnings
  • 🧪 Extract test failures with source locations
  • 🔄 Type-safe Swift models with resilient decoding
  • ⚡ Async/await support with Swift concurrency
  • 🛡️ Zero external dependencies

Requirements

  • Swift 6.2+
  • macOS 15+
  • Xcode 16+

Usage

import XCResultParser

let parser = XCResultParser(path: "path/to/test.xcresult")
let result = try await parser.parse()

// Access build issues
for issue in result.buildResults?.allIssues ?? [] {
    print("\(issue.severity): \(issue.message)")
}

// Access test failures
for failure in result.testResults?.failures ?? [] {
    print("FAIL: \(failure.testClass).\(failure.testName)")
}

For more information, see the README.

v.1.0.1

27 Nov 14:33
Immutable release. Only release title and notes can be modified.
v.1.0.1
1843851

Choose a tag to compare

Installation

Swift Package Manager

Add to your Package.swift:

dependencies: [
    .package(url: "https://github.com/diogot/swift-xcresult-parser.git", from: ".1.0.1")
]

Then add XCResultParser to your target dependencies:

.target(name: "YourTarget", dependencies: ["XCResultParser"])

Features

  • 📦 Parse Xcode .xcresult bundles
  • ⚠️ Extract build warnings, errors, and analyzer warnings
  • 🧪 Extract test failures with source locations
  • 🔄 Type-safe Swift models with resilient decoding
  • ⚡ Async/await support with Swift concurrency
  • 🛡️ Zero external dependencies

Requirements

  • Swift 6.2+
  • macOS 15+
  • Xcode 16+

Usage

import XCResultParser

let parser = XCResultParser(path: "path/to/test.xcresult")
let result = try await parser.parse()

// Access build issues
for issue in result.buildResults?.allIssues ?? [] {
    print("\(issue.severity): \(issue.message)")
}

// Access test failures
for failure in result.testResults?.failures ?? [] {
    print("FAIL: \(failure.testClass).\(failure.testName)")
}

For more information, see the README.