Skip to content
CAI
Software that uses CAICheck a score

SlatherOrg/slather

64.3

Adequate · 19 September 2026

2.3k

lines of production code

Ruby

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Slather is a command-line tool that generates code coverage reports for Xcode projects by parsing gcov and LLVM profdata outputs. It supports multiple output formats, including HTML, JSON, Cobertura XML, and SonarQube XML, and integrates with various CI/CD platforms. The tool also provides a CocoaPods plugin to automate project setup for coverage generation.

How it got here

2014 — Initial project scaffolding and coverage engine development

15 changes.

This period established the foundational structure of the Slather project, including repository initialization, CI configuration, and the core CLI interface. It focused on implementing the primary code coverage parsing engine, specifically adding support for modern Xcode profdata formats alongside existing gcov support. The work also expanded reporting capabilities to include multiple output formats and integrated with various CI/CD platforms.

2015–2021 — CLI modularization and HTML report enhancements

5 changes.

The project refactored its command-line interface into modular subcommands, expanding support for multiple CI/CD platforms and diverse output formats like SonarQube and LLVM-cov. Concurrently, HTML coverage reports were significantly enhanced with syntax highlighting, client-side list management, and improved styling. The test suite was also expanded to validate these new features, including specific fixtures for Xcode workspace scheme handling and Unicode character support.

Features

Added syntax highlighting and list management assets for HTML reports

The HTML output now includes syntax highlighting for source code and enhanced list management for file listings. This is achieved by adding \highlight.pack.js\ (highlight.js) to colorize code blocks, \list.min.js\ (List.js) to handle client-side sorting, filtering, and pagination of the file index, and \slather.css\ to style the coverage reports and integrate the highlight.js theme.

assets · high confidence

Initial project scaffolding and CI configuration

The repository is initialized with core project files including a MIT license, a comprehensive changelog, and detailed usage documentation. Continuous integration is configured for Travis CI using Xcode 12.2 and Bundler 2.0, with a \.coveralls.yml\ file set up to report coverage to Travis CI. A \.gitignore\ file is added to exclude build artifacts, IDE settings, and coverage reports, while a Rakefile provides tasks for running specs.

(repo-wide) · high confidence

Introduce slather CLI entry point with setup, coverage, and version commands

The bin/slather executable is added as the primary command-line interface for the tool. It uses the Clamp library to define three subcommands: 'setup' for configuring an Xcode project for test coverage generation, 'coverage' for computing coverage reports, and 'version' for printing the current slather version. The 'coverage' subcommand is set as the default when no subcommand is specified.

bin · high confidence

Introduction of CocoaPods plugin and coverage output services

Slather now includes a CocoaPods plugin that automatically configures projects for coverage during the post-install phase, replacing the deprecated \prepare\_pods\ method. The library also expands its reporting capabilities by introducing new coverage services for Cobertura XML, Hardcover, Gutter JSON, Simple JSON, HTML, JSON, LLVM-cov, and SonarQube XML outputs.

lib · high confidence

New coverage output formats and CI integrations

Slather now supports generating coverage reports in Cobertura XML, SonarQube XML, Gutter JSON, and simple JSON formats, alongside an LLVM-cov compatible output. The HTML report has been enhanced to display branch coverage statistics and line counts. Additionally, the tool now integrates with multiple CI/CD platforms including GitHub Actions, CircleCI, Buildkite, Bitrise, and Jenkins, automatically detecting build metadata and job IDs for these services.

_lib/slather/coverage\service · high confidence

Slather v2.8.5: New profdata coverage engine and project setup automation

Slather has been updated to version 2.8.5, introducing a new \ProfdataCoverageFile\ class that parses \llvm-cov\ profdata output to support modern Xcode code coverage formats alongside the existing gcov support. The \Project\ class now includes a \slather\_setup\_for\_coverage\ method (aliased as \setup\_for\_coverage\) that automatically configures Xcode schemes and build settings for either gcov or clang coverage. Additionally, the \CoverageInfo\ module provides standardized metrics for line and branch coverage, while \CoverallsCoverage\ adds JSON serialization for Coveralls integration.

lib/slather · high confidence

Behavioural changes

Refactored CLI into modular subcommands with expanded configuration and output options

