cpisciotta/xcbeautify
56.6
Adequate · 1 October 2026
4.5k
lines of production code
Swift
primary language
2
measurements over time
What this system is
This system is a command-line tool designed to beautify and format Xcode build logs for improved readability. It parses raw xcodebuild output and renders it into structured formats suitable for terminal consoles or specific CI/CD platforms like GitHub Actions, Azure DevOps, and TeamCity. Additionally, it supports generating JUnit reports for test results and operates on macOS and Linux.
Features
Add Azure DevOps and GitHub Actions CI renderers
Users can now format build and test output for Azure DevOps Pipelines and GitHub Actions. This change introduces new renderer implementations that translate compilation errors, warnings, and test results into the specific annotation formats required by these CI platforms (e.g., \\#\#vso\[task.logissue...\]\ for Azure DevOps and \::warning::\ for GitHub Actions), enabling better integration and visibility of build issues within these environments.
Sources/XcbeautifyLib/Renderers/Microsoft · high confidence
Add development and CI tooling scripts
New shell scripts have been added to the tools directory to support development workflows and CI integration. These include check-sorted to verify that CaptureGroups and Parser registrations are sorted, cli-tests to run CLI integration tests against expected outputs, export\_coverage to generate LCOV coverage reports, format and lint to apply and check SwiftFormat (with GitHub Actions support in lint), measure to benchmark performance on large logs, and install-swift-linux-arm64 to set up the Swift toolchain on Linux ARM64 systems.
tools · high confidence
Major release overhaul: Swift 6.1 support, new CI renderers, and Linux builds
This release updates the minimum Swift version to 6.1 and introduces dedicated renderers for GitHub Actions, TeamCity, and Azure DevOps Pipelines, allowing users to integrate formatted output directly into their CI interfaces. The tool now supports formatting Swift Package Manager output and generating JUnit reports, while adding official support for Linux (x86\_64 and arm64) alongside macOS. The Makefile has been restructured to support building universal binaries for macOS and static binaries for Linux, and the repository has migrated its default branch from master to main.
(repo-wide) · high confidence
Removals
Removed Homebrew formula for xcbeautify
The Homebrew formula file for the xcbeautify tool has been deleted from the repository, removing the package definition that previously allowed users to install the tool via Homebrew.
Formula · high confidence
Behavioural changes
Introduce OutputRendering protocol and new renderer implementations
The library now uses a new \OutputRendering\ protocol to define how build output is formatted, replacing the previous ad-hoc formatting approach. This change introduces specific renderer implementations, including \TerminalRenderer\ for standard console output and \TeamCityRenderer\ for TeamCity CI integration, ensuring consistent and structured formatting across different output destinations.
Sources/XcbeautifyLib/Renderers · high confidence
Library refactored into a modular architecture with new parsing and rendering engines
The Xcbeautify library has been restructured into a modular design, separating the core parsing logic, formatting, and output rendering into distinct components. A new \Parser\ class now maps raw \xcodebuild\ output to specific \CaptureGroup\ types using optimized regex matching, while a \Formatter\ delegates the actual text styling to context-aware \Renderer\ implementations (Terminal, GitHub Actions, TeamCity, and Azure DevOps). This change introduces a new \XCBeautifier\ entry point, a \JUnitReporter\ for test result export, and an \OutputHandler\ to manage quiet/CI filtering, providing a more maintainable and extensible foundation for beautifying build logs.
Sources/XcbeautifyLib · high confidence
xcbeautify CLI rewritten with Swift ArgumentParser and renderer architecture
The xcbeautify command-line tool has been completely rewritten to use Swift ArgumentParser instead of the previous Guaka framework, introducing a new \--renderer\ option that allows users to select output formats (such as JUnit, Azure DevOps, or TeamCity) via auto-detection or explicit selection. The CLI now supports flags like \--quiet\, \--quieter\, \--preserve-unbeautified\, \--disable-colored-output\, and \--disable-logging\ to control verbosity and output styling, and it generates JUnit reports to a configurable path. The internal parsing logic has shifted from a monolithic \Parser\ class with hardcoded regex matchers to a modular \Renderer\-based system, and the version has been bumped to 3.2.1.
Sources/xcbeautify · high confidence
Test coverage
Added comprehensive test coverage for XcbeautifyLib parsing and output handling; Added tests for Azure DevOps Pipelines renderer and renderer auto-detection.
Dependencies
Migrate to Swift 6.1 and replace dependencies with swift-argument-parser
The project has upgraded its Swift toolchain to version 6.1 and updated the minimum supported platform to macOS 14. As part of this modernization, the legacy command-line parsing libraries (Guaka and Swiftline) have been removed and replaced with Apple's official swift-argument-parser (v1.5.0+). The package structure has also been refined to explicitly separate the executable target from the library target (XcbeautifyLib), and strict concurrency checks along with internal imports by default have been enabled across all targets.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 63 → 57 (-6.1)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 92 → 92 (+0.0)
- Architecture 85 → 94 (+8.6)
- Maturity 64 → 64 (+0.0)
- Readiness 57 → 45 (-12.6)
- Security 57 → 57 (+0.0)
Resolved (3)
- Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
- Documentation: no installation or build instructions (README.md)
- Off-boarding risk: anonymized user #1
New (2)
- Off the main sequence: XcbeautifyLib
- Off-boarding risk: anonymized user #1
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
cpisciotta/xcbeautify was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 513e4b12c3f6c965d1d3b66bd5cd9d635f03112d — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.