Skip to content

build: lint TOML with Tombi - #129

Draft
iloveitaly wants to merge 2 commits into
masterfrom
cursor/add-tombi-lint-7590
Draft

iloveitaly wants to merge 2 commits into
masterfrom
cursor/add-tombi-lint-7590

Conversation

@iloveitaly

@iloveitaly iloveitaly commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Motivation

TOML in this repo had no formatter or linter. Taplo is not maintained, so the check uses Tombi, which is actively released and covers format, lint, and schema checks.

Description

  • Install Tombi through mise (tombi = "latest", locked to 1.5.5 by the 14-day release-age setting) in .config/mise.dev.toml.
  • Add just toml_lint and just toml_lint_fix, and include them in just lint and just fix.
  • Run the check on pre-push and in the backend CI job.
  • Recommend the Tombi VS Code extension and use it as the TOML formatter.
  • Skip every **/*.lock file, plus vendored metadata under .config/mise/locks/. Leave pyproject.toml in its existing key order so uv add is not rewritten.

Screenshots / Test

just toml_lint on the repo:

12 files did not need formatting
12 files linted successfully

tombi format --check exits 1 on an unformatted file ("pytest.toml" is not formatted) and exits 0 after the file is restored.

A deliberately unformatted web/mise.lock is ignored by tombi format --check because of the **/*.lock exclude.

Links

Open in Web Open in Cursor 

cursoragent and others added 2 commits October 5, 2026 14:27
Taplo is unmaintained, so format and lint TOML with Tombi in just, lefthook, and CI.

Co-authored-by: Michael Bianco <mike@mikebian.co>
Use a **/*.lock glob so new lockfiles are skipped without listing each path.

Co-authored-by: Michael Bianco <mike@mikebian.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants