Skip to content

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github May 12, 2025

Bumps lint-staged from 15.5.1 to 16.0.0.

Release notes

Sourced from lint-staged's releases.

v16.0.0

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 "$@":

    # my-script.sh
    #!/bin/bash
    echo "Staged files: $@"

    and

    { "*.js": "my-script.sh" }

    If you were using the shell option to avoid passing filenames to tasks, for example bash -c 'tsc --noEmit', use the function syntax instead:

    export default { '*.ts': () => 'tsc --noEmit' }
  • #1546 158d15c Thanks @​iiroj! - Validation for deprecated advanced configuration has been removed. The advanced configuration was removed in lint-staged version 9 and until now validation has failed if advanced configuration options were detected. Going forward the entire configuration will be treated with the same logic and if these advanced options are still present, they might be treated as valid globs for staged files instead.

  • #1546 158d15c Thanks @​iiroj! - The lowest supported Node.js version is 20.18. Please upgrade your Node.js version.

Minor Changes

  • #1401 27110ef Thanks @​RohitLuthra19! - Added support for directly running functions on staged files. To configure a function task, use an object with a title and the task itself:

    export default {
      '*.js': {
        title: 'My task',
        task: async (files) => {
          console.log('Staged JS files:', files)
        },
      },
    }

... (truncated)

Changelog

Sourced from lint-staged's changelog.

16.0.0

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 "$@":

    # my-script.sh
    #!/bin/bash
    echo "Staged files: $@"

    and

    { "*.js": "my-script.sh" }

    If you were using the shell option to avoid passing filenames to tasks, for example bash -c 'tsc --noEmit', use the function syntax instead:

    export default { '*.ts': () => 'tsc --noEmit' }
  • #1546 158d15c Thanks @​iiroj! - Validation for deprecated advanced configuration has been removed. The advanced configuration was removed in lint-staged version 9 and until now validation has failed if advanced configuration options were detected. Going forward the entire configuration will be treated with the same logic and if these advanced options are still present, they might be treated as valid globs for staged files instead.

  • #1546 158d15c Thanks @​iiroj! - The lowest supported Node.js version is 20.18. Please upgrade your Node.js version.

Minor Changes

  • #1401 27110ef Thanks @​RohitLuthra19! - Added support for directly running functions on staged files. To configure a function task, use an object with a title and the task itself:

    export default {
      '*.js': {
        title: 'My task',
        task: async (files) => {
          console.log('Staged JS files:', files)
        },
      },
    }

... (truncated)

Commits
  • dad5490 chore(changeset): release
  • 1c19e82 build(deps): update dependencies and require Node.js 20.18
  • 08cf8f5 docs: update README.md and bump nano-spawn as major change
  • 276dcc8 refactor: simplify config validation
  • d4b7cac test: update tests
  • 0ee9ab8 fix: update TypeScript type definitions
  • 12525b2 refactor: rename functions
  • 541c353 refactor: separate "make cmd tasks" and "make function tasks"
  • 27110ef feat: added support for custom configuration
  • 52366f9 ci: update Node.js versions used in CI
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 15.5.1 to 16.0.0.
- [Release notes](https://github.com/lint-staged/lint-staged/releases)
- [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md)
- [Commits](lint-staged/lint-staged@v15.5.1...v16.0.0)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-version: 16.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added [Type] Enhancement A suggestion for improvement of an existing feature javascript Pull requests that update Javascript code no milestone PRs that do not have a defined milestone for release labels May 12, 2025
@westonruter
Copy link
Member

Note regarding:

'**/*.{js,ts}': ( files ) => {
return [ `npm run lint-js -- ${ joinFiles( files ) }`, `npm run tsc` ];
},

See second changelog entry at https://github.com/lint-staged/lint-staged/releases/tag/v16.0.0

Copy link

github-actions bot commented May 13, 2025

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: westonruter <[email protected]>
Co-authored-by: ShyamGadde <[email protected]>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Copy link
Member

@westonruter westonruter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated the lint-staged config to eliminate the micromatch dependency. I also simplified the configuration. When a lint-staged command is a function, it does not automatically pass the files to the function, which is what we want to for PHPStan and TypeScript. But when the command is a string, then it does automatically pass the files.

This also updates the TypeScript config so that the lint-staged config is also checked, in addition to other JS files not in the plugins directory. This PR also fixes a couple issues uncovered by this.

@westonruter westonruter requested a review from ShyamGadde May 19, 2025 01:19
Copy link

codecov bot commented May 19, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 72.50%. Comparing base (900b6e7) to head (2b604a4).
Report is 5 commits behind head on trunk.

Additional details and impacted files
@@           Coverage Diff           @@
##            trunk    #2006   +/-   ##
=======================================
  Coverage   72.50%   72.50%           
=======================================
  Files          88       88           
  Lines        7144     7144           
=======================================
  Hits         5180     5180           
  Misses       1964     1964           
Flag Coverage Δ
multisite 72.50% <ø> (ø)
single 40.14% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@ShyamGadde ShyamGadde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@westonruter westonruter merged commit 0fd1a16 into trunk May 19, 2025
20 checks passed
@westonruter westonruter deleted the dependabot/npm_and_yarn/lint-staged-16.0.0 branch May 19, 2025 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
javascript Pull requests that update Javascript code no milestone PRs that do not have a defined milestone for release [Type] Enhancement A suggestion for improvement of an existing feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants