Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update hooks (major) #390

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Update hooks (major) #390

wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 8, 2022

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@​types/prettier 2.7.3 -> 3.0.0 age adoption passing confidence
eslint-config-prettier 8.10.0 -> 10.0.1 age adoption passing confidence
husky 7.0.4 -> 9.1.7 age adoption passing confidence
lint-staged 12.5.0 -> 15.4.3 age adoption passing confidence
prettier (source) 2.8.8 -> 3.4.2 age adoption passing confidence

Release Notes

prettier/eslint-config-prettier (eslint-config-prettier)

v10.0.1

Compare Source

eslint-config-prettier

10.0.1

What's Changed

New Contributors

Full Changelog: prettier/eslint-config-prettier@v9.1.0...v10.0.1

v10.0.0

Compare Source

Major Changes

v9.1.0

Compare Source

  • Added: [unicorn/template-indent], (as a [special rule][unicorn/template-indent-special]). Thanks to Gürgün Dayıoğlu (@​gurgunday)!
  • Changed: All the [formatting rules that were deprecated in ESLint 8.53.0][deprecated-8.53.0] are now excluded if you set the ESLINT_CONFIG_PRETTIER_NO_DEPRECATED environment variable.

v9.0.0

Compare Source

  • Added: The CLI helper tool now works with eslint.config.js (flat config). Just like ESLint itself, the CLI tool automatically first tries eslint.config.js and then eslintrc, and you can force which one to use by setting the [ESLINT_USE_FLAT_CONFIG] environment variable. Note that the config of eslint-config-prettier has always been compatible with eslint.config.js (flat config) – it was just the CLI tool that needed updating. On top of that, the docs have been updated to mention how to use both eslint.config.js (flat config) and eslintrc, and the tests now test both config systems.
  • Changed: [unicode-bom] is no longer turned off. Prettier preserves the BOM if you have one, and does not add one if missing. It was wrong of eslint-config-prettier to disable that rule. If you get ESLint errors after upgrading, either add "unicode-bom": "off" to your config to disable it again, or run ESLint with --fix to fix all files according to the rule (add or remove BOM). Thanks to Nicolas Stepien (@​nstepien)!
typicode/husky (husky)

v9.1.7

Compare Source

v9.1.6

Compare Source

v9.1.5

Compare Source

v9.1.4

Compare Source

v9.1.3

Compare Source

  • fix: better handle space in PATH

v9.1.2

Compare Source

v9.1.1

Compare Source

v9.1.0

Compare Source

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 🐺⚡️

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

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

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.

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

v9.0.11

Compare Source

v9.0.10

Compare Source

v9.0.9

Compare Source

v9.0.8

Compare Source

v9.0.7

Compare Source

v9.0.6

Compare Source

v9.0.5

Compare Source

v9.0.4

Compare Source

v9.0.3

Compare Source

v9.0.2

Compare Source

What's Changed

New Contributors

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

v9.0.1

Compare Source

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

v8.0.3

Compare Source

  • fix: add git not installed message #​1208

v8.0.2

Compare Source

  • docs: remove deprecated npm set-script

v8.0.1

Compare Source

  • fix: use POSIX equality operator

v8.0.0

Compare Source

What's Changed

Feats
Fixes
Docs
Chore
lint-staged/lint-staged (lint-staged)

v15.4.3

Compare Source

Patch Changes
  • #​1512 cbfed1d Thanks @​tarik02! - Adjust TypeScript types for the default export so that it can be used as a value without error TS2693.

v15.4.2

Compare Source

Patch Changes
  • #​1509 8827ebf Thanks @​iiroj! - Change lint-staged's dependencies to use caret (^) ranges instead of tilde (~). This makes it easier for package managers to perform dependency management when minor-level updates are also permitted instead of just patch-level.

v15.4.1

Compare Source

Patch Changes

v15.4.0

Compare Source

Minor Changes
  • #​1500 a8ec1dd Thanks @​iiroj! - Lint-staged now provides TypeScript types for the configuration and main Node.js API. You can use the JSDoc syntax in your JS configuration files:

    /**
     * @​filename: lint-staged.config.js
     * @​type {import('lint-staged').Configuration}
     */
    export default {
      '*': 'prettier --write',
    }

    It's also possible to use the .ts file extension for the configuration if your Node.js version supports it. The --experimental-strip-types flag was introduced in Node.js v22.6.0 and unflagged in v23.6.0, enabling Node.js to execute TypeScript files without additional configuration.

    export NODE_OPTIONS="--experimental-strip-types"
    
    npx lint-staged --config lint-staged.config.ts
