Commit 65a1d4a
authored
Update dependency husky to v9 (#27302)
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [husky](https://redirect.github.com/typicode/husky) | [`8.0.3` →
`9.1.7`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.1.7) |

|

|
---
### Release Notes
<details>
<summary>typicode/husky (husky)</summary>
###
[`v9.1.7`](https://redirect.github.com/typicode/husky/releases/tag/v9.1.7)
[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.6...v9.1.7)
#### What's Changed
- fix: add husky label to deprecated warning by
[@​smackfu](https://redirect.github.com/smackfu) in
[#​1538](https://redirect.github.com/typicode/husky/pull/1538)
#### New Contributors
- [@​smackfu](https://redirect.github.com/smackfu) made their
first contribution in
[#​1538](https://redirect.github.com/typicode/husky/pull/1538)
**Full Changelog**:
<typicode/husky@v9.1.6...v9.1.7>
###
[`v9.1.6`](https://redirect.github.com/typicode/husky/releases/tag/v9.1.6)
[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.5...v9.1.6)
#### What's Changed
- Fix issue where example pre-commit file is generated incorrectly by
[@​dexmlee](https://redirect.github.com/dexmlee) in
[#​1519](https://redirect.github.com/typicode/husky/pull/1519)
#### New Contributors
- [@​OlegKipchatov](https://redirect.github.com/OlegKipchatov)
made their first contribution in
[#​1495](https://redirect.github.com/typicode/husky/pull/1495)
- [@​Byron2016](https://redirect.github.com/Byron2016) made their
first contribution in
[#​1499](https://redirect.github.com/typicode/husky/pull/1499)
- [@​dexmlee](https://redirect.github.com/dexmlee) made their
first contribution in
[#​1519](https://redirect.github.com/typicode/husky/pull/1519)
**Full Changelog**:
<typicode/husky@v9.1.5...v9.1.6>
###
[`v9.1.5`](https://redirect.github.com/typicode/husky/releases/tag/v9.1.5)
[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.4...v9.1.5)
#### What's Changed
- fixes
[#​1494](https://redirect.github.com/typicode/husky/issues/1494),
support `pre-merge-commit` hook by
[@​RainMeoCat](https://redirect.github.com/RainMeoCat) in
[#​1497](https://redirect.github.com/typicode/husky/pull/1497)
#### New Contributors
- [@​RainMeoCat](https://redirect.github.com/RainMeoCat) made
their first contribution in
[#​1497](https://redirect.github.com/typicode/husky/pull/1497)
**Full Changelog**:
<typicode/husky@v9.1.4...v9.1.5>
###
[`v9.1.4`](https://redirect.github.com/typicode/husky/releases/tag/v9.1.4)
[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.3...v9.1.4)
- Improve deprecation notice
###
[`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/releases/tag/v9.1.2)
[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.1...v9.1.2)
Show a message instead of automatically removing deprecated code.
This only concerns projects that still have the following code in their
hooks:
```diff
- #!/usr/bin/env sh # <- This is deprecated, remove it
- . "$(dirname -- "$0")/_/husky.sh" # <- This is deprecated, remove it
### Rest of your hook code
```
**Hooks with these lines will fail in `v10.0.0`**
###
[`v9.1.1`](https://redirect.github.com/typicode/husky/releases/tag/v9.1.1)
[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.1.0...v9.1.1)
<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!*
### 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
- `#!/usr/bin/env sh` and `. "$(dirname -- "$0")/_/husky.sh"` are
deprecated. **`husky` command will automatically remove them, no action
required.**
- If you're having code in `~/.huskyrc` please move it to
`.config/husky/init.sh`
Support for these will be removed in v10.
### 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.1.0`](https://redirect.github.com/typicode/husky/compare/v9.0.11...v9.1.0)
[Compare
Source](https://redirect.github.com/typicode/husky/compare/v9.0.11...v9.1.0)
###
[`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
[@​btea](https://redirect.github.com/btea) in
[#​1383](https://redirect.github.com/typicode/husky/pull/1383)
- fix: `export HUSKY=0` in init (fixes
[#​1393](https://redirect.github.com/typicode/husky/issues/1393))
by [@​typicode](https://redirect.github.com/typicode) in
[#​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
[@​mrkjdy](https://redirect.github.com/mrkjdy) in
[#​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
[@​typicode](https://redirect.github.com/typicode) in
[#​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
[@​khaledYS](https://redirect.github.com/khaledYS) in
[#​1369](https://redirect.github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@​glensc](https://redirect.github.com/glensc) in
[#​1376](https://redirect.github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@​typicode](https://redirect.github.com/typicode) in
[#​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
[@​typicode](https://redirect.github.com/typicode) in
[#​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
[@​rakleed](https://redirect.github.com/rakleed) in
[#​1354](https://redirect.github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@​typicode](https://redirect.github.com/typicode) in
[#​1355](https://redirect.github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@​starnayuta](https://redirect.github.com/starnayuta) in
[#​1357](https://redirect.github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@​typicode](https://redirect.github.com/typicode) in
[#​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
[@​ManuelRauber](https://redirect.github.com/ManuelRauber) in
[#​1350](https://redirect.github.com/typicode/husky/pull/1350)
- fix: init error by
[@​typicode](https://redirect.github.com/typicode) in
[#​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
[@​typicode](https://redirect.github.com/typicode) in
[#​1348](https://redirect.github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@​typicode](https://redirect.github.com/typicode) in
[#​1349](https://redirect.github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#​1334](https://redirect.github.com/typicode/husky/issues/1334)
by [@​rozbo](https://redirect.github.com/rozbo) in
[#​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
[@​typicode](https://redirect.github.com/typicode) in
[#​1340](https://redirect.github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@​julien-f](https://redirect.github.com/julien-f) in
[#​1341](https://redirect.github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@​chalkygames123](https://redirect.github.com/chalkygames123) in
[#​1338](https://redirect.github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@​typicode](https://redirect.github.com/typicode) in
[#​1343](https://redirect.github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@​chalkygames123](https://redirect.github.com/chalkygames123) in
[#​1339](https://redirect.github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@​rozbo](https://redirect.github.com/rozbo) in
[#​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)
- fix: exit code by
[@​gergelypap](https://redirect.github.com/gergelypap) in
[#​1336](https://redirect.github.com/typicode/husky/pull/1336)
- docs: typo by
[@​chalkygames123](https://redirect.github.com/chalkygames123) in
[#​1337](https://redirect.github.com/typicode/husky/pull/1337)
###
[`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>
*Note: install using `husky@latest` to get the bug fixes that were
released after.*
#### Introducing `husky init`
##### v8
```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```
##### v9
Adding husky to a project is now easier than ever. It's just a single
line that does the same as above. No need to read the docs to get
started anymore.
```shell
npx husky init
```
#### Adding a New Hook
##### v8
```shell
npx husky add .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```
##### v9
Adding a hook is as simple as creating a file. This can be accomplished
using your favorite editor, a script or a basic `echo` command. For
example, on Linux/macOS:
```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
:raised\_hands:
#### 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.
Here are the steps to migrate:
`package.json`
```diff
{
"scripts": {
- "prepare": "husky install"
+ "prepare": "husky"
}
}
```
`.husky/pre-commit`
```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```
*Note: `sh` will be used to run hooks, even if a shebang is set.*
If you were using `husky` as a module:
```diff
- const husky = require('husky')
- // ...
+ import husky from 'husky'
+ console.log(husky())
```
</details>
---
### Configuration
📅 **Schedule**: (in timezone Etc/UTC)
- Branch creation
- Only on Sunday and Saturday (`* * * * 0,6`)
- Between 12:00 AM and 12:59 PM, only on Monday (`* 0-12 * * 1`)
- Between 09:00 PM and 11:59 PM, Monday through Friday (`* 21-23 * *
1-5`)
- Between 12:00 AM and 04:59 AM, Tuesday through Saturday (`* 0-4 * *
2-6`)
- Automerge
- Only on Sunday and Saturday (`* * * * 0,6`)
- Between 12:00 AM and 12:59 PM, only on Monday (`* 0-12 * * 1`)
- Between 10:00 PM and 11:59 PM, Monday through Friday (`* 22-23 * *
1-5`)
- Between 12:00 AM and 04:59 AM, Tuesday through Saturday (`* 0-4 * *
2-6`)
🚦 **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/TryGhost/Ghost).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>1 parent 324259e commit 65a1d4a
2 files changed
+5
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
80 | | - | |
| 80 | + | |
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22974 | 22974 | | |
22975 | 22975 | | |
22976 | 22976 | | |
22977 | | - | |
22978 | | - | |
22979 | | - | |
22980 | | - | |
| 22977 | + | |
| 22978 | + | |
| 22979 | + | |
| 22980 | + | |
22981 | 22981 | | |
22982 | 22982 | | |
22983 | 22983 | | |
| |||
0 commit comments