Skip to content
This repository was archived by the owner on Aug 22, 2024. It is now read-only.

Update husky 5.2.0 → 9.0.6 (major) #466

Closed
wants to merge 1 commit into from

Conversation

depfu[bot]
Copy link
Contributor

@depfu depfu bot commented Jan 27, 2024

Here is everything you need to know about this upgrade. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ husky (5.2.0 → 9.0.6) · Repo · Changelog

Release Notes

9.0.6

9.0.5

9.0.1

Kicking off the year with an exciting update!

TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

👋 By the Way

I'm available for remote work (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

Introducing husky init

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

v8

npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"

v9

npx husky init

Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic echo command.

v8

npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows

v9

echo "npm test" > .husky/pre-commit

Further Size Reduction

v8 was already the most compact Git hooks manager at approximately 6kB.

v9 takes this a step further, reducing the size to just 3kB, likely making it the smallest devDependency in your toolkit.

To give you an idea of how small it is, the biggest file in the project is the MIT license 😄

More to Come

Additional features are in the pipeline for v9. Stay tuned 🙌

Other Changes

  • Enhanced security with CI and npm --provenance for safer publishing.
  • Added $XDG_CONFIG_HOME support. Move ~/.huskyrc to ~/.config/husky/init.sh for centralized configuration.
  • Fixed permission issue for Windows-created hooks; they no longer need to be executable.
  • Removed husky install. Use husky or husky some/dir for the same functionality (deprecation notice to be added).
  • Modified behavior when .git is missing; it now triggers a warning instead of failure.
  • Replaced HUSKY_DEBUG=1 with HUSKY=2 for debugging.
  • Updated the Husky API for module usage.
  • Transitioned to ESM for module usage.
  • Dropped support for Node 14 and 16.
  • Revamped docs.

How to Migrate

v9 is backward compatible with v8, allowing you to freely upgrade and migrate your hooks later.

package.json

{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}

.husky/pre-commit

- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test

8.0.3

  • fix: add git not installed message #1208

8.0.2

  • docs: remove deprecated npm set-script

8.0.1

  • fix: use POSIX equality operator

8.0.0

What's Changed

Feats

  • feat: add husky - prefix to logged global error messages by @joshbalfour in #1092
  • feat: show PATH when command not found to improve debuggability
  • feat: drop Node 12 support
  • feat: skip install if $HUSKY=0

Fixes

  • fix: hook script use /usr/bin/env sh instead of direct path of sh by @skhaz in #1051
  • fix: actually set 'husky_skip_init' as readonly in ./husky.sh by @hyperupcall in #1104
  • fix: force basename/dirname to treat $0 as an argument by @mataha in #1132
  • fix: remove git.io links by @renbaoshuo in #1136

Docs

Chore

7.0.4

No changes. Husky v7.0.3 was reverted, this version is the same as v7.0.2.

7.0.2

Fix pre-commit hook in WebStorm (#1023)

7.0.1

  • Fix gracefully fail if Git command is not found #1003 (same as in v6)

7.0.0

  • Improve .husky/ directory structure. .husky/.gitignore is now unnecessary and can be removed.
  • Improve error output (shorter)
  • Update husky-init CLI
  • Update husky-4-to-7 CLI
  • Drop Node 10 support

Please help me develop and release OSS projects ❤️ on GitHub Sponsors or Open Collective. Thank you for your support!

6.0.0

After being in early access for Open Source projects and Sponsors for a limited time, I'm happy to announce that husky 6 is MIT again and can be freely used in commercial projects! 🎉

Many thanks to the Open Source projects and Companies which have switched to/sponsored the new husky during this period!

OSS is my full-time job, please consider sponsoring the development of husky on GitHub sponsors or Open Collective. Thank you!

Breaking change

  • husky init has been moved to its own package (npx husky-init)

Added

  • Programmatically use husky: require('husky')
  • TypeScript definitions

Migrating from husky 4

Husky 6 contains breaking changes. If you're coming from v4, npm install husky@6 won't be enough.

Recommended: see husky-4-to-6 CLI to automatically migrate your config. There's also a dedicated section in the docs.

If you're curious why config has changed, you may be interested in reading:
https://blog.typicode.com/husky-git-hooks-javascript-config/

Also Husky 6 follows official npm and Yarn best practices regarding autoinstall. It's recommended to use prepare script instead (see usage in docs).

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by more commits than we can show here.


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

Copy link

vercel bot commented Jan 27, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
next-typescript-tailwind-mdx-starter ❌ Failed (Inspect) Jan 27, 2024 5:40am

Copy link
Contributor Author

depfu bot commented Jan 30, 2024

Closed in favor of #469.

@depfu depfu bot closed this Jan 30, 2024
Copy link
Contributor Author

depfu bot commented Jan 30, 2024

Closed in favor of #469.

@depfu depfu bot deleted the depfu/update/yarn/husky-9.0.6 branch January 30, 2024 17:40
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant