Skip to content

Commit

Permalink
chore(deps): update dependency watchexec to v2 (#1316)
Browse files Browse the repository at this point in the history
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [watchexec](https://togithub.com/watchexec/watchexec) | major |
`1.25.1` -> `2.0.0` |

---

### Release Notes

<details>
<summary>watchexec/watchexec (watchexec)</summary>

###
[`v2.0.0`](https://togithub.com/watchexec/watchexec/releases/tag/v2.0.0):
CLI v2.0.0

This is the first breaking release. Most of it is cleaning up a number
of deprecated options, and changing some defaults. The idea, however, is
to start a new era of Watchexec releases, where breaking changes are
allowed more easily (to give an idea of how breaking-change-averse the
project has been: this release was planned *in January 2022!* and
ever-delayed since).

Fear not! The cadence of breaking releases will be at most once or twice
a year, and whenever possible a deprecation will precede a break by at
least three months. Watchexec will remain a stable part of your
workflow, while allowing ourselves some evolution.

- Shell default changes to `$SHELL` when it is present.
([#&#8203;210](https://togithub.com/watchexec/watchexec/issues/210))
    Use `--shell=sh` to switch back if your `$SHELL` is something else.
- Shell default changes to Powershell on Windows when Watchexec detects
it is running in Powershell.
([#&#8203;80](https://togithub.com/watchexec/watchexec/issues/80))
Use `--shell=cmd` to switch back to CMD.EXE, or set the `SHELL`
environment variable.
A reminder that Windows 7 is *not* supported, and hasn't been for years.
-   `--on-busy-update` defaults to `do-nothing` now (was `queue`).
Events received while a command is running won't trigger a run of the
command immediately following this one.
-   `-W` / `--watch-when-idle` is removed, as it is now the default.
-   The default for `--stop-timeout` is now 10 seconds.
- `--debounce`, `--delay-run`, `--poll`, and `--stop-timeout` now prefer
durations with a unit, and warn if given unit-less durations. The
default units for these are millisecond for `--debounce` and `--poll`,
and seconds for `--delay-run` and `--stop-timeout`, which is a source of
confusion. Unit-less durations will be removed in a future breaking
release.
-   `--no-shell` is removed.
Use `--shell=none` instead. The `-n` short option remains as an alias to
`--shell=none`.
-   `-k` / `--kill` is removed.
    Use `--signal=KILL` instead.
-   `--changes-only` is removed.
    Use `--print-events` instead.
- `--emit-events-to` defaults to `none`, and the `environment` mode is
deprecated.
- `--emit-events-to` no longer accepts `stdin` (deprecated alias for
`stdio`) and `json-stdin`(deprecated alias for `json-stdio`).
-   `--no-ignore` is removed.
    Use `--no-project-ignore` instead.
-   `--no-environment` is deprecated.
- `--clear=reset` will reset the screen on graceful shutdown.
([#&#8203;797](https://togithub.com/watchexec/watchexec/issues/797))
-   `--no-process-group` is deprecated.
- Watchexec no longer warns (nor does anything else) when it sees the
deprecated `WATCHEXEC_FILTERER` environment variable.

#### Improvements

- New: `--wrap-process=MODE` lets you choose between using process
groups, process sessions, or nothing at all.
([#&#8203;794](https://togithub.com/watchexec/watchexec/issues/794))
- New: the `WATCHEXEC_TMPDIR` environment variable can be used to
customize where Watchexec will write temporary files, if for some reason
your `$TMPDIR` is unwritable.
([#&#8203;814](https://togithub.com/watchexec/watchexec/issues/814))
- Fix: watchexec no longer creates a temporary file at startup.
([#&#8203;814](https://togithub.com/watchexec/watchexec/issues/814))
- Fix: the screen is no longer cleared on all events, only when starting
a new process.
([#&#8203;809](https://togithub.com/watchexec/watchexec/issues/809))

#### Experimental new feature

As a treat, this release also features an experimental new option: `-j`
or `--filter-prog`, which lets you write *filter programs*.

##### `-j`, `--filter-prog EXPRESSION`

Provide your own custom filter programs in
[jaq](https://togithub.com/01mf02/jaq#examples) (similar to jq) syntax.
Programs are given an event in the same format as described in
`--emit-events-to` and must return a boolean. In addition to the jaq
stdlib, watchexec adds some custom filter definitions:

- `path | file_meta` returns file metadata or null if the file does not
exist.
- `path | file_size` returns the size of the file at path, or null if it
does not exist.
- `path | file_read(bytes)` returns a string with the first n bytes of
the file at path. If the file is smaller than n bytes, the whole file is
returned. There is no filter to read the whole file at once to encourage
limiting the amount of data read and processed.
- `string | hash`, and `path | file_hash` return the hash of the string
or file at path. No guarantee is made about the algorithm used: treat it
as an opaque value.
- `any | kv_store(key)`, `kv_fetch(key)`, and `kv_clear` provide a
simple key-value store. Data is kept in memory only, there is no
persistence. Consistency is not guaranteed.
- `any | printout`, `any | printerr`, and `any | log(level)` will print
or log any given value to stdout, stderr, or the log (levels = error,
warn, info, debug, trace), and pass the value through (so `[1] |
log("debug") | .[]` will produce a `1` and log `[1]`).

All filtering done with such programs, and especially those using kv or
filesystem access, is much slower than the other filtering methods. If
filtering is too slow, events will back up and stall watchexec. Take
care when designing your filters.

If the argument to this option starts with an '@&#8203;', the rest of
the argument is taken to be the path to a file containing a jaq program.

Jaq programs are run in order, after all other filters, and
short-circuit: if a filter (jaq or not) rejects an event, execution
stops there, and no other filters are run. Additionally, they stop after
outputting the first value, so you'll want to use 'any' or 'all' when
iterating, otherwise only the first item will be processed, which can be
quite confusing!

##### Examples:

Regexp ignore filter on paths:

```jq
all(.tags[] | select(.kind == "path"); .absolute | test("[.]test[.]js$")) | not
```

Pass any event that creates a file:

```jq
any(.tags[] | select(.kind == "fs"); .simple == "create")
```

Pass events that touch executable files:

```jq
any(.tags[] | select(.kind == "path" && .filetype == "file"); .absolute | metadata | .executable)
```

Ignore files that start with shebangs:

```jq
any(.tags[] | select(.kind == "path" && .filetype == "file"); .absolute | read(2) == "#!") | not
```

More examples can be found and contributed in the [discussion
thread](https://togithub.com/watchexec/watchexec/discussions/592)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/TBD54566975/ftl).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  • Loading branch information
renovate[bot] authored Apr 22, 2024
1 parent 4f055de commit ef8a343
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 1 deletion.
File renamed without changes.
2 changes: 1 addition & 1 deletion bin/watchexec

0 comments on commit ef8a343

Please sign in to comment.