-
Notifications
You must be signed in to change notification settings - Fork 62
/
justfile
140 lines (113 loc) · 3.97 KB
/
justfile
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
_default:
just --list -u
alias f := format
alias t := test
# alias r := ready
# alias l := lint
# alias qt := test-quick
# Installs the tools needed to develop
install-tools:
cargo install cargo-binstall
cargo binstall cargo-insta taplo-cli
# Upgrades the tools needed to develop
upgrade-tools:
cargo install cargo-binstall --force
cargo binstall cargo-insta taplo-cli --force
# Generate all files across crates and tools. You rarely want to use it locally.
# gen-all:
# cargo run -p xtask_codegen -- all
# cargo codegen-configuration
# cargo codegen-migrate
# just gen-bindings
# just format
# Generates TypeScript types and JSON schema of the configuration
# gen-bindings:
# cargo codegen-schema
# cargo codegen-bindings
# Generates code generated files for the linter
# gen-lint:
# cargo run -p xtask_codegen -- analyzer
# cargo codegen-configuration
# cargo codegen-migrate
# just gen-bindings
# cargo run -p rules_check
# just format
# Generates the linter documentation and Rust documentation
# documentation:
# RUSTDOCFLAGS='-D warnings' cargo documentation
# Creates a new lint rule in the given path, with the given name. Name has to be camel case.
# new-lintrule rulename:
# cargo run -p xtask_codegen -- new-lintrule --kind=js --category=lint --name={{rulename}}
# just gen-lint
# just documentation
# Creates a new lint rule in the given path, with the given name. Name has to be camel case.
# new-assistrule rulename:
# cargo run -p xtask_codegen -- new-lintrule --kind=js --category=assist --name={{rulename}}
# just gen-lint
# just documentation
# Promotes a rule from the nursery group to a new group
# promote-rule rulename group:
# cargo run -p xtask_codegen -- promote-rule --name={{rulename}} --group={{group}}
# just gen-lint
# just documentation
# -cargo test -p pg_analyze -- {{snakecase(rulename)}}
# cargo insta accept
# Format Rust files and TOML files
format:
cargo fmt
taplo format
[unix]
_touch file:
touch {{file}}
[windows]
_touch file:
(gci {{file}}).LastWriteTime = Get-Date
# Run tests of all crates
test:
cargo test run --no-fail-fast
# Run tests for the crate passed as argument e.g. just test-create pg_cli
test-crate name:
cargo test run -p {{name}} --no-fail-fast
# Run doc tests
test-doc:
cargo test --doc
# Tests a lint rule. The name of the rule needs to be camel case
# test-lintrule name:
# just _touch crates/biome_js_analyze/tests/spec_tests.rs
# just _touch crates/biome_json_analyze/tests/spec_tests.rs
# just _touch crates/biome_css_analyze/tests/spec_tests.rs
# just _touch crates/biome_graphql_analyze/tests/spec_tests.rs
# cargo test -p biome_js_analyze -- {{snakecase(name)}} --show-output
# cargo test -p biome_json_analyze -- {{snakecase(name)}} --show-output
# cargo test -p biome_css_analyze -- {{snakecase(name)}} --show-output
# cargo test -p biome_graphql_analyze -- {{snakecase(name)}} --show-output
# Tests a lint rule. The name of the rule needs to be camel case
# test-transformation name:
# just _touch crates/biome_js_transform/tests/spec_tests.rs
# cargo test -p biome_js_transform -- {{snakecase(name)}} --show-output
# Run the quick_test for the given package.
# test-quick package:
# cargo test -p {{package}} --test quick_test -- quick_test --nocapture --ignored
# Alias for `cargo clippy`, it runs clippy on the whole codebase
lint:
cargo clippy
# When you finished coding, run this command to run the same commands in the CI.
# ready:
# git diff --exit-code --quiet
# just gen-all
# just documentation
# #just format # format is already run in `just gen-all`
# just lint
# just test
# just test-doc
# git diff --exit-code --quiet
# Creates a new crate
new-crate name:
cargo new --lib crates/{{snakecase(name)}}
cargo run -p xtask_codegen -- new-crate --name={{snakecase(name)}}
# Creates a new changeset for the final changelog
# new-changeset:
# knope document-change
# Dry-run of the release
# dry-run-release *args='':
# knope release --dry-run {{args}}