I'm happy to announce the release of husky 5 π πΊ woof!
During the past years, husky has grown in complexity. With this version, I wanted to go back to something simpler, more flexible and closer to the metal.
You can use husky 5 in your Open Source projects today.
Thanks for your support and feedback. I hope you'll enjoy this release <3
https://github.com/typicode/husky
Faster and smaller
Husky 5 is closer to Git and has a lot less abstractions. It makes it not only simpler to understand but also very fast and small with zero dependencies.
Time spent to run a simple echo "hello world"
pre-commit hook:
husky 4: ~0.50s
husky 5: ~0.01s
Installation size with dependencies:
husky 4: ~1.00MB with 47 packages
husky 5: ~0.02MB with 0 packages
Optional install
With husky 4, hooks were automatically installed. With husky 5, you have the choice and it's explicit.
You can keep the previous behaviour (recommended) by adding a postinstall
script:
// package.json
{
"private": true,
"scripts": {
"postinstall": "husky install"
}
}
If you prefer to manually install husky, omit the above postinstall
script and just run in your terminal:
# Manual install
$ npx husky install
$ yarn husky install
Config
Previously, hooks were defined in package.json
or .huskyrc
. Now they're defined directly in their corresponding hook file. Overhead is reduced and scripting is easier.
# .husky/pre-commit
# ...
yarn lint-staged
They can also be put in any subdirectory. For example in .config
:
# .config/husky/pre-commit
$ husky install .config/husky
$ husky add .config/husky/pre-commit "npm test"
How to migrate
A new doc site has been created with a dedicated section to migrating hooks from husky 4 to 5:
https://typicode.github.io/husky
If you have many projects using husky 4, you can use husky-4-to-5
CLI to do it automatically:
https://github.com/typicode/husky-4-to-5
There are some caveats so just copying your previous config may not work.
License
For a limited time, husky 5 will be released under License Zero's Parity License. It will be MIT again later.
Free for Open Source β€οΈ
The Parity License is an Open Source friendly license.
So if you're using husky in an Open Source project, this new license doesn't affect you.
You're free to use husky 5 today and I'm glad if it can help you in your day to day work.
Early access for Sponsors π
If you're using husky in a commercial project, your support would be extremely helpful (husky 5 is free to try for 30 days).
That said, if your company can't or don't want to sponsor, that's perfectly fine too. Husky 4 remains free to use in any project and will continue to receive maintainance updates.
You can become a sponsor on GitHub Sponsors or Open Collective.
Thanks
Thanks to everyone who has sponsored me, I'm sincerely grateful!
I also have other ideas for husky and projects. If you're a sponsor, you'll be the first to know about them :)
https://github.com/typicode/husky
Photo by Andriyko Podilnyk on unsplash
Top comments (12)
Like others, I have to say
husky@4
works very nice and easy to use, but v5 is much more difficult to understand and config.I think you should balance between performance and easy-to-use.
I can't wait to use v6 now. π€ͺ
I want to be clear that I 100% support the move to the new license and the financial support that hopefully brings to you.
husky
is a wonderful tool and has saved my bacon many times.That said, did you consider not releasing it with the
latest
tag on NPM and having something likeoss
and/orsponsored
tags instead for v5 and keepinglatest
pointing at v4? I wonder how many folks have runnpm i -D husky
or had dependabot come through and bumped their version and not realised they are up for sponsorship now.Exactly. Broke plenty of projects. Plenty of open source projects have a commit of just rolling/reverting back husky to v4.
I totally agree. Having hooks configured in package.json was very straightforward.
Technically it was zero extra files config (as package.json stays in project anyway).
Now it's totally not clear to me where config should live, and polluting repo with extra config files doesn't feel good.
Yeah, the ease of setting up hooks with husky+lint staged is a nightmare now when they used to be a breeze to set up.
I'm in the same boat, looking for an alternative for the time being. Actually, I've never had any problems about husky so far, their configuration interface was superb but now it tries to solve a problem that doesn't exist.
I went back to v4 once I have discover that
postinstall
=>prepare
v5.1.2Roll back to v4
thanks sharing your work with the world!
Withhout writing precommit file to .git/hooks, how new husky now works?
Some comments may only be visible to logged-in visitors. Sign in to view all comments.