Patch Changes

v15.3.0

Compare Source

Minor Changes
  • #​1495 e69da9e Thanks @​iiroj! - Added more info to the debug logs so that "environment" info doesn't need to be added separately to GitHub issues.

  • #​1493 fa0fe98 Thanks @​iiroj! - Added more help messages around the automatic git stash that lint-staged creates as a backup (by default). The console output also displays the short git hash of the stash so that it's easier to recover lost files in case some fatal errors are encountered, or the process is killed before completing.

    For example:

    % npx lint-staged
    ✔ Backed up original state in git stash (20addf8)
    ✔ Running tasks for staged files...
    ✔ Applying modifications from tasks...
    ✔ Cleaning up temporary files...
    

    where the backup can be seen with git show 20addf8, or git stash list:

    % git stash list
    stash@{0}: lint-staged automatic backup (20addf8)
    

v15.2.11

Compare Source

Patch Changes
  • #​1484 bcfe309 Thanks @​wormsik! - Escape paths containing spaces when using the "shell" option.

  • #​1487 7dd8caa Thanks @​iiroj! - Do not treat submodule root paths as "staged files". This caused lint-staged to fail to a Git error when only updating the revision of a submodule.

v15.2.10

Compare Source

Patch Changes

v15.2.9

Compare Source

Patch Changes
  • #​1463 b69ce2d Thanks @​iiroj! - Set the maximum number of event listeners to the number of tasks. This should silence the console warning MaxListenersExceededWarning: Possible EventEmitter memory leak detected.

v15.2.8

Compare Source

Patch Changes
  • f0480f0 Thanks @​iiroj! - In the previous version the native git rev-parse --show-toplevel command was taken into use for resolving the current git repo root. This version switched the --show-toplevel flag with --show-cdup, because on Git installed via MSYS2 the former was returning absolute paths that do not work with Node.js child_process. The new flag returns a path relative to the working directory, avoiding the issue.

    The GitHub Actions workflow has been updated to install Git via MSYS2, to ensure better future compatibility; using the default Git binary in the GitHub Actions runner was working correctly even with MSYS2.

v15.2.7

Compare Source

Patch Changes
  • #​1440 a51be80 Thanks @​iiroj! - In the previous version the native git rev-parse --show-toplevel command was taken into use for resolving the current git repo root. This version drops the --path-format=absolute option to support earlier git versions since it's also the default behavior. If you are still having trouble, please try upgrading git to the latest version.

v15.2.6

Compare Source

Patch Changes
  • #​1433 119adb2 Thanks @​iiroj! - Use native "git rev-parse" commands to determine git repo root directory and the .git config directory, instead of using custom logic. This hopefully makes path resolution more robust on non-POSIX systems.

v15.2.5

Compare Source

Patch Changes

v15.2.4

Compare Source

Patch Changes
  • 4f4537a Thanks @​iiroj! - Fix release issue with previous version; update dependencies

v15.2.2

Compare Source

Patch Changes
  • #​1391 fdcdad4 Thanks @​iiroj! - Lint-staged no longer tries to load configuration from files that are not checked out. This might happen when using sparse-checkout.

v15.2.1

Compare Source

Patch Changes
  • #​1387 e4023f6 Thanks @​iiroj! - Ignore stdin of spawned commands so that they don't get stuck waiting. Until now, lint-staged has used the default settings to spawn linter commands. This means the stdin of the spawned commands has accepted input, and essentially gotten stuck waiting. Now the stdin is ignored and commands will no longer get stuck. If you relied on this behavior, please open a new issue and describe how; the behavior has not been intended.

v15.2.0

Compare Source

Minor Changes
  • #​1371 f3378be Thanks @​iiroj! - Using the --no-stash flag no longer discards all unstaged changes to partially staged files, which resulted in inadvertent data loss. This fix is available with a new flag --no-hide-partially-staged that is automatically enabled when --no-stash is used.
Patch Changes

v15.1.0

Compare Source

Minor Changes
Patch Changes

v15.0.2

Compare Source

Patch Changes
  • #​1339 8e82364 Thanks @​iiroj! - Update dependencies, including listr2@​7.0.2 to fix an upstream issue affecting lint-staged.

v15.0.1

Compare Source

Patch Changes
  • #​1217 d2e6f8b Thanks @​louneskmt! - Previously it was possible for a function task to mutate the list of staged files passed to the function, and accidentally affect the generation of other tasks. This is now fixed by passing a copy of the original file list instead.

v15.0.0

