Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .config/mise.dev.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .config/mise.dev.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ min_version = "2026.10.0"
# only for local development/CI.

[tools]

########
# Core #
########
Expand All @@ -28,3 +27,5 @@ direnv = "latest"
"github:chmln/sd" = "latest"
"ast-grep" = "latest"
"github:dmtrKovalenko/odiff" = "latest"
# TOML formatter and linter. Taplo is unmaintained; Tombi is the maintained replacement.
tombi = "latest"
1 change: 1 addition & 0 deletions .github/workflows/build_and_publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ jobs:
${{ runner.os }}-playwright-
- run: just py_setup
- run: just py_lint
- run: just toml_lint
- run: just db_migrate
- run: just db_lint
- run: just py_test
Expand Down
4 changes: 3 additions & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"GitHub.vscode-pull-request-github",
"Gruntfuggly.todo-tree",
"ms-azuretools.vscode-docker",
"tamasfe.even-better-toml",
"tombi-toml.tombi",
"nefrob.vscode-just-syntax",
"streetsidesoftware.code-spell-checker",
"davidanson.vscode-markdownlint",
Expand All @@ -36,6 +36,8 @@
// this occurs even if you disable the extension.
"hverlin.mise-vscode",
"firsttris.vscode-jest-runner",
// Tombi replaces Even Better TOML
"tamasfe.even-better-toml",
// ruff replaces all of these py linting tools
"ms-python.isort",
"ms-python.flake8",
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@

"[toml]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "tombi-toml.tombi",
"editor.tabSize": 4
},
"python.analysis.autoFormatStrings": true,
Expand Down
4 changes: 2 additions & 2 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ generate: dev_generate py_generate js_generate

# run automatic fix operations for all linters
[parallel]
fix: js_lint-fix py_lint_fix
fix: js_lint-fix py_lint_fix toml_lint_fix

# run all linters
[parallel]
lint: js_lint py_lint db_lint dev_lint
lint: js_lint py_lint db_lint dev_lint toml_lint

# nicely clean all build artifacts and caches
clean: js_clean py_clean build_clean
Expand Down
18 changes: 18 additions & 0 deletions just/dev.just
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,24 @@ dev_lint:
# TODO link justfiles too
# GIT_CONFIG_GLOBAL=/dev/null gitleaks git --report-format json --report-path - | jq -r '.[].Fingerprint' | sort -t ':' -k2 > .gitleaksignore

# format and lint TOML. Both run so a format failure does not hide a lint failure.
[script]
toml_lint:
set +e
exit_code=0

tombi format --check . || exit_code=$?
tombi lint . || exit_code=$?

if [[ -n "${exit_code:-}" && "${exit_code}" != 0 ]]; then
echo "One or more commands failed"
exit 1
fi

# format TOML. Lint findings are reported by `toml_lint`; Tombi has no lint autofix.
toml_lint_fix:
tombi format .

# start all of the services you need for development in a single terminal
[script]
[arg("open", long, help="open the development site in the browser", flag)]
Expand Down
2 changes: 2 additions & 0 deletions lefthook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ pre-push:
run: just py_lint
js_lint:
run: just js_lint
toml_lint:
run: just toml_lint

# post-merge: fires after git merge / git pull
# post-rewrite: fires after git rebase / git commit --amend
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ exclude = [
]
# https://github.com/microsoft/pylance-release/blob/71dcf9409c5ba65f1138069ac80ae9e2122d7867/USING_WITH_PYRIGHT.md
# the above documentation seems out of date: autoSearchPaths and extraPaths is deprecated
extraPaths = [] # Include paths from PYTHONPATH env var and .env definition
extraPaths = [] # Include paths from PYTHONPATH env var and .env definition
typeCheckingMode = "standard"

[tool.djlint]
Expand Down
25 changes: 25 additions & 0 deletions tombi.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Tombi config: https://tombi-toml.github.io/tombi/docs/configuration/
# Generated lockfiles are rewritten by their own tools, so they stay out of format and lint.

[files]
exclude = [
"**/*.lock",
# vendored tool metadata under mise's lock cache, not project config
".config/mise/locks/**",
]

[format.rules]
# Match the existing TOML style and the editor tab size.
indent-width = 4

[lint.rules]
# pyproject.toml is kept in hand-written order, so schema table order is noise.
tables-out-of-order = "off"

# Schema Store marks pyproject.toml for key sorting. Keep the file's existing
# order so `uv add` and hand-edited groups are not rewritten on format.
[[schemas]]
path = "tombi://www.schemastore.org/pyproject.json"
include = ["pyproject.toml"]
format.rules.array-values-order.enabled = false
format.rules.table-keys-order.enabled = false
Loading