Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jul 7, 2025

This PR contains the following updates:

Package Change Age Confidence Type Update Pending
@types/node (source) 22.18.13 -> 24.9.2 age confidence devDependencies major 24.10.1 (+1)
actions/checkout v4 -> v5 age confidence action major
actions/github-script v7 -> v8 age confidence action major
actions/setup-node v4 -> v6 age confidence action major
actions/setup-python v5 -> v6 age confidence action major
actions/upload-artifact v4 -> v5 age confidence action major
cross-env 7.0.3 -> 10.1.0 age confidence devDependencies major
joi 17.13.3 -> 18.0.1 age confidence dependencies major
lint-staged 15.5.2 -> 16.2.6 age confidence devDependencies major

Release Notes

actions/checkout (actions/checkout)

v5

Compare Source

actions/github-script (actions/github-script)

v8: .0.0

Compare Source

What's Changed
⚠️ Minimum Compatible Runner Version

v2.327.1
Release Notes

Make sure your runner is updated to this version or newer to use this release.

New Contributors

Full Changelog: actions/github-script@v7.1.0...v8.0.0

actions/setup-node (actions/setup-node)

v6

Compare Source

v5

Compare Source

actions/setup-python (actions/setup-python)

v6

Compare Source

actions/upload-artifact (actions/upload-artifact)

v5

Compare Source

kentcdodds/cross-env (cross-env)

v10.1.0

Compare Source

Features
  • add support for default value syntax (152ae6a)

For example:

"dev:server": "cross-env wrangler dev --port ${PORT:-8787}",

If PORT is already set, use that value, otherwise fallback to 8787.

Learn more about Shell Parameter Expansion

v10.0.0

Compare Source

TL;DR: You should probably not have to change anything if:

  • You're using a modern maintained version of Node.js (v20+ is tested)
  • You're only using the CLI (most of you are as that's the intended purpose)

In this release (which should have been v8 except I had some issues with automated releases 🙈), I've updated all the things and modernized the package. This happened in #​261

Was this needed? Not really, but I just thought it'd be fun to modernize this package.

Here's the highlights of what was done.

  • Replace Jest with Vitest for testing
  • Convert all source files from .js to .ts with proper TypeScript types
  • Use zshy for ESM-only builds (removes CJS support)
  • Adopt @​epic-web/config for TypeScript, ESLint, and Prettier
  • Update to Node.js >=20 requirement
  • Remove kcd-scripts dependency
  • Add comprehensive e2e tests with GitHub Actions matrix testing
  • Update GitHub workflow with caching and cross-platform testing
  • Modernize documentation and remove outdated sections
  • Update all dependencies to latest versions
  • Add proper TypeScript declarations and exports

The tool maintains its original functionality while being completely modernized with the latest tooling and best practices

BREAKING CHANGES
  • This is a major rewrite that changes the module format from CommonJS to ESM-only. The package now requires Node.js >=20 and only exports ESM modules (not relevant in most cases).
hapijs/joi (joi)

v18.0.1

Compare Source

v18.0.0

Compare Source

lint-staged/lint-staged (lint-staged)

v16.2.6

Compare Source

Patch Changes

v16.2.5

Compare Source

Patch Changes
  • #​1687 9e02d9d Thanks @​iiroj! - Fix unhandled promise rejection when spawning tasks (instead of the tasks themselves failing). Previously when a task failed to spawn, lint-staged also failed and the backup stash might not have been automatically restored.

v16.2.4

Compare Source

Patch Changes

v16.2.3

Compare Source

Patch Changes
  • #​1669 27cd541 Thanks @​iiroj! - When using --fail-on-changes, automatically hidden (partially) unstaged changes are no longer counted to make lint-staged fail.

v16.2.2

Compare Source

Patch Changes
  • #​1667 699f95d Thanks @​iiroj! - The backup stash will not be dropped when using --fail-on-changes and there are errors. When reverting to original state is disabled (via --no-revert or --fail-on-changes), hidden (partially) unstaged changes are still restored automatically so that it's easier to resolve the situation manually.

    Additionally, the example for using the backup stash manually now uses the correct backup hash, if available:

    % npx lint-staged --fail-on-changes
    ✔ Backed up original state in git stash (c18d55a3)
    ✔ Running tasks for staged files...
    ✖ Tasks modified files and --fail-on-changes was used!
    ↓ Cleaning up temporary files...
    
    ✖ lint-staged failed because `--fail-on-changes` was used.
    
    Any lost modifications can be restored from a git stash:
    
      > git stash list --format="%h %s"
      c18d55a3 On main: lint-staged automatic backup
      > git apply --index c18d55a3

v16.2.1

Compare Source

Patch Changes
  • #​1664 8277b3b Thanks @​iiroj! - The built-in TypeScript types have been updated to more closely match the implementation. Notably, the list of staged files supplied to task functions is readonly string[] and can't be mutated. Thanks @​outslept!

    export default {
    ---  "*": (files: string[]) => void console.log('staged files', files)
    +++  "*": (files: readonly string[]) => void console.log('staged files', files)
    }
  • #​1654 70b9af3 Thanks @​iiroj! - This version has been published from GitHub Actions using Trusted Publishing for npm packages.

  • #​1659 4996817 Thanks @​iiroj! - Fix searching configuration files when the working directory is a subdirectory of a git repository, and there are package.json files in the working directory. This situation might happen when running lint-staged for a single package in a monorepo.

  • #​1654 7021f0a Thanks @​iiroj! - Return the caret semver range (^) to direct dependencies so that future patch and minor versions are allowed. This enables projects to better maintain and deduplicate their own transitive dependencies while not requiring direct updates to lint-staged. This was changed in 16.2.0 after the vulnerability issues with chalk and debug, which were also removed in the same version.

    Given the recent vulnerabilities in the npm ecosystem, it's best to be very careful when updating dependencies.

