Home Posts X GitHub

Husky 5

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