This PR contains the following updates:
Release Notes
lint-staged/lint-staged (lint-staged)
Compare Source
Patch Changes
#1570a7c0c88
Thanks@ItsNickBarry! - When using--diff-filter
with theD
option to include deleted staged files,lint-staged no longer tries to stage the deleted files, unless they're no longer deleted. Previously this caused an error fromgit add
likefatal: pathspec 'deleted-file' did not match any files
.
38f942e
Thanks@iiroj! - Removed an extraneous log entry that printedshouldHidePArtiallyStagedFiles
to console output.
Compare Source
Patch Changes
#15653686977
Thanks@iiroj! -Lint-staged now explicitly warns about potential data loss when using--no-stash
.
#157102299a9
Thanks@iiroj! - Function tasks (introduced in v16.0.0) only received the staged files matching the conpmnfigured glob, instead of all staged files.
#1563bc61c74
Thanks@iiroj! - This version fixes incorrect behavior where unstaged changes were committed when using the--no-stash
option. This happened because--no-stash
implied--no-hide-partially-staged
, meaning unstaged changes to files which also had other staged changes were added to the commit bylint-staged; this is no longer the case.
The previous (incorrect) behavior can still be achieved by using both options--no-stash --no-hide-partially-staged
at the same time.
Compare Source
Minor Changes
#1536e729daa
Thanks@iiroj! - A new flag--no-revert
has been introduced for when task modifications should be applied to the index before aborting the commit in case of errors. By default,lint-staged will clear all task modifications and revert to the original state.
#1550b27fa3f
Thanks@iiroj! -Lint-staged now ignores symlinks and leaves them out from the list of staged files.
Patch Changes
Compare Source
Major Changes
#1546158d15c
Thanks@iiroj! - Processes are spawned usingnano-spawn instead ofexeca. If you are using Node.js scripts as tasks, you might need to explicitly run them withnode
, especially when using Windows:
{"*.js":"node my-js-linter.js"}
#1546158d15c
Thanks@iiroj! - The--shell
flag has been removed andlint-staged no longer supports evaluating commands directly via a shell. To migrate existing commands, you can create a shell script and invoke it instead. Lint-staged will pass matched staged files as a list of arguments, accessible via"$@​"
:
Compare Source
Patch Changes
Compare Source
Patch Changes
Compare Source
Minor Changes
- #1526
630af5f
Thanks@iiroj! - Lint-staged no longer resets to the original state when preventing an empty git commit. This happens when your configured tasks reset all the staged changes, typically when trying to commit formatting changes which conflict with your linter setup like ESLint or Prettier.
Example with Prettier
By default Prettierprefers double quotes.
Previously
- Stage
file.js
with only double quotes"
changed to'
- Run
git commit -am "I don't like double quotes"
- Lint-staged runs
prettier --write file.js
, converting all the'
back to"
- Because there are now no changes,lint-staged fails, cancels the commit, and resets back to the original state
- Commit was not done, original state is restored and single quotes
'
are staged
Now
- Stage
file.js
with only double-quotes"
changed to'
- Run
git commit -am "I don't like double quotes"
- Lint-staged runs
prettier --write file.js
, converting all the'
back to"
- Because there are now no changes,lint-staged fails and cancels the commit
- Commit was not done, and there are no staged changes
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.
Compare Source
Patch Changes
- #1509
8827ebf
Thanks@iiroj! - Changelint-staged's dependencies to usecaret (^
) ranges instead oftilde (~
). This makes it easier for package managers to perform dependency management when minor-level updates are also permitted instead of just patch-level.
Compare Source
Patch Changes
Compare Source
Minor Changes
#1500a8ec1dd
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} */exportdefault{'*':'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 inNode.js v22.6.0 and unflagged inv23.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
Compare Source
Minor Changes
#1495e69da9e
Thanks@iiroj! - Added more info to the debug logs so that "environment" info doesn't need to be added separately to GitHub issues.
#1493fa0fe98
Thanks@iiroj! - Added more help messages around the automaticgit stash
thatlint-staged creates as a backup (by default). The console output also displays the short githash 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 withgit show 20addf8
, orgit stash list
:
% git stash liststash@{0}: lint-staged automatic backup (20addf8)
Compare Source
Patch Changes
#1484bcfe309
Thanks@wormsik! - Escape paths containing spaces when using the "shell" option.
#14877dd8caa
Thanks@iiroj! - Do not treat submodule root paths as "staged files". This causedlint-staged to fail to a Git error when only updating the revision of a submodule.
Configuration
📅Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated byMend Renovate. View therepository job log.
Uh oh!
There was an error while loading.Please reload this page.
This PR contains the following updates:
^15.2.7
->^16.0.0
Release Notes
lint-staged/lint-staged (lint-staged)
v16.1.2
Compare Source
Patch Changes
#1570
a7c0c88
Thanks@ItsNickBarry! - When using--diff-filter
with theD
option to include deleted staged files,lint-staged no longer tries to stage the deleted files, unless they're no longer deleted. Previously this caused an error fromgit add
likefatal: pathspec 'deleted-file' did not match any files
.38f942e
Thanks@iiroj! - Removed an extraneous log entry that printedshouldHidePArtiallyStagedFiles
to console output.v16.1.1
Compare Source
Patch Changes
#1565
3686977
Thanks@iiroj! -Lint-staged now explicitly warns about potential data loss when using--no-stash
.#1571
02299a9
Thanks@iiroj! - Function tasks (introduced in v16.0.0) only received the staged files matching the conpmnfigured glob, instead of all staged files.#1563
bc61c74
Thanks@iiroj! - This version fixes incorrect behavior where unstaged changes were committed when using the--no-stash
option. This happened because--no-stash
implied--no-hide-partially-staged
, meaning unstaged changes to files which also had other staged changes were added to the commit bylint-staged; this is no longer the case.The previous (incorrect) behavior can still be achieved by using both options
--no-stash --no-hide-partially-staged
at the same time.v16.1.0
Compare Source
Minor Changes
#1536
e729daa
Thanks@iiroj! - A new flag--no-revert
has been introduced for when task modifications should be applied to the index before aborting the commit in case of errors. By default,lint-staged will clear all task modifications and revert to the original state.#1550
b27fa3f
Thanks@iiroj! -Lint-staged now ignores symlinks and leaves them out from the list of staged files.Patch Changes
c37dc38
Thanks@iiroj! - The minimum required Node.js version is lowered to20.17
followingnano-spawn@1.0.2.v16.0.0
Compare Source
Major Changes
#1546
158d15c
Thanks@iiroj! - Processes are spawned usingnano-spawn instead ofexeca. If you are using Node.js scripts as tasks, you might need to explicitly run them withnode
, especially when using Windows:#1546
158d15c
Thanks@iiroj! - The--shell
flag has been removed andlint-staged no longer supports evaluating commands directly via a shell. To migrate existing commands, you can create a shell script and invoke it instead. Lint-staged will pass matched staged files as a list of arguments, accessible via"$@​"
:v15.5.2
Compare Source
Patch Changes
5561321
Thanks@YimingIsCOLD! - Correctly handle colon (:
) characters in staged filenames.v15.5.1
Compare Source
Patch Changes
#1533
5d53534
Thanks@iiroj! - Improve listing of staged files so thatlint-staged doesn't crash when encountering an uninitialized submodule. This should result in less errors like:v15.5.0
Compare Source
Minor Changes
630af5f
Thanks@iiroj! - Lint-staged no longer resets to the original state when preventing an empty git commit. This happens when your configured tasks reset all the staged changes, typically when trying to commit formatting changes which conflict with your linter setup like ESLint or Prettier.Example with Prettier
By default Prettierprefers double quotes.
Previously
file.js
with only double quotes"
changed to'
git commit -am "I don't like double quotes"
prettier --write file.js
, converting all the'
back to"
'
are stagedNow
file.js
with only double-quotes"
changed to'
git commit -am "I don't like double quotes"
prettier --write file.js
, converting all the'
back to"
v15.4.3
Compare Source
Patch Changes
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
8827ebf
Thanks@iiroj! - Changelint-staged's dependencies to usecaret (^
) ranges instead oftilde (~
). 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
#1504
1c7a45e
Thanks@iiroj! - Default TypeScript config filenames match JS equivalents.#1504
9cc18c9
Thanks@iiroj! - Add missing conditional exports syntax for TypeScript types.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: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 inNode.js v22.6.0 and unflagged inv23.6.0, enabling Node.js to execute TypeScript files without additional configuration.Patch Changes
9b79364
Thanks@iiroj! - Handle possible failures when logging user shell for debug info.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 automaticgit stash
thatlint-staged creates as a backup (by default). The console output also displays the short githash 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:
where the backup can be seen with
git show 20addf8
, orgit stash list
: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 causedlint-staged to fail to a Git error when only updating the revision of a submodule.Configuration
📅Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated byMend Renovate. View therepository job log.