Changelog - April 2025
StringsLint plugin
April 30, 2025
We’ve added a plugin for StringsLint which is ensures that localized strings in a Swift project are complete and never unused.
StringsLint runs on macOS and targets files with the extensions *.strings
, *.stringsdict
, *.swift
, *.m
, *.xib
, and *.storyboard
. You can enable it using the Qlty CI:
StringsLint only runs on macOS and is not available on Qlty Cloud which runs on Linux.
SwiftFormat plugin
April 30, 2025
We’ve added a plugin for SwiftFormat, the official auto-formatter for Swift. This auto-formatter targets Swift files, runs on macOS, and can be enabled using the Qlty CI:
SwiftFormat only runs on macOS and is not available on Qlty Cloud which runs on Linux.
Cloud authentication improvements
April 28, 2025
We’ve significantly improved the latency of most web pages by using a short-lived caching strategy for our GitHub authorization checks. Navigating around the website should feel faster. (The exception is the Dashboard, which we will be optimizing soon.)
Also, for organizations that use SAML on GitHub, we now detect when GitHub requires SAML re-authorization and use that information to render better error messages. Users accessing a GitHub organization with SAML enabled need to re-authorize occasionaly, and we now show a message with instructions on how to do that.
Out-of-the-box linter configs
April 27, 2025
The Qlty CLI now provides out-of-the-box linter configurations for several popular linters. These linter configuration files are copied into your project when you run qlty init
or qlty plugins enable PLUGIN
.
This allows you to quickly set up your project with sensible defaults without needing to create a configuration file manually. Once the configuration files are in place, you can customize them to fit your project’s needs.
ast-grep plugin
April 26, 2025
We’ve added a plugin for ast-grep (sg), a fast polyglot structural search and linting tool supporting 20+ languages. ast-grep offers a pattern language to support writing your own custom checks or adopting checks provided by the ast-grep community.
Improved coverage uploader output
April 25, 2025
We’ve updated the output from qlty coverage publish
to include more information to improve the setup an debugging experience.
Package lockfiles
April 17, 2025
The Qlty CLI now uses package lockfiles (e.g. package-lock.json
, yarn.lock
, Gemfile.lock
) when they are available and the package_file
directive is specified in the qlty.toml
configuration file. This ensures the exact same linter versions are used across all machines, including Qlty Cloud.
V1 of Coverage GitHub Action
April 17, 2025
We’ve release v1.0.0 of our reusable GitHub Action for coverage uploading. We adhere to semantic versioning so going forward breaking changes will be represented with a bump in the major version.
To use the latest version on the v1 line, pin your CI workflows to @v1
like this:
BuildKite support
April 15, 2025
We now support automatic detection of build metadata from BuildKite. Therefore, uploading code coverage data from BuildKite only requires executing the Qlty CLI with the path to the coverage data file.
OpenID Connect (OIDC)
April 11, 2025
We now support OpenID Connect (OIDC) authentication for code coverage uploads from GitHub Actions.
OIDC allows us to authenticate the repository running a GitHub Actions workflow with a short-lived token. This enables coverage uploading without needing to manage a long-lived token, providing better security and easier coverage setup.
dockerfmt plugin
April 8, 2025
We’ve add a plugin for dockerfmt, a tool for automatically formatting Dockerfiles.
Support Linux Arm64 Musl
April 4, 2025
The Qlty CLI now supports Linux systems using Arm64 architecture with Musl. We’re now compiling binaries for these target systems with each release.
To install the Qlty CLI on an Arm64 Linux system using Musl, use our installer: