-
Install mise (manages linting tools):
curl https://mise.run | sh -
Activate mise in your shell:
# For bash - add to ~/.bashrc eval "$(mise activate bash)" # For zsh - add to ~/.zshrc eval "$(mise activate zsh)" # For fish - add to ~/.config/fish/config.fish mise activate fish | source
Then restart your terminal.
-
Install pipx (needed for reuse license linting):
# Debian/Ubuntu sudo apt install pipx -
Install project tools:
mise install
-
Install mise (manages linting tools):
brew install mise
-
Activate mise in your shell:
# For zsh - add to ~/.zshrc eval "$(mise activate zsh)" # For bash - add to ~/.bashrc eval "$(mise activate bash)" # For fish - add to ~/.config/fish/config.fish mise activate fish | source
Then restart your terminal.
-
Install newer bash than macOS default:
brew install bash
-
Install pipx (needed for reuse license linting):
brew install pipx
-
Install project tools:
mise install
# Install all development tools
mise install
# Show all just tasks
just
# Setup shared linting tools
just setup-devtools
# Run all quality checks
just verifyRun just to see all available commands. Key commands:
| Command | Description |
|---|---|
just verify |
Run all checks (lint + test) |
just lint-all |
Run all linters |
just lint-fix |
Auto-fix linting issues |
just test |
Run tests |
just build |
Build project |
just clean |
Clean build artifacts |
| Command | Tool | Description |
|---|---|---|
just lint-commits |
conform | Validate commit messages |
just lint-secrets |
gitleaks | Scan for secrets |
just lint-yaml |
yamlfmt | Lint YAML files |
just lint-markdown |
rumdl | Lint markdown files |
just lint-shell |
shellcheck | Lint shell scripts |
just lint-shell-fmt |
shfmt | Check shell formatting |
just lint-actions |
actionlint | Lint GitHub Actions |
just lint-license |
reuse | Check license compliance |
| Command | Description |
|---|---|
just lint-yaml-fix |
Fix YAML formatting |
just lint-markdown-fix |
Fix markdown formatting |
just lint-shell-fmt-fix |
Fix shell formatting |
Run all quality checks before submitting a PR:
# Run all checks
just verify
# Or run linting only
just lint-all
# Auto-fix where possible
just lint-fix- General Linting: Shell, YAML, Markdown, GitHub Actions
- Security: Secret scanning with gitleaks
- License Compliance: REUSE tool ensures proper copyright information
- Commit Structure: Conform checks commit messages for changelog generation
If any checks fail in the CI pipeline:
- Review the CI error logs
- Run
just verifylocally to reproduce the issues - Make necessary fixes in your local environment
- Update your Pull Request
- Verify all checks pass in the updated PR