The command-line interface has been restructured into distinct subcommands (coverage, setup, and version) to improve organization and maintainability. This change introduces several new capabilities for users: support for multiple CI/CD platforms including GitHub Actions, TeamCity, and Buildkite; new output formats such as SonarQube XML, LLVM-cov, and simple JSON; and enhanced configuration flexibility via the \--ymlfile\ option to specify custom configuration files, \--workspace\ for Xcode workspaces, \--arch\ for universal binaries, and \--source-files\ for filtering source code. Additionally, HTML output now supports CDN-hosted assets and configurable decimal precision.

lib/slather/command · high confidence

Test coverage

Added HTML coverage fixtures for test validation; Added Xcode fixture files for branch coverage and empty source testing; Added Xcode project fixture schemes for multi-target and dynamic library testing; Added test coverage for CocoaPods plugin integration and coverage file parsing; Added test coverage for new and existing coverage service outputs; Added test fixture for Xcode workspace scheme handling; Added test fixtures for Objective-C, C++, and Swift source files; Added test fixtures for branch coverage, multi-target schemes, and Unicode filenames; Added test fixtures for new coverage output formats and multi-binary scenarios; Added tests for the FixtureFramework; Expanded test fixture project with multi-language and multi-target support; Test infrastructure setup for Xcode workspace and coverage fixtures.

Dependencies

Initial gemspec and Gemfile setup for Slather

The project introduces its primary dependency manifest files: a \Gemfile\ that delegates to the gemspec, and a \slather.gemspec\ defining the library's runtime and development dependencies. Runtime dependencies include \clamp\ (\~\> 1.3), \xcodeproj\ (\~\> 1.27), \nokogiri\ (\>= 1.14.3), \CFPropertyList\ (\>= 2.2, \< 4), and \activesupport\. Development dependencies are pinned to specific versions for \bundler\ (\~\> 2.0), \coveralls\ (\~\> 0.8), \simplecov\ (\~\> 0), \rake\ (\~\> 12.3), \rspec\ (\~\> 3.8), \pry\ (\~\> 0.12), \cocoapods\ (\~\> 1.10.beta.1), \json\_spec\ (\~\> 1.1), and \equivalent-xml\ (\~\> 0.6).

(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

Baseline

  • First survey — no prior run to compare against. CAI 64.

Lenses

  • Code Health 93
  • Architecture 100
  • Maturity 54
  • Readiness 54
  • Security 93

Changes since last survey

  • 300 commits — 246 feature/other, 54 fixes

By area

  • lib/slather — 104 commits
  • (root) — 99 commits
  • (repo) — 74 commits
  • spec/slather — 15 commits
  • spec/fixtures — 5 commits
  • assets/list.min.js — 2 commits
  • README_Images/test_scheme.png — 1 commit

Notable commits

  • fix: # FIX: Vulnerabilities on Nokogiri
  • fix: 1) Fixed crash at find_buildable_names; 2) Added new “fixturesTestsSecond” and “aggregateFixturesTests” schemes - to test multitarget schemes; 3) Added new test “it should find multiple unique paths for a scheme with serveral buildable/testable products”.
  • fix: Bump nokogiri version Fixes #508
  • fix: Bump nokogiri version Fixes #538
  • fix: Fix .dSYM and .swiftmodule files filtering in find_binary_files()
  • fix: Fix binary_basename configuration key
  • fix: Fix bad UTF-8 encoding issues
  • fix: Fix cocoapods plugin tests
  • fix: Fix existing tests
  • fix: Fix for multiple region data
  • fix: Fix for xcode scheme containing multiple testable targets.
  • fix: Fix nil pathname
  • fix: Fix single source file in binary predicate
  • fix: Fix spec.files
  • fix: Fix unit test
  • fix: Fixed 'Argument list too long' when running 'xcrun llvm-cov' with a large list of source files
  • fix: Fixed CFPropertyList to be less restrictive. Slather doesn't have an absolute dependency on 3.0, so making it >= 2.2.
  • fix: Fixed failing test The order of the source files flipped when running on the xcode12.2 image
  • fix: Fixed incorrect contributor in changelog. Fixes #359.
  • fix: Fixed incorrect fallback value for input_format
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

SlatherOrg/slather 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 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 4dba0321f81f545856b979f0ec39f3d995cb0023 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.