You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+36-25Lines changed: 36 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -155,12 +155,12 @@ mise run release # Cut a new release (maintainers only)
155
155
156
156
```bash
157
157
# Hook commands
158
-
hk pre-commit # Run pre-commit checks
159
-
hk pre-push # Run pre-push checks
160
-
hk check # Run all linters
161
-
hk fix # Auto-fix issues where possible
162
-
hk test# Run tests only
163
-
hk ci # Run CI checks
158
+
hk run pre-commit # Run pre-commit checks
159
+
hk run pre-push # Run pre-push checks
160
+
hk check # Run all linters
161
+
hk fix # Auto-fix issues where possible
162
+
hk run test# Run tests only
163
+
hk run ci # Run CI checks
164
164
```
165
165
166
166
### Automated Quality Checks
@@ -178,9 +178,10 @@ The pre-commit hooks automatically run these tools on every commit:
178
178
### Tool Integration
179
179
180
180
Both tools work together seamlessly:
181
+
181
182
-**mise** handles tool installation and version management
182
183
-**hk** uses the tools installed by mise for git hooks
183
-
- Both can run the same underlying commands (e.g., `mise run test` and `hk test`)
184
+
- Both can run the same underlying commands (e.g., `mise run test` and `hk run test`)
184
185
- CI uses the same tools for consistency between local and remote environments
185
186
186
187
## 🔄 Making Changes
@@ -219,15 +220,15 @@ feat: Add support for super-unicorn submodules :unicorn:
219
220
220
221
## 🧪 Testing
221
222
222
-
My philosophy on testing is to "test what matters." Tests focus on integration and output -- if the tool performs as expected in realistic tests, then it's good. I'm not a fan of a flurry of unit tests that test implementation details and create a maintenance burden.
223
+
My philosophy on testing is "test what matters." Tests focus on integration and output -- if the tool performs as expected in realistic tests, then it's good. I'm not a fan of a flurry of unit tests that test implementation details and create a maintenance burden.
223
224
224
225
### Test Categories
225
226
226
227
1. **Unit Tests** - We currently don't have unit tests, but they can be added in the future for critical functionality.
227
228
228
229
```bash
229
230
cargo test --test unit_tests
230
-
````
231
+
```
231
232
232
233
2. **Integration Tests** - Test complete workflows
233
234
@@ -261,14 +262,14 @@ mise run test # Quick test run
261
262
mise run ci # Full CI suite (build + lint + test)
262
263
263
264
# Using hk
264
-
hk test # Run tests only
265
-
hk ci # Run CI checks
266
-
hk check # Run all linters and checks
265
+
hk run test # Run tests only
266
+
hk run ci # Run CI checks
267
+
hk check # Run all linters and checks
267
268
268
269
# Using cargo directly
269
270
cargo test # Quick test run
270
271
271
-
# Using the test script
272
+
# Using the test script -- more granular control
272
273
./scripts/run-tests.sh --verbose # Comprehensive test suite with reporting
273
274
./scripts/run-tests.sh --performance # Include performance tests
274
275
./scripts/run-tests.sh --filter sparse_checkout # Filter specific tests
Common sense documentation style applies. If a function's purpose is obvious and it's well-typed, a sentence is probably enough. If it has complex logic or side effects, provide a detailed explanation.
512
524
513
-
````rust
514
-
/// Short one-line description.
525
+
````rust,ignore
526
+
/// Short one-line description. // <-- stop here for obvious functions
515
527
///
516
528
/// Longer description explaining the purpose, behavior, and any important
517
529
/// details about the function or type.
@@ -591,7 +603,6 @@ A clear description of what you expected to happen.
0 commit comments