-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathmise.toml
More file actions
119 lines (100 loc) · 4.3 KB
/
Copy pathmise.toml
File metadata and controls
119 lines (100 loc) · 4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Base mise configuration for all environments (including CI)
# For developer-specific tools (Claude, Firebase), use: MISE_ENV=dev mise install
#
# Task Configuration:
# - Each task can have a 'description' (short summary)
# - Tasks with arguments use 'usage' field with KDL syntax for arg/flag definitions
# - Arguments become available as $usage_<name> env vars (e.g., $usage_file)
# - Complex tasks live in mise-tasks/ as file-tasks (shellcheck + shfmt enforced)
# Docs: https://mise.jdx.dev/tasks/task-arguments.html
# https://mise.jdx.dev/tasks/file-tasks.html
[settings]
experimental = true
# Maintain the lockfiles on install. They record resolved versions, checksums
# and asset URLs, so a provisioned tool does not re-resolve against the
# upstream release API on every install — which is what keeps fresh clones and
# worktrees off the GitHub API and out of its rate limits.
#
# mise keeps one lockfile per config file: mise.toml -> mise.lock,
# mise.dev.toml -> mise.dev.lock. Both are committed.
#
# This setting was previously unset, so mise never updated them automatically
# and they only changed when regenerated by hand (#454). Refresh with:
# ./bin/mise lock # base tools
# MISE_ENV=dev ./bin/mise lock # dev tools too
lockfile = true
[env]
_.path = ["./bin"]
[tools]
flutter = "3.44.0"
node = "22" # For http_server and Playwright e2e tests
shellcheck = "0.9.0"
shfmt = "3.8.0"
[deps.flutter]
auto = true
[tasks.generate]
description = "Generate code (mocks, build_runner)"
run = 'dart run build_runner build --delete-conflicting-outputs'
# Sources: test files with @GenerateMocks annotations
sources = ['test/**/*_test.dart']
# Outputs: generated mock files
outputs = ['test/**/*.mocks.dart']
[tasks."dart:format"]
description = "Format all Dart code in place (depends on generate so mock files are formatted too)"
depends = ['generate']
sources = ['lib/**/*.dart', 'test/**/*_test.dart']
run = 'dart format .'
[tasks."dart:format:fast"]
description = "Format Dart code without running code generation — for editor hooks"
run = 'dart format .'
[tasks."dart:format:check"]
description = "Check Dart formatting without modifying files"
run = 'dart format --output=none --set-exit-if-changed .'
[tasks."prettier:format"]
description = "Format JS/TS/MJS files with Prettier"
run = 'npm ci && npx prettier --write "**/*.{js,ts,mjs}"'
[tasks."prettier:format:fast"]
description = "Format JS/TS/MJS files without running npm ci — for editor hooks"
run = 'npx prettier --write "**/*.{js,ts,mjs}"'
[tasks."prettier:check"]
description = "Check JS/TS/MJS formatting without modifying files"
run = 'npm ci && npx prettier --check "**/*.{js,ts,mjs}"'
[tasks."fmt:check"]
description = "Check all code formatting (Dart, JS/TS, shell) — fails if any file needs reformatting"
depends = ['dart:format:check', 'prettier:check', 'shell:format-check']
run = 'echo "Format check passed"'
[tasks."mise:format"]
description = "Format mise.toml"
run = 'mise fmt'
[tasks.format]
description = "Format all code (Dart, JS/TS, mise.toml, shell)"
depends = ['dart:format', 'prettier:format', 'mise:format', 'shell:format']
run = 'echo "All formatting complete"'
[tasks.check]
description = "Pre-commit gate: generate → format + analyze + test + shell:check (run before every commit)"
depends = ['format', 'analyze', 'test', 'shell:check']
run = 'echo "All checks passed"'
[tasks."goldens:update"]
description = "Regenerate golden screenshot files (omit file arg to update all)"
depends = ['generate']
usage = 'arg "[file]" help="Specific test file to update"'
run = 'flutter test --update-goldens ${usage_file:-}'
[tasks."validate:festivals"]
description = "Validate festivals.json against schema (mirrors CI)"
dir = "scripts"
sources = ['data/festivals.json', 'docs/code/api/festival-registry-schema.json']
run = 'npm ci && node ../scripts/validate-festivals.js'
[tasks."test:worker"]
description = "Run Cloudflare Worker type check and tests (tsc + Vitest + workerd)"
dir = "cloudflare-worker"
sources = [
'cloudflare-worker/package.json',
'cloudflare-worker/package-lock.json',
'cloudflare-worker/tsconfig.json',
'cloudflare-worker/worker.js',
'cloudflare-worker/**/*.ts',
'cloudflare-worker/test/**/*.js',
'cloudflare-worker/vitest.config.js',
'data/festivals.json',
]
run = 'npm ci && npm run typecheck && npm test'