Commit graph

323 commits

Author SHA1 Message Date
thislooksfun
3ad0e1aa57
Respect applies_in scope when processing nested ignores (#746)
Previously, when importing multiple nested ignore files, some info from
the parent—notably the "root" path—would be inherited. This lead to some
problems with matching of "pseudo-absolute" rules (those with a leading
slash) in nested ignore files (see #745 for more details). To fix this,
we now fully isolate each path of the tree during the import process.
This leads to more accurate, though unfortunately slightly less
performant, rule matching. The only time a builder is reused now is if
two input files have the same `applies_in` value, in which case they are
merged together.

I have added tests to ensure correctness and prevent a regression. I
also was careful to make sure no previous tests broke in any way (all
changes to existing tests were made in isolation, and thus are not
affected by the logic changes). As far as I can tell, the only behavior
change is that now some previously-ignored rules will now be applied,
which could, in very rare configurations, lead to files being
unintentionally ignored. However, due to the aforementioned logic bug,
those files were all ignored by git already, so I suspect the number of
people actually caught off guard by this change to be extremely low,
likely zero.

Fixes #745.
2023-12-30 14:12:59 +13:00
Félix Saparelli
0a6811f1fb
Update cargo.lock (#738) 2023-12-19 22:34:29 +00:00
github-actions[bot]
e9cce54179
release: watchexec-cli v1.24.2 (#736)
Co-authored-by: github-actions <github-actions@github.com>
2023-12-19 13:10:59 +00:00
github-actions[bot]
6ecc5569e4
release: watchexec-supervisor v1.0.3 (#735)
Co-authored-by: github-actions <github-actions@github.com>
2023-12-19 11:31:34 +00:00
Félix Saparelli
b4a64a096a
Add eyra support as a feature (#728) 2023-12-13 14:08:03 +13:00
github-actions[bot]
a72ff0e142
release: watchexec-cli v1.24.1 (#722)
Co-authored-by: github-actions <github-actions@github.com>
2023-12-11 12:30:05 +00:00
github-actions[bot]
4026938c18
release: watchexec-filterer-tagged v1.0.0 (#719)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-12-10 22:45:04 +00:00
Félix Saparelli
0557d70963
watchexec-filterers: fix bad publish (#715) 2023-12-09 11:24:00 +00:00
github-actions[bot]
477d59d319
release: watchexec-cli v1.24.0 (#699)
Co-authored-by: Félix Saparelli <felix@passcod.name>
Co-authored-by: github-actions <github-actions@github.com>
2023-12-09 10:52:40 +00:00
github-actions[bot]
a166b3bc9f
release: watchexec-supervisor v1.0.2 (#713)
Co-authored-by: github-actions <github-actions@github.com>
2023-12-09 10:43:55 +00:00
github-actions[bot]
deb6072a26
release: watchexec-signals v2.1.0 (#711)
Co-authored-by: github-actions <github-actions@github.com>
2023-12-09 23:25:41 +13:00
github-actions[bot]
44d794c921
release: watchexec-supervisor v1.0.1 (#708)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-11-29 06:10:10 +00:00
github-actions[bot]
c75134d255
release: watchexec-events v2.0.1 (#707)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-11-29 05:56:23 +00:00
github-actions[bot]
e90bf3756e
release: watchexec v3.0.1 (#706)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-11-29 05:41:27 +00:00
github-actions[bot]
91b34bc96e
release: watchexec-signals v2.0.0 (#705)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-11-29 05:18:03 +00:00
github-actions[bot]
c4dceb2d88
release: watchexec-events v2.0.0 (#704)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-11-29 05:15:33 +00:00
Félix Saparelli
9af9189ac4
Add --quiet, --timings, --colo[u]r, --bell (#698) 2023-11-27 12:12:51 +00:00
github-actions[bot]
16e606e944
release: watchexec-filterer-globset v2.0.0 (#696)
Co-authored-by: github-actions <github-actions@github.com>
2023-11-27 10:52:28 +00:00
github-actions[bot]
e7580b0a35
release: watchexec-filterer-ignore v2.0.0 (#694)
Co-authored-by: github-actions <github-actions@github.com>
2023-11-27 10:38:06 +00:00
github-actions[bot]
d9f6d20b6b
release: watchexec v3.0.0 (#692)
Co-authored-by: github-actions <github-actions@github.com>
2023-11-26 04:54:43 +00:00
github-actions[bot]
fb2c5449af
release: watchexec-supervisor v1.0.0 (#690)
Co-authored-by: github-actions <github-actions@github.com>
2023-11-26 04:23:20 +00:00
github-actions[bot]
64bdf7c9d5
release: ignore-files v1.3.2 (#689)
Co-authored-by: github-actions <github-actions@github.com>
2023-11-26 04:22:00 +00:00
github-actions[bot]
65e2db31bc
release: watchexec-events v1.1.0 (#688)
Co-authored-by: github-actions <github-actions@github.com>
2023-11-26 03:33:47 +00:00
github-actions[bot]
f66aa5d808
release: project-origins v1.2.1 (#687)
Co-authored-by: github-actions <github-actions@github.com>
2023-11-26 03:30:39 +00:00
github-actions[bot]
efacb29f86
release: watchexec-signals v1.0.1 (#686)
Co-authored-by: github-actions <github-actions@github.com>
2023-11-26 03:29:53 +00:00
github-actions[bot]
10556dea11
release: bosion v1.0.2 (#685)
Co-authored-by: github-actions <github-actions@github.com>
2023-11-26 03:29:49 +00:00
Félix Saparelli
a13bc429eb
Watchexec lib v3 (#601)
Co-authored-by: emilHof <95590295+emilHof@users.noreply.github.com>
2023-11-25 20:33:44 +00:00
github-actions[bot]
19a3fc9189
release: watchexec-cli v1.23.0 (#647)
Co-authored-by: github-actions <github-actions@github.com>
2023-08-30 06:18:56 +00:00
Félix Saparelli
4c3b9f0960
Clippy and update lockfile (#646) 2023-08-30 03:43:57 +00:00
github-actions[bot]
96bf3d231e
release: bosion v1.0.1 (#623)
Co-authored-by: github-actions <github-actions@github.com>
2023-07-02 23:47:13 +00:00
Jiahao XU
f08002aaf6
dep: bump gix from v0.44.1 => v0.47 (#619) 2023-06-25 23:01:16 +00:00
github-actions[bot]
d25ae71787
release: ignore-files v1.3.1 (#600)
Co-authored-by: github-actions <github-actions@github.com>
2023-06-04 20:53:24 +12:00
github-actions[bot]
eb19f83761
release: watchexec-cli v1.22.3 (#590)
Co-authored-by: github-actions <github-actions@github.com>
2023-05-14 10:51:37 +00:00
github-actions[bot]
1d87097b3e
release: watchexec-filterer-ignore v1.2.1 (#589)
Co-authored-by: github-actions <github-actions@github.com>
2023-05-14 10:04:52 +00:00
github-actions[bot]
7c1c726d85
release: ignore-files v1.3.0 (#588)
Co-authored-by: github-actions <github-actions@github.com>
2023-05-14 09:31:05 +00:00
Félix Saparelli
1028caa389
Update deps (#583) 2023-05-14 05:17:14 +00:00
Jonathan Cammisuli
3e79957ad3
Handle nested gitignores (#580) 2023-05-08 22:13:04 +00:00
dependabot[bot]
299a01dcf6
Bump enumflags2 from 0.7.5 to 0.7.7 (#573)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-07 11:26:18 +12:00
dependabot[bot]
bccc0292a0
Bump h2 from 0.3.16 to 0.3.17 (#572)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-14 06:09:51 +12:00
Caleb Schoepp
8e91d26ef6
Update clearscreen requirement from 2.0.0 to 2.0.1 in /crates/lib (#570) 2023-04-06 00:48:48 +00:00
github-actions[bot]
e8391cd1d0
release: watchexec-cli v1.22.2 (#560)
Co-authored-by: github-actions <github-actions@github.com>
2023-03-22 11:37:49 +00:00
github-actions[bot]
4294bd42da
release: watchexec-cli v1.22.1 (#551)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-03-22 03:54:07 +00:00
github-actions[bot]
f0d115f600
release: watchexec v2.3.0 (#550)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-03-22 02:02:01 +00:00
Félix Saparelli
59044a5cba
Add Outcome::Race (#548) 2023-03-22 14:47:26 +13:00
Félix Saparelli
c166823cb6
Log important beats as info (#547) 2023-03-22 01:23:00 +00:00
github-actions[bot]
bfb0a0648a
release: watchexec-filterer-tagged v0.3.0 (#539)
Co-authored-by: github-actions <github-actions@github.com>
2023-03-18 15:06:57 +00:00
github-actions[bot]
c337ebca86
release: watchexec-cli v1.22.0 (#538)
Co-authored-by: github-actions <github-actions@github.com>
2023-03-18 15:06:47 +00:00
github-actions[bot]
a3ebfcceef
release: watchexec-filterer-globset v1.2.0 (#537)
Co-authored-by: github-actions <github-actions@github.com>
2023-03-18 13:38:37 +00:00
github-actions[bot]
cba452edf2
release: watchexec-filterer-ignore v1.2.0 (#536)
Co-authored-by: github-actions <github-actions@github.com>
2023-03-18 12:58:14 +00:00
github-actions[bot]
7444ec133f
release: watchexec v2.2.0 (#535)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-03-19 01:34:55 +13:00
github-actions[bot]
26679721aa
release: ignore-files v1.2.0 (#534)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-03-19 01:08:22 +13:00
github-actions[bot]
d8f997e104
release: watchexec-events v1.0.0 (#533)
Co-authored-by: github-actions <github-actions@github.com>
2023-03-18 11:27:38 +00:00
github-actions[bot]
d6ae98e644
release: watchexec-signals v1.0.0 (#532)
Co-authored-by: github-actions <github-actions@github.com>
2023-03-18 11:09:41 +00:00
Félix Saparelli
9ae16187f0
Set new crates to zero for release (#531) 2023-03-18 10:43:29 +00:00
Félix Saparelli
80e18ea145
Rename --manpage to --manual (#529) 2023-03-18 22:34:33 +13:00
Félix Saparelli
8156864bf3
--emit-events-to (#515) 2023-03-18 21:32:24 +13:00
github-actions[bot]
639bef9e31
release: bosion v1.0.0 (#520)
Co-authored-by: github-actions <github-actions@github.com>
2023-03-05 03:47:58 +00:00
Félix Saparelli
f76b16c4f4
Add bosion crate: build-time info (#516) 2023-03-05 03:26:23 +00:00
Félix Saparelli
14f53a6bf5
Clap 4 and revamp manpage, completions (#513) 2023-03-05 14:57:34 +13:00
Félix Saparelli
c87a7343b3
Update deps (#511) 2023-03-04 04:21:38 +13:00
David Perez
70beb51ab5
Switch to gix-config because git-config is deprecated (#502)
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-03-02 16:17:19 +13:00
github-actions[bot]
d4b86366a2
release: watchexec-cli v1.21.1 (#499)
Co-authored-by: github-actions <github-actions@github.com>
2023-02-14 23:56:59 +00:00
github-actions[bot]
84d3947247
release: watchexec v2.1.1 (#498)
Co-authored-by: github-actions <github-actions@github.com>
2023-02-14 23:04:21 +00:00
Félix Saparelli
90eb9cae03
Reset process sigmask for Rust 1.66 (#494) 2023-02-15 11:11:57 +13:00
dependabot[bot]
2c06f06ee1
Bump tokio from 1.23.1 to 1.24.2 (#491)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-10 15:55:29 +13:00
github-actions[bot]
2479aaec4f
release: watchexec-cli v1.21.0 (#478)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-01-09 01:09:21 +00:00
github-actions[bot]
4e3e7a140a
release: watchexec-filterer-tagged v0.2.0 (#477)
Co-authored-by: github-actions <github-actions@github.com>
2023-01-09 00:34:40 +00:00
github-actions[bot]
daa11aad09
release: watchexec-filterer-globset v1.1.0 (#476)
Co-authored-by: github-actions <github-actions@github.com>
2023-01-09 00:32:37 +00:00
github-actions[bot]
7a8680e937
release: watchexec-filterer-ignore v1.1.0 (#474)
Co-authored-by: github-actions <github-actions@github.com>
2023-01-09 00:15:16 +00:00
github-actions[bot]
ac2a14fd80
release: watchexec v2.1.0 (#472)
Co-authored-by: github-actions <github-actions@github.com>
2023-01-09 00:01:35 +00:00
github-actions[bot]
33f5ba5ef9
release: ignore-files v1.1.0 (#471)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-01-08 17:12:08 +00:00
github-actions[bot]
f55d669e3c
release: project-origins v1.2.0 (#470)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2023-01-08 16:05:49 +00:00
dependabot[bot]
5d0920c5c9
Bump tokio from 1.21.0 to 1.23.1 (#467) 2023-01-07 00:10:45 +00:00
Félix Saparelli
dc98370492
Clippy fixes (#465) 2023-01-07 02:53:49 +13:00
Michael Jones
f613ba1a79
Add option to exit when stdin ends (#449)
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-12-01 23:19:04 +00:00
dependabot[bot]
e6bde7a48d
Bump axum-core from 0.2.7 to 0.2.9 (#439) 2022-11-24 23:13:36 +00:00
github-actions[bot]
c7c9b30636
release: watchexec-cli v1.20.6 (#415)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-07 05:30:28 +00:00
github-actions[bot]
695b36e345
release: watchexec v2.0.2 (#414)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-07 05:08:20 +00:00
github-actions[bot]
4ef180f486
release: watchexec-filterer-globset v1.0.1 (#410)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-07 04:31:39 +00:00
github-actions[bot]
6642362025
release: watchexec-filterer-tagged v0.1.1 (#411)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-07 04:11:47 +00:00
github-actions[bot]
d168ed9676
release: ignore-files v1.0.1 (#407)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-07 03:50:18 +00:00
github-actions[bot]
c46187f92d
release: project-origins v1.1.1 (#408)
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-09-07 03:29:23 +00:00
Félix Saparelli
24a3a3c2f2
Deps: update miette and git-config (#406) 2022-09-07 02:52:53 +00:00
Félix Saparelli
6c40113e9e
Run cargo update (#392) 2022-09-07 13:15:38 +12:00
github-actions[bot]
79bcf6838d
release: watchexec v2.0.1 (#390)
Co-authored-by: github-actions <github-actions@github.com>
2022-09-07 00:57:50 +00:00
Félix Saparelli
f684db57ee
Update Notify to stable (#384) 2022-09-02 09:12:47 +00:00
github-actions[bot]
ce68338381 release: project-origins v1.1.0 (#385)
This is a release PR for **project-origins** to version **1.1.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/project-origins
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-08-24 09:23:52 +00:00
github-actions[bot]
f866e6f498 release: cli v1.20.5 (#374)
This is a release PR for **cli** to version **1.20.5**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|

---

_Edit release notes into the section below:_

<!-- do not change or remove this heading -->
### Release notes

- Fix: mimalloc was set as the global allocator in the watchexec library, instead of leaving it to downstreams. (#369)
- Releng: s390x and ppc64le targets were added to be prebuilt. (#373)
2022-08-03 23:10:41 +00:00
github-actions[bot]
bb9021eec7 release: cli v1.20.4 (#366)
This is a release PR for **cli** to version **1.20.4**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|

---

_Edit release notes into the section below:_

<!-- do not change or remove this heading -->
### Release notes

- Remove CLI help tests. They'll be replaced with brand new integration testing that's not obnoxious. (#362, #363, #365)
- Fix the install filenames for first-party RPM packagings, and possibly for DEBs as well. (#292, #364)
2022-07-01 14:13:39 +00:00
Félix Saparelli
f0d64f07df Remove CLI help tests (#363)
Fixes #362

I've been working to remake the tests better / actually valuable but this is a quick "fix" for that issue... in any case help tests would have been gone anyway.
2022-07-01 13:39:43 +00:00
github-actions[bot]
f9ec29a60b release: cli v1.20.3 (#359)
This is a release PR for **cli** to version **1.20.3**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|

---

_Edit release notes into the section below:_

<!-- do not change or remove this heading -->
### Release notes

- Dependencies are set manually for first-party deb and rpm packages, so they should install without error. A note that these are provided on a best-effort basis and not tested; when available you should prefer your distribution's packaging. (#292, #358)

Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-06-29 03:48:50 +00:00
github-actions[bot]
64895132aa release: cli v1.20.2 (#357)
This is a release PR for **cli** to version **1.20.2**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-28 14:15:48 +00:00
github-actions[bot]
50e2f0acbf release: cli v1.20.1 (#352)
This is a release PR for **cli** to version **1.20.1**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-28 12:43:58 +00:00
Félix Saparelli
4970646f1a Fix logging initialisation (#348)
- Fixes #345 (first crash, related to `RUST_LOG` being set)
- Adds multiple warnings when non-standard logging or build options are set
- Fixes the (internal) crate name of the cli so that the log target `watchexec_cli` works
- Fixes the verbosity config to target the actual crate names (snake vs kebab case)
- Fixes a usage error related to tracing's `log` compatibility
2022-06-28 12:21:19 +00:00
github-actions[bot]
77d4b03398 release: cli v1.20.0 (#337)
This is a release PR for **cli** to version **1.20.0**.

Upon merging, this will automatically build the CLI and create a GitHub release. You still need to manually publish the cargo crate.

```
$ cd crates/cli
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-23 09:57:55 +00:00
github-actions[bot]
d71412cd12 release: filterer-tagged v0.1.0 (#336)
This is a release PR for **filterer-tagged** to version **0.1.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/filterer/tagged
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-23 09:24:07 +00:00
github-actions[bot]
9c343a6eb2 release: filterer-globset v1.0.0 (#335)
This is a release PR for **filterer-globset** to version **1.0.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/filterer/globset
$ cargo publish
```

To merge this release, review the changes then say:

| bors r+ p=10 |
|:-:|
2022-06-23 03:33:20 +00:00
github-actions[bot]
5cf89eb7b4 release: filterer-ignore v1.0.0 (#333)
This is a release PR for **filterer-ignore** to version **1.0.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/filterer/ignore
$ cargo publish
```

To merge this release, review the changes then say:
| bors r+ p=10 |
|:-:|
2022-06-23 00:40:59 +00:00
github-actions[bot]
c3df998895 release: lib v2.0.0 (#329)
This is a release PR for **lib** to version **2.0.0**.

Upon merging, you will still need to manually publish the cargo crate.

```
$ cd crates/crates/lib
$ cargo publish
```

To merge this release, review the changes then say:

`bors r+ p=10`

Co-authored-by: Félix Saparelli <felix@passcod.name>
2022-06-17 00:29:33 +00:00
Félix Saparelli
adc4a0a576 Add --log-file so logs are easier to collect (#321) 2022-06-16 15:56:59 +00:00