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.
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 |
|:-:|
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)
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)
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.
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>
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 |
|:-:|
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 |
|:-:|
- 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
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 |
|:-:|
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 |
|:-:|
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 |
|:-:|
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 |
|:-:|
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>