All notable changes to this project will be documented in this file.
0.3.2 - 2026-02-11
- Lean Implementation: Removed
.husky/_/husky.shin favor of direct skip logic in hook templates, keeping the.husky/directory clean. - Improved templates:
husky addnow generates hooks with[ "$HUSKY" = "0" ] && exit 0for explicit and transparent skip logic. - Robustness: Enhanced
build.rsandhusky initto gracefully handle environments without Git or outside a Git repository. - Incremental efficiency:
build.rsnow skips redundantgit configcalls ifcore.hooksPathis already correctly set.
0.3.1 - 2026-02-11
- Clippy Fixes: Resolved various
needless_borrows_for_generic_argswarnings in the CLI tool. - Code Quality: Cleaned up internal CLI logic and improved error feedback for manual configuration steps.
0.3.0 - 2026-02-11
This release marks a significant architectural shift to the Modern Husky approach, using Git's native
core.hooksPathconfiguration for better performance, flexibility, and support for auxiliary scripts.
- Hook Location: Hooks are now stored directly in
.husky/instead of.husky/hooks/. - Mechanism Shift: Switched from copying/wrapping hooks to using
git config core.hooksPath .husky. - Directory Structure: The
.husky/hooks/subdirectory is no longer used; move your hooks to.husky/. - CLI Feature: The
clifeature has been removed. Thehuskybinary is now included by default without extra configuration.
- Helper Script Support: Arbitrary files (like
_helpers.sh) can now be stored in.husky/and sourced from hooks. - Runtime Control: Support for
HUSKY=0environment variable to skip hooks at runtime (e.g.,HUSKY=0 git commit). - CLI Enhancements:
husky init: Now configurescore.hooksPathimmediately.husky uninstall: New command to unsetcore.hooksPath.
0.2.2 - 2026-01-09
- Test infrastructure refactoring: Consolidated test utilities into
tests/common/mod.rs - Test reorganization: Merged 4 test files into 2 clear files (
test_installation.rs,test_hooks.rs) - New test scenarios: Git worktrees, multiple hooks (10 types), error message validation
- Total: 41 tests covering submodules, workspaces, worktrees, and edge cases
- Code coverage: Added
coverage.ymlworkflow with tarpaulin and Codecov integration - Coverage badge: Added to README
- Makefile improvements:
- Added
make coveragetarget - Added
make doc-checktarget - Included
doc-checkinmake ci - Fixed CRLF line endings
- Added
- .gitignore: Added coverage report files
0.2.1 - 2026-01-09
- CI/Cross-platform: Fixed lint errors, MSRV compliance (Rust 1.70), and race conditions in tests.
- Windows Support: Improved test stability on Windows by skipping shell syntax validation where
shis unavailable. - Makefile: Added
make ciand updated test commands to consistent with CI configuration.
0.2.0 - 2026-01-09
This release transforms husky-rs into a production-ready Git hooks manager with optional advanced features while maintaining the zero-config philosophy.
Key additions:
- 🔄 Smart hook change detection (no more
cargo clean) - 🛠️ Optional CLI tool (
husky init/add/list) - 📚 Optional library API for advanced use cases
- 📖 Comprehensive documentation suite
- Granular rerun triggers — Individual hook file monitoring
- Hooks automatically reinstall when modified
- No more
cargo cleanrequired
- Validation & warnings — Helpful feedback during build
- Empty hook detection with clear warnings
- Missing shebang detection with suggested defaults
- Improved logging — Clear, informative output
- Per-hook status:
✓ pre-commit,✓ pre-push - Summary:
Installed 3 Git hook(s)
- Per-hook status:
Install with:
cargo install husky-rs --features=cli
| Command | Description |
|---|---|
husky init |
Create .husky/hooks directory |
husky add <hook> |
Create hook from smart template |
husky list |
List installed hooks with status |
husky help |
Show help message |
husky version |
Display version |
use husky_rs::{hooks_dir, should_skip_installation, is_valid_hook_name};hooks_dir(path)— Get hooks directory pathshould_skip_installation()— CheckNO_HUSKY_HOOKSenv varis_valid_hook_name(name)— Validate Git hook namesSUPPORTED_HOOKS— All 27 supported hook names
| Document | Description |
|---|---|
| Usage Guide | Installation, configuration, advanced usage |
| Examples | 13 ready-to-use hook examples |
| Troubleshooting | Common issues and solutions |
| Contributing | Development guide |
Example collection includes:
- Running tests before commit
- Code formatting check
- Clippy linting
- Conventional commits validation
- Branch protection
- Comprehensive pre-push checks
- CI environment detection
- Multi-language project support
- And more...
| Metric | Before | After | Change |
|---|---|---|---|
| Total tests | 13 | 48 | +269% |
| CLI coverage | 0% | 90% | — |
| Lib coverage | 40% | 100% | — |
| Example validation | 0% | 54% | — |
Build script auto-detection: Hooks now automatically reinstall when source files change.
- Impact: Workflows relying on manual hook reinstallation may behave differently
- Migration: Use
NO_HUSKY_HOOKS=1if you need manual control - Benefit: Significantly improved developer experience
- Version:
0.1.5→0.2.0 - MSRV: Rust 1.70+
- Keywords:
git,hooks,husky,development-tools,pre-commit - Categories:
development-tools,command-line-utilities
0.1.5 - 2025-06-03
- Resolve cross-drive temp dir issue on Windows runners
- Simplify build script testing
- Improve test coverage for dependency types
0.1.4 - 2025-05-30
- Refactor build script with better symlink handling
- Enhance test coverage
0.1.3 - 2025-05-25
- Simplify installation process
- Improve hook installation logging
- Fix hook installation on Windows
0.1.2 - 2025-05-20
- Add comprehensive error handling
- Support for Git submodules
0.1.1 - 2025-05-15
- Fix permission issues on Unix systems
- Improve error messages
0.1.0 - 2025-05-10
- Basic Git hooks installation via
build.rs - Support for all standard Git hooks
- Cross-platform compatibility
- Zero-configuration setup