Compare Source

Major Changes
  • #​1322 66b93aa Thanks @​iiroj! - Require at least Node.js 18.12.0

    This release drops support for Node.js 16, which is EOL after 2023-09-11.
    Please upgrade your Node.js to the latest version.

    Additionally, all dependencies have been updated to their latest versions.

v14.0.1

Compare Source

Bug Fixes
  • fix reading config from stdin, introduced in v14.0.0 (#​1317) (fc3bfea)

v14.0.0

Compare Source

Features
BREAKING CHANGES
  • Please upgrade your Node.js version to at least 16.14.0.

v13.3.0

Compare Source

Bug Fixes
  • dependencies: update most dependencies (7443870)
  • detect duplicate redundant braces in pattern (d895aa8)
Features
  • dependencies: update listr2@​6.6.0 (09844ca)

v13.2.3

Compare Source

Bug Fixes
  • the --diff option implies --no-stash (66a716d)

v13.2.2

Compare Source

Bug Fixes

v13.2.1

Compare Source

Bug Fixes
  • ignore "package.json" as config file when it's invalid JSON (#​1281) (e7ed6f7)

v13.2.0

Compare Source

Bug Fixes
  • dependencies: replace colorette with chalk for better color support detection (f598725)
  • use index-based stash references for improved MSYS2 compatibility (#​1270) (60fcd99)
Features

v13.1.4

Compare Source

v13.1.3

Compare Source

v13.1.2

Compare Source

Bug Fixes

v13.1.1

Compare Source

Bug Fixes
  • allow re-enabling --stash when using the --diff option (99390c3)

v13.1.0

Compare Source

Features

v13.0.4

Compare Source

Bug Fixes
  • deps: update all dependencies (336f3b5)
  • deps: update all dependencies (ec995e5)

v13.0.3

Compare Source

Bug Fixes

v13.0.2

Compare Source

Bug Fixes
  • use new --diff and --diff-filter options when checking task modifications (1a5a66a)

v13.0.1

Compare Source

Bug Fixes
  • correct spelling of "0 files" (f27f1d4)
  • suppress error from process.kill when killing tasks on failure (f2c6bdd)
  • deps: update pidtree@^0.6.0 to fix screen size error in WSL (1a77e42)
  • ignore "No matching pid found" error (cb8a432)
  • prevent possible race condition when killing tasks on failure (bc92aff)
Performance Improvements
  • use EventsEmitter instead of setInterval for killing tasks on failure (c508b46)

v13.0.0

Compare Source

Bug Fixes
  • deps: update execa@^6.1.0 (659c85c)
  • deps: update yaml@^2.1.1 (2750a3d)
Features
  • remove support for Node.js 12 (5fb6df9)
BREAKING CHANGES
  • lint-staged will no longer support Node.js 12, which is EOL since 30 April 2022
prettier/prettier (prettier)

v3.4.2

Compare Source

diff

Treat U+30A0 & U+30FB in Katakana Block as CJK (#​16796 by @​tats-u)

Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese.

<!-- Input (--prose-wrap=never) -->

C言
語
・
C++
・
Go
・
Rust

<!-- Prettier 3.4.1 -->
C言語・ C++ ・ Go ・ Rust

<!-- Prettier 3.4.2 -->
C言語・C++・Go・Rust

U+30A0 can be used as the replacement of the - in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).

Fix comments print on class methods with decorators (#​16891 by @​fisker)
// Input
class A {
  @&#8203;decorator
  /** 
   * The method description
   *
  */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.1
class A {
  @&#8203;decorator
  async /**
   * The method description
   *
   */
  method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.2
class A {
  @&#8203;decorator
  /**
   * The method description
   *
   */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}
Fix non-idempotent formatting (#​16899 by @​seiyab)

This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3.

// Input
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.1 (first)
<div>
  foo
  <span>
    longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo
  </span>, abc
</div>;

// Prettier 3.4.1 (second)
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.2
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

v3.4.1

Compare Source

diff

Remove unnecessary parentheses around assignment in v-on (#​16887 by @​fisker)
<!-- Input -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>

<!-- Prettier 3.4.0 -->
<template>
  <button @&#8203;click="(foo += 2)">Click</button>
</template>

<!-- Prettier 3.4.1 -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>

v3.4.0

Compare Source

diff

🔗 Release Notes

v3.3.3

Compare Source

diff

Add parentheses for nullish coalescing in ternary (#​16391 by @​cdignam-segment)

This change adds clarity to operator precedence.

// Input
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;

// Prettier 3.3.2
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;

// Prettier 3.3.3
foo ? (bar ?? foo) : baz;
(foo ?? bar) ? a : b;
a ? b : (foo ?? bar);
Add parentheses for decorator expressions (#​16458 by @​y-schneider)

Prevent parentheses around member expressions or tagged template literals from being removed to follow the stricter parsing rules of TypeScript 5.5.

// Input
@&#8203;(foo`tagged template`)
class X {}

// Prettier 3.3.2
@&#8203;foo`tagged template`
class X {}

// Prettier 3.3.3
@&#8203;(foo`tagged template`)
class X {}
Support @let declaration syntax (#​16474 by @​sosukesuzuki)

Adds support for Angular v18 @let declaration syntax.

Please see the following code example. The @let declaration allows you to define local variables within the template:

@&#8203;let name = 'Frodo';

<h1>Dashboard for {{name}}</h1>
Hello, {{name}}

For more details, please refer to the excellent blog post by the Angular Team: Introducing @​let in Angular.

We also appreciate the Angular Team for kindly answering our questions to implement this feature.

v3.3.2

Compare Source

diff

Fix handlebars path expressions starts with @ (#​16358 by @​Princeyadav05)
{{! Input }}
<div>{{@&

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

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

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- 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/ryands17/ts-algorithms).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xMTcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

@renovate renovate bot force-pushed the renovate/major-hooks branch 7 times, most recently from 3dc3e25 to e00941b Compare May 14, 2022 09:52
@renovate renovate bot force-pushed the renovate/major-hooks branch 4 times, most recently from b195e56 to a40183a Compare May 21, 2022 05:34
@renovate renovate bot force-pushed the renovate/major-hooks branch 10 times, most recently from 3cc6bfa to 6b9fc04 Compare June 1, 2022 11:48
@renovate renovate bot changed the title Update dependency husky to v8 Update hooks (major) Jun 1, 2022
@renovate renovate bot force-pushed the renovate/major-hooks branch 8 times, most recently from 1fb3995 to 1926750 Compare June 4, 2022 14:30
@renovate renovate bot force-pushed the renovate/major-hooks branch 3 times, most recently from 51120f8 to dcc65d2 Compare June 12, 2024 01:15
@renovate renovate bot force-pushed the renovate/major-hooks branch from dcc65d2 to 106482f Compare June 12, 2024 19:55
@renovate renovate bot force-pushed the renovate/major-hooks branch 4 times, most recently from d43fb59 to 3ab7593 Compare July 18, 2024 15:17
@renovate renovate bot force-pushed the renovate/major-hooks branch 3 times, most recently from 4a566ab to 843b5a2 Compare July 29, 2024 15:56
@renovate renovate bot force-pushed the renovate/major-hooks branch from 843b5a2 to 0ad4c8e Compare August 3, 2024 08:01
@renovate renovate bot force-pushed the renovate/major-hooks branch from 0ad4c8e to f738480 Compare August 13, 2024 07:54
@renovate renovate bot force-pushed the renovate/major-hooks branch from f738480 to e974a82 Compare August 20, 2024 14:29
@renovate renovate bot force-pushed the renovate/major-hooks branch from e974a82 to 7a934fc Compare September 1, 2024 15:38
@renovate renovate bot force-pushed the renovate/major-hooks branch from 7a934fc to fa68372 Compare September 12, 2024 02:27
@renovate renovate bot force-pushed the renovate/major-hooks branch 2 times, most recently from d2e6824 to a49b435 Compare September 21, 2024 06:24
@renovate renovate bot force-pushed the renovate/major-hooks branch from a49b435 to 672762b Compare November 18, 2024 17:33
@renovate renovate bot force-pushed the renovate/major-hooks branch 2 times, most recently from 21d4d1b to 1fbe9a0 Compare November 26, 2024 14:45
@renovate renovate bot force-pushed the renovate/major-hooks branch 2 times, most recently from 0d62194 to 74df659 Compare December 10, 2024 16:10
@renovate renovate bot force-pushed the renovate/major-hooks branch from 74df659 to d5ebcb2 Compare December 28, 2024 12:11
@renovate renovate bot force-pushed the renovate/major-hooks branch 3 times, most recently from 51d3830 to 2a99c7b Compare January 16, 2025 19:16
@renovate renovate bot force-pushed the renovate/major-hooks branch from 2a99c7b to 6072c3c Compare January 23, 2025 11:36
@renovate renovate bot force-pushed the renovate/major-hooks branch from 6072c3c to 09042be Compare January 26, 2025 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants