Skip to content

chore(deps): update dependency watchexec/watchexec to v2.7.0 - #1695

Merged
wancup merged 2 commits into
mainfrom
renovate/watchexec-watchexec-2.x
Sep 11, 2026
Merged

chore(deps): update dependency watchexec/watchexec to v2.7.0#1695
wancup merged 2 commits into
mainfrom
renovate/watchexec-watchexec-2.x

Conversation

@renovate

@renovate renovate Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
watchexec/watchexec minor v2.5.1v2.7.0

Release Notes

watchexec/watchexec (watchexec/watchexec)

v2.7.0: CLI v2.7.0

Compare Source

Watchexec now only traverses and watches directories that are expected to produce events (according to filter/ignore files and patterns). This means that if you have a very large directory tree, and 90% of it is gitignored, Watchexec will no longer go through and add watches to that 90% at all. Thus:

  • startup in those cases should be much faster and less resource-intensive
  • ongoing performance should also improve (as there will be vastly fewer events to process), though that may be less perceptible

The way this is achieved is by handling all directory traversal/recursion within Watchexec, instead of letting the Notify library handle it. This is a large amount of work and code, and it's expected that there will be new bugs as a result. However, this limitation was also the underlying source of a number of long-standing bugs, and I quite look forward to close some very old issues as a result.

:; hyperfine 'watchexec-2.7.0 -1 echo' 'watchexec-2.6.1 -1 echo'
Benchmark 1: watchexec-2.7.0 -1 echo
  Time (mean ± σ):     158.9 ms ±   2.2 ms    [User: 199.6 ms, System: 63.3 ms]
  Range (min … max):   155.8 ms … 163.1 ms    18 runs

Benchmark 2: watchexec-2.6.1 -1 echo
  Time (mean ± σ):     387.1 ms ±   2.4 ms    [User: 157.5 ms, System: 366.3 ms]
  Range (min … max):   382.0 ms … 390.0 ms    10 runs

Summary
  watchexec-2.7.0 -1 echo ran
    2.44 ± 0.04 times faster than watchexec-2.6.1 -1 echo

(The -1 option is a hidden test-only option which starts watchexec normally, runs the command, and exits.)

On BSD, the kqueue backend has been disabled; those platforms will use polling instead. kqueue is not designed for this kind of thing, and using it thus has significant downsides, such as heavy kernel resource usage, as well as correctness bugs. FreeBSD 14 and up have native inotify support; Watchexec does not yet take advantage of this but will in the future (it comes in with Notify 9, which is currently in RC).

Watching a single file no longer stops watching it when it is replaced (#​190). Similarly, though this is less common, if a folder being watched (using -W or -w) is deleted and recreated, Watchexec used to lose the watch and no longer produce events. That was because the watch was placed on the file (or folder) object, not on a pathname string, and replacing the object naturally makes the watch disappear along with the old version of the object. Watchexec now watches from one path segment above, so it can notice when a watch gets replaced; because it also does directory tree filtering, this is not significantly more expensive.

v2.6.1: CLI v2.6.1

Compare Source

Identical to 2.6.0, just fixing the build.

v2.6.0: CLI v2.6.0

Compare Source

New

  • Windows ARM64 (#​1072, thanks @​meop)
  • --no-follow-symlinks (#​1041)
  • In interactive mode, add a way to stop (s) the currently running command (#​1047)
  • Propagate job-control signals: Ctrl-Z now pauses the command too (#​712)

Library fixes

CLI fixes


Configuration

📅 Schedule: (UTC)

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


  • 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 commented Aug 30, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@wancup
wancup merged commit 8fc5b5e into main Sep 11, 2026
2 checks passed
@wancup
wancup deleted the renovate/watchexec-watchexec-2.x branch September 11, 2026 17:23
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.

1 participant