Releases: grafana/flint
Releases · grafana/flint
Release list
v0.22.6
Immutable
release. Only release title and notes can be modified.
Added
- check all links in CI (#365)
Fixed
- (renovate-deps) normalize tracked snapshot ordering (#364)
Other
- (deps) update node.js to v24.17.0 (#356)
- link to Flint blog post (#368)
- (deps) update taiki-e/install-action action to v2.82.2 (#367)
- (deps) update taiki-e/install-action action to v2.82.1 (#366)
- (deps) pin dependencies (#363)
- (deps) lock file maintenance (#362)
- (deps) update mise to v2026.6.11 (#361)
- (deps) update taiki-e/install-action action to v2.82.0 (#358)
- (deps) update dependency actions/checkout to v7 (#359)
- (deps) update dependency jdx/mise-action to v4.2.0 (#357)
- (deps) update taiki-e/install-action action to v2.81.11 (#355)
- update permissions (#354)
- (deps) lock file maintenance (#353)
- (deps) update mise to v2026.6.3 (#352)
- (deps) update taiki-e/install-action action to v2.81.10 (#351)
- (deps) update grafana/shared-workflows/lint-pr-title action to v1.2.3 (#350)
- (deps) update taiki-e/install-action action to v2.81.9 (#349)
- (deps) update taiki-e/install-action action to v2.81.8 (#347)
- (deps) update taiki-e/install-action action to v2.81.7 (#346)
- (deps) update taiki-e/install-action action to v2.81.6 (#345)
- (deps) lock file maintenance (#342)
- (deps) update dependency mise to v2026.6.0 (#341)
- (deps) update taiki-e/install-action action to v2.81.5 (#343)
- (deps) update dependency jdx/mise-action to v4.1.0 (#340)
- (deps) update taiki-e/install-action action to v2.81.4 (#339)
- (deps) update taiki-e/install-action action to v2.81.3 (#338)
- (deps) update dependency go to v1.26.4 (#337)
- (deps) update dependency actions/checkout to v6.0.3 (#336)
- (deps) update taiki-e/install-action action to v2.81.2 (#335)
- use shared workflow for PR title lint (#318)
- note zizmor drift from upstream tag movement (#334)
- (deps) update taiki-e/install-action action to v2.81.1 (#333)
- (deps) update taiki-e/install-action action to v2.81.0 (#332)
- (deps) update taiki-e/install-action action to v2.80.0 (#331)
v0.22.5
Immutable
release. Only release title and notes can be modified.
Fixed
- trigger full lint when node runtime updates (#328)
- normalize renovate-deps version and manager shapes (#326)
Other
- clarify Flint check model (#317)
- (deps) update taiki-e/install-action action to v2.79.15 (#329)
- (deps) update taiki-e/install-action action to v2.79.14 (#327)
- (deps) update dependency mise to v2026.5.16 (#324)
- (deps) lock file maintenance (#325)
- (deps) update taiki-e/install-action action to v2.79.11 (#322)
- (deps) update dependency rust to v1.96.0 (#323)
- (deps) update taiki-e/install-action action to v2.79.10 (#321)
- (deps) update taiki-e/install-action action to v2.79.9 (#319)
- (deps) update taiki-e/install-action action to v2.79.8 (#316)
v0.22.4
Immutable
release. Only release title and notes can be modified.
Fixed
Other
v0.22.3
v0.22.2
Immutable
release. Only release title and notes can be modified.
Fixed
- (release) dispatch renamed release workflow (#291)
v0.22.0
Immutable
release. Only release title and notes can be modified.
Added
Fixed
- (renovate-deps) surface real renovate failure in error output (#278)
- (ci) drop double release-plz update from release:pr (#276)
- (init) normalize node runtime before linters (#267)
- (renovate) support block-scalar mise sha256 values (#266)
- (mise) migrate flint-managed tools to supported backends (#258)
- validate renovate dependency rule coverage (#263)
- make flint-setup state-based (#252)
- (init) let rustfmt own Rust line length (#250)
- run renovate-deps for deleted tracked files (#247)
- validate CI env and isolate check types (#253)
- (init) remove stale head sha from CI snippets (#248)
- (init) enable yamllint indentation rule (#251)
Other
- streamline README getting started (#280)
- (deps) update taiki-e/install-action digest to fa0dd4c (#282)
- (deps) lock file maintenance (#285)
- (deps) update dependency mise to v2026.5.2 (#284)
- (deps) update dependency go to v1.26.3 (#283)
- (deps) update taiki-e/install-action digest to e3134ec (#281)
- pass git-token and forge to release-plz (#274)
- (deps) update taiki-e/install-action digest to 3fa6878 (#275)
- (deps) bump renovate to 43.150.0 (#273)
- [breaking] drop --fast-only flag and tighten renovate-deps timing (#270)
- (deps) update rust crate tokio to v1.52.2 (#272)
- upgrade lychee to v0.24.2 (#265)
- (deps) update taiki-e/install-action digest to cca35ed (#254)
- (deps) update dependency aqua:owenlamont/ryl to v0.8.0 (#261)
- (deps) update dependency mise to v2026.4.28 (#262)
- (deps) update dependency golangci-lint to v2.12.1 (#264)
- (deps) update dependency aqua:owenlamont/ryl to v0.7.0 (#259)
- (renovate) simplify quickstart and batch weekly linter updates (#257)
- (deps) update dependency npm:renovate to v43.141.6 (#255)
- expand positioning and comparisons (#239)
- (deps) update taiki-e/install-action digest to 1f2425c (#246)
- move release-plz flow into mise tasks (#234)
- (deps) update taiki-e/install-action digest to 481c34c (#231)
- (deps) update dependency ruff to v0.15.12 (#245)
- (deps) update dependency npm:renovate to v43.141.5 (#244)
v0.21.0
Immutable
release. Only release title and notes can be modified.
Added
- add flint setup preflight migrations (#233)
- support managed linter configs and aqua-backed tool keys (#228)
- switch xmloxide to github backend (#229)
- add taplo formatter check (#224)
- (init) configure line length during init (#218)
Fixed
- support renovate v43.136.3 (#223)
- switch yaml-lint to ryl (#226)
- (ruff) install via github releases (#227)
- resolve init rollout regressions (#220)
Other
- reduce fake-bin fixture coverage (#240)
- (deps) update dependency npm:renovate to v43.141.1 (#221)
- guard fixture case groups (#238)
- (deps) update dependency grafana/flint to v0.20.4 (#235)
- (deps) lock file maintenance (#237)
- (deps) update dependency mise to v2026.4.19 (#236)
- (deps) update rust crate json5 to v1 (#232)
- (deps) update taiki-e/install-action digest to 787505c (#219)
- (deps) update dependency grafana/flint to v0.20.3 (#225)
v0.20.4
Immutable
release. Only release title and notes can be modified.
v0.20.3
Immutable
release. Only release title and notes can be modified.
Added
- (registry) switch shfmt to aqua backend (#175)
Fixed
- treat cargo-clippy as a partial fixer (#197)
- (registry) add --tests to cargo-clippy, add test coverage (#176)
Other
- (deps) update taiki-e/install-action digest to 055f5df (#180)
- (deps) update dependency npm:@biomejs/biome to v2.4.12 (#191)
- (deps) update rust crate clap to v4.6.1 (#196)
- (deps) update rust crate tokio to v1.52.1 (#192)
- (deps) update dependency pipx:ruff to v0.15.11 (#198)
- (deps) update node.js to v24.15.0 (#194)
- (deps) update dependency npm:prettier to v3.8.3 (#193)
- exclude mise install dir from Windows Defender (#188)
- (deps) update dependency npm:renovate to v43.129.0 (#200)
- restructure README/docs and split registry module (#187)
- (deps) update dependency mise to v2026.4.15 (#199)
v0.20.2
flint v2 — first binary release
Full rewrite from bash scripts wrapping super-linter to a native Rust binary orchestrating mise-installed tools directly. Last v1 release was v0.9.2; this is the first working v2 binary release.
Why
- Speed: no container pull, no full-repo scan — diff-aware by default (
--from-ref/--to-ref), parallel check execution across files. - Native tools: each linter installed via mise from its upstream source (
github:,ubi:,npm:,cargo:) — no bundled versions, transparent to Renovate. - One entry point:
flint run/flint run --fixreplaceslint:super-linter,lint:links,lint:renovate-deps,setup:native-lint-tools. - Cross-platform: Linux x86_64/arm64, macOS x86_64/arm64, Windows x86_64 binaries.
Install
# mise.toml
[tools]
"github:grafana/flint" = "0.20.2"
[env]
FLINT_CONFIG_DIR = ".github/config"
[tasks.lint]
run = "flint run"
[tasks."lint:fix"]
run = "flint run --fix"Bootstrap a repo with flint init (interactive config scaffold).
Install a pre-commit hook with flint hook install.
Linters supported
| Category | Linters |
|---|---|
| Shell | shellcheck, shfmt |
| Config / docs | editorconfig-checker, actionlint, prettier, markdownlint-cli2, codespell |
| Links | lychee (GitHub anchor remap, fragment support, rate-limit resilience) |
| Renovate | renovate-deps (tracks indirect deps pinned in .github/ workflows) |
| Rust | cargo-fmt, cargo-clippy |
| Go | gofmt |
| Java / Kotlin | google-java-format, ktlint, license-header |
| JS / TS | biome, prettier |
| Python | ruff, ruff-format |
| .NET | dotnet-format |
| Docker | hadolint |
| XML | xmllint (via xmloxide, pure-Rust) |
Highlights
- Formatter category — formatters marked with
.formatter()are automatically excluded from editorconfig-checker, preventing double-reporting. - Special checks — link checking and renovate-deps are first-class, not shell-outs.
license-headeris a pure-Rust check (reads first N lines, substring-matches configured text). - Fix mode —
flint run --fixruns per-linter fix commands in-place. - Diff mode — without flags, runs only on files changed since merge base with
origin/main.--fullfor full-repo,--from-ref/--to-reffor arbitrary ranges. - Obsolete key detection —
flint updatenon-interactively migratesmise.tomlentries when a linter's upstream key changes (e.g.npm:markdownlint-cli→npm:markdownlint-cli2). - Windows —
.windows_java_jar()registry flag for JAR-backed tools (ktlint);quote_path+shell_wordsfor double-quote path handling.
Documentation
- README.md — getting started, configuration reference
- AGENTS-V2.md — architecture and contribution guide
Consumer rollout
Open migration PRs replacing super-linter: grafana/mox, grafana/oats, grafana/otel-checker, grafana/grafana-opentelemetry-java, grafana/docker-otel-lgtm, prometheus/client_java, open-telemetry/opentelemetry-java-instrumentation.
Changelog (aggregated v0.9.2..v0.20.2)
Added
- flint v2 Rust binary (#139)
flint updatecommand, explicit JAR flag (#146)- native linting mode and version mapping infrastructure (#93)
NATIVEenv var for container-free linting (#107)- Renovate shareable preset for consuming repos (#17)
- consolidated link checking and autofix flags (#7)
- line-number anchors and issue-comment handling in link checks (#56)
- GitHub URL remaps for line-number and fragment anchors (#28)
- auto-remap base-branch GitHub URLs to PR branch (#18)
- SHA-pinned URL support in Renovate preset (#21)
- slim super-linter image default (#24)
- migrate from release-please to release-plz (#171)
Fixed
- release-pr runs after release to avoid changelog race (#184)
workflow_dispatchretrigger for existing tags (#167)- suppress component prefix in release tags (#166)
- correct template variable in pr_body (#178)
- activate mise environment in native lint mode (#123)
- include staged files in native lint file list (#135)
- native lint in worktrees, trust toml, use ec binary, drop isort (#134)
- fail native lint when enabled tools are missing (#111)
- decouple version mapping generation from pinned super-linter version (#112)
renovate-depsforwardsGITHUB_TOKENasGITHUB_COM_TOKEN(#132)- improve link checker reliability against GitHub rate limiting (#95)
- strip Scroll-to-Text-Fragment anchors (#86)
- remap same-repo GitHub URLs to local file paths (#100)
- exclude GitHub compare links from lychee (#10)
- use remap instead of exclude for issue-comment anchors (#58)
'mise run fix'hint on lint failure (#90)- regex anchors in remap patterns (#19)
- run shellcheck on
.batsfiles in native mode (#137) - tighten markdownlint config for native mode (#106)
- replace broken release-please PR comment with docs (#12)
- release-please footer on release PRs (#40)