v16.2.0

Compare Source

Minor Changes
  • #​1615 99eb742 Thanks @​iiroj! - Added a new option --fail-on-changes to make lint-staged exit with code 1 when tasks modify any files, making the precommit hook fail. This is similar to the git diff --exit-code option. Using this flag also implies the --no-revert flag which means any changes made by tasks will be left in the working tree after failing, so that they can be manually staged and the commit tried again.

  • #​1611 cd05fd3 Thanks @​rlorenzo! - Added a new option --continue-on-error so that lint-staged will run all tasks to completion even if some of them fail. By default, lint-staded will exit early on the first failure.

  • #​1637 82fcc07 Thanks @​iiroj! - Internal lint-staged errors are now thrown and visible in the console output. Previously they were caught with the process exit code set to 1, but not logged. This happens when, for example, there's a syntax error in the lint-staged configuration file.

  • #​1647 a5ecc06 Thanks @​iiroj! - Remove debug as a dependency due to recent malware issue; read more at debug-js/debug#1005. Because of this, the DEBUG environment variable is no longer supported — use the --debug to enable debugging

  • #​1636 8db2717 Thanks @​iiroj! - Added a new option --hide-unstaged so that lint-staged will hide all unstaged changes to tracked files before running tasks. The changes will be applied back after running the tasks. Note that the combination of flags --hide-unstaged --no-hide-partially-staged isn't meaningful and behaves the same as just --hide-unstaged.

    Thanks to @​ItsNickBarry for the idea and initial implementation in #​1552.

  • #​1648 7900b3b Thanks @​iiroj! - Remove lilconfig to reduce reliance on third-party dependencies. It was used to find possible config files outside of those tracked in Git, including from the parent directories. This behavior has been moved directly into lint-staged and should work about the same.

Patch Changes

v16.1.6

Compare Source

Patch Changes
  • #​1610 e93578e Thanks @​iiroj! - Try to improve terminating of subprocess of tasks by using SIGKILL, and only calling pidtree when the the main task process has a known pid.

v16.1.5

Compare Source

Patch Changes

v16.1.4

Compare Source

Patch Changes
  • #​1604 90b37b0 Thanks @​iiroj! - Add another types field to package.json to make even more sure NPM detects that lint-staged includes built-in TypeScript type definitions.

v16.1.3

Compare Source

Patch Changes
  • #​1602 7ea700b Thanks @​dword-design! - Add the types field to package.json to make sure NPM detects lint-staged includes built-in TypeScript type definitions.

v16.1.2

Compare Source

Patch Changes
  • #​1570 a7c0c88 Thanks @​ItsNickBarry! - When using --diff-filter with the D 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 from git add like fatal: pathspec 'deleted-file' did not match any files.

  • 38f942e Thanks @​iiroj! - Removed an extraneous log entry that printed shouldHidePArtiallyStagedFiles 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 receive the staged files matching the configured 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 by lint-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

v16.0.0

Compare Source

Major Changes
  • #​1546 158d15c Thanks @​iiroj! - Processes are spawned using nano-spawn instead of execa. If you are using Node.js scripts as tasks, you might need to explicitly run them with node, especially when using Windows:

    {
      "*.js": "node my-js-linter.js"
    }
  • #​1546 158d15c Thanks @​iiroj! - The --shell flag has been removed and lint-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 "$@​":


Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 05:59 AM, only on Monday ( * 0-5 * * 1 ) in timezone Europe/Berlin, Automerge - Monday through Friday ( * * * * 1-5 ) in timezone Europe/Berlin.

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

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 if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from a team as a code owner July 7, 2025 01:37
@changeset-bot
Copy link

changeset-bot bot commented Jul 7, 2025

⚠️ No Changeset found

Latest commit: 5a3b5f6

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@renovate renovate bot force-pushed the renovate/major-major-updates branch 6 times, most recently from 8fa307f to 5f8d104 Compare July 10, 2025 10:05
@renovate renovate bot force-pushed the renovate/major-major-updates branch 6 times, most recently from b032d08 to 4b6f56b Compare July 21, 2025 14:05
@renovate renovate bot force-pushed the renovate/major-major-updates branch 4 times, most recently from 1e3b528 to aebab0e Compare July 29, 2025 07:49
@renovate renovate bot force-pushed the renovate/major-major-updates branch 3 times, most recently from 4b4b421 to 1ecaeea Compare August 9, 2025 00:30
@renovate renovate bot force-pushed the renovate/major-major-updates branch 7 times, most recently from a26b163 to df9be51 Compare August 14, 2025 11:09
@renovate renovate bot force-pushed the renovate/major-major-updates branch 7 times, most recently from eb9b70a to ecc3d43 Compare October 14, 2025 04:44
@renovate renovate bot force-pushed the renovate/major-major-updates branch 5 times, most recently from 47f28dc to 3585ef0 Compare October 21, 2025 06:41
@renovate renovate bot force-pushed the renovate/major-major-updates branch 6 times, most recently from 03e13be to 275cc2b Compare October 31, 2025 02:54
@renovate renovate bot force-pushed the renovate/major-major-updates branch 4 times, most recently from 591040c to 4dc4782 Compare November 10, 2025 13:07
@renovate renovate bot force-pushed the renovate/major-major-updates branch 6 times, most recently from 046d0b9 to 4fc1961 Compare November 12, 2025 14:27
@renovate renovate bot force-pushed the renovate/major-major-updates branch from 4fc1961 to 5a3b5f6 Compare November 12, 2025 14:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant