Skip to content

Commit

Permalink
chore(deps): update dependency husky to v9 (#1346)
Browse files Browse the repository at this point in the history
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://redirect.github.com/typicode/husky) | [`^5.2.0` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/5.2.0/9.1.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/5.2.0/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/5.2.0/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.1.6`](https://redirect.github.com/typicode/husky/compare/v9.1.5...a2d942a670b3d6a04578005a0fd2dc310e511849)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.5...v9.1.6)

###
[`v9.1.5`](https://redirect.github.com/typicode/husky/compare/v9.1.4...2fee8d212c601942ad146ea9209f15c20a07fb6d)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.4...v9.1.5)

###
[`v9.1.4`](https://redirect.github.com/typicode/husky/compare/v9.1.3...fc549e0e5c8723a6d796f6ad26ef6590769f5d82)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.3...v9.1.4)

###
[`v9.1.3`](https://redirect.github.com/typicode/husky/releases/tag/v9.1.3)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.2...v9.1.3)

-   fix: better handle space in `PATH`

###
[`v9.1.2`](https://redirect.github.com/typicode/husky/compare/v9.1.1...v9.1.2)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.1...v9.1.2)

###
[`v9.1.1`](https://redirect.github.com/typicode/husky/compare/v9.1.0...2968998755465f69069f297b5bb603e26d6b1772)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.0...v9.1.1)

###
[`v9.1.0`](https://redirect.github.com/typicode/husky/releases/tag/v9.1.0)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.11...v9.1.0)

<p>
<img
src="https://github.com/user-attachments/assets/72a03e68-e9c3-4644-94f9-d5ceb343aca5"
height="500px" alt="" />
</p>

*Super saiyan ~~god~~ dog! It's over 9.0.0!*

*There's a bug with this release which prevents the deprecation notice
to appear and requires to remove `#!/usr/bin/env sh` and `. "$(dirname
-- "$0")/_/husky.sh"` (which are deprecated by the way). I'll publish a
new version to fix that. Sorry about any inconvenience.*

### What's new

You can now run package commands directly, no need for `npx` or
equivalents.
It makes writing hooks more intuitive and is also slightly faster 🐺⚡️

```diff

### .husky/pre-commit
- npx jest
+ jest # ~0.2s faster
```

A new recipe has been added to the docs. Lint staged files without
external dependencies (inspired by Prettier docs). Feel free to modify
it.

```shell

### .husky/pre-commit
prettier $(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g') --write --ignore-unknown
git update-index --again
```

For more advanced use cases, see
[lint-staged](https://redirect.github.com/lint-staged/lint-staged).

### Fixes

-   `bunx husky init` command
-   Workaround for some hooks implementation on Windows 🤷

### Deprecations

- Remove `#!/usr/bin/env sh` and `. "$(dirname -- "$0")/_/husky.sh"`
from your hooks
-   Move your code from `~/.huskyrc` to `.config/husky/init.sh`

Support for these will be removed in v10, notices have been added.

### Friendly reminder

If Git hooks don't fit your workflow, you can disable Husky globally.
Just add `export HUSKY=0` to `.config/husky/init.sh`.

I've seen some confusion about this on X, so just a heads-up!

### Sponsoring

Husky is downloaded over 45M times per month and used by ~1.5M projects.
If your company wants to sponsor, you can do so here: [GitHub
Sponsors](https://redirect.github.com/sponsors/typicode).

**Have a nice summer ☀️ I'm open to new opportunities/consulting so feel
free to drop me a message 😉**

###
[`v9.0.11`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://redirect.github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://redirect.github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://redirect.github.com/typicode/husky/issues/1393))
by [@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://redirect.github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://redirect.github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://redirect.github.com/typicode/husky/pull/1379)

###
[`v9.0.9`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://redirect.github.com/typicode/husky/pull/1378)

###
[`v9.0.8`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://redirect.github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://redirect.github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://redirect.github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://redirect.github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://redirect.github.com/typicode/husky/pull/1377)

###
[`v9.0.7`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1363](https://redirect.github.com/typicode/husky/pull/1363)

###
[`v9.0.6`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by
[@&#8203;rakleed](https://redirect.github.com/rakleed) in
[https://github.com/typicode/husky/pull/1354](https://redirect.github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://redirect.github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://redirect.github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://redirect.github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://redirect.github.com/typicode/husky/pull/1359)

###
[`v9.0.5`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://redirect.github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://redirect.github.com/typicode/husky/pull/1350)
- fix: init error by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1353](https://redirect.github.com/typicode/husky/pull/1353)

###
[`v9.0.4`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://redirect.github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://redirect.github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://redirect.github.com/typicode/husky/issues/1334)
by [@&#8203;rozbo](https://redirect.github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://redirect.github.com/typicode/husky/pull/1347)

###
[`v9.0.3`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://redirect.github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://redirect.github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://redirect.github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://redirect.github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://redirect.github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://redirect.github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://redirect.github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://redirect.github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://redirect.github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://redirect.github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://redirect.github.com/typicode/husky/pull/1346)

###
[`v9.0.2`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://redirect.github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://redirect.github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://redirect.github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://redirect.github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://redirect.github.com/gergelypap) made
their first contribution in
[https://github.com/typicode/husky/pull/1336](https://redirect.github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

###
[`v9.0.1`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### 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

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

##### v9

```shell
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

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

##### v9

```shell
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`

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

`.husky/pre-commit`

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

###
[`v8.0.3`](https://redirect.github.com/typicode/husky/releases/tag/v8.0.3)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v8.0.2...v8.0.3)

- fix: add git not installed message
[#&#8203;1208](https://redirect.github.com/typicode/husky/issues/1208)

###
[`v8.0.2`](https://redirect.github.com/typicode/husky/releases/tag/v8.0.2)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v8.0.1...v8.0.2)

-   docs: remove deprecated npm set-script

###
[`v8.0.1`](https://redirect.github.com/typicode/husky/releases/tag/v8.0.1)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v8.0.0...v8.0.1)

-   fix: use POSIX equality operator

###
[`v8.0.0`](https://redirect.github.com/typicode/husky/releases/tag/v8.0.0)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v7.0.4...v8.0.0)

#### What's Changed

##### Feats

- feat: add `husky -` prefix to logged global error messages by
[@&#8203;joshbalfour](https://redirect.github.com/joshbalfour) in
[https://github.com/typicode/husky/pull/1092](https://redirect.github.com/typicode/husky/pull/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 [@&#8203;skhaz](https://redirect.github.com/skhaz) in
[https://github.com/typicode/husky/pull/1051](https://redirect.github.com/typicode/husky/pull/1051)
- fix: actually set 'husky_skip_init' as readonly in `./husky.sh` by
[@&#8203;hyperupcall](https://redirect.github.com/hyperupcall) in
[https://github.com/typicode/husky/pull/1104](https://redirect.github.com/typicode/husky/pull/1104)
- fix: force `basename`/`dirname` to treat `$0` as an argument by
[@&#8203;mataha](https://redirect.github.com/mataha) in
[https://github.com/typicode/husky/pull/1132](https://redirect.github.com/typicode/husky/pull/1132)
- fix: remove `git.io` links by
[@&#8203;renbaoshuo](https://redirect.github.com/renbaoshuo) in
[https://github.com/typicode/husky/pull/1136](https://redirect.github.com/typicode/husky/pull/1136)

##### Docs

- docs: fix uninstall via npm by
[@&#8203;pddpd](https://redirect.github.com/pddpd) in
[https://github.com/typicode/husky/pull/1033](https://redirect.github.com/typicode/husky/pull/1033)
- docs: add dog emoji as favicon by
[@&#8203;jamiehaywood](https://redirect.github.com/jamiehaywood) in
[https://github.com/typicode/husky/pull/1095](https://redirect.github.com/typicode/husky/pull/1095)
- docs: replace deprecated `npx --no-install` option with `npx --no` by
[@&#8203;sibiraj-s](https://redirect.github.com/sibiraj-s) in
[https://github.com/typicode/husky/pull/1070](https://redirect.github.com/typicode/husky/pull/1070)
- docs: add `pnpm` installation by
[@&#8203;MohamadKh75](https://redirect.github.com/MohamadKh75) in
[https://github.com/typicode/husky/pull/1139](https://redirect.github.com/typicode/husky/pull/1139)

##### Chore

- chore: update workflows by
[@&#8203;tiziodcaio](https://redirect.github.com/tiziodcaio) in
[https://github.com/typicode/husky/pull/1125](https://redirect.github.com/typicode/husky/pull/1125)

###
[`v7.0.4`](https://redirect.github.com/typicode/husky/releases/tag/v7.0.4)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v7.0.3...v7.0.4)

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

###
[`v7.0.3`](https://redirect.github.com/typicode/husky/compare/v7.0.2...v7.0.3)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v7.0.2...v7.0.3)

###
[`v7.0.2`](https://redirect.github.com/typicode/husky/releases/tag/v7.0.2)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v7.0.1...v7.0.2)

Fix pre-commit hook in WebStorm
([#&#8203;1023](https://redirect.github.com/typicode/husky/issues/1023))

###
[`v7.0.1`](https://redirect.github.com/typicode/husky/releases/tag/v7.0.1)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v7.0.0...v7.0.1)

- Fix gracefully fail if Git command is not found
[#&#8203;1003](https://redirect.github.com/typicode/husky/issues/1003)
(same as in v6)

###
[`v7.0.0`](https://redirect.github.com/typicode/husky/releases/tag/v7.0.0)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v6.0.0...v7.0.0)

- Improve `.husky/` directory structure. **`.husky/.gitignore` is now
unnecessary and can be removed**.
-   Improve error output (shorter)
- Update [`husky-init`](https://redirect.github.com/typicode/husky-init)
CLI
- Update
[`husky-4-to-7`](https://redirect.github.com/typicode/husky-4-to-7) CLI
-   Drop Node 10 support

*Please help me develop and release OSS projects ❤️ on [GitHub
Sponsors](https://redirect.github.com/sponsors/typicode) or [Open
Collective](https://opencollective.com/husky). Thank you for your
support!*

###
[`v6.0.0`](https://redirect.github.com/typicode/husky/releases/tag/v6.0.0)

[Compare
Source](https://redirect.github.com/typicode/husky/compare/v5.2.0...v6.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](https://typicode.github.io/husky/#/?id=used-by) 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](https://redirect.github.com/sponsors/typicode) or [Open
Collective](https://opencollective.com/husky). 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](https://typicode.github.io/husky/#/?id=husky-4-to-6-cli)
CLI to automatically migrate your config. There's also a dedicated
section in the
[docs](https://typicode.github.io/husky/#/?id=migrate-from-v4-to-v6).

**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](https://docs.npmjs.com/cli/v7/using-npm/scripts#best-practices)
and
[Yarn](https://yarnpkg.com/advanced/lifecycle-scripts#a-note-about-postinstall)
best practices regarding autoinstall.** It's recommended to use
`prepare` script instead (see
[usage](https://typicode.github.io/husky/#/?id=usage) in docs).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/davidsneighbour/hugo-modules).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  • Loading branch information
renovate[bot] authored Sep 15, 2024
1 parent 4b14924 commit b1b6dfb
Showing 1 changed file with 1 addition and 1 deletion.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit b1b6dfb

Please sign in to comment.