# Changelog
## Next (YYYY-MM-DD)
## v5.0.1 (2023-11-18)
- Use [std's `process_group()`](doc.rust-lang.org/std/os/unix/process/trait.CommandExt.html#tymethod.process_group) ([#16](https://github.com/watchexec/command-group/issues/16)).
## v5.0.0 (2023-11-18)
- Change `UnixChildExt::signal` to take `&self` instead of `&mut self`.
- Grouped child `wait`s using upstream `::wait` and `::try_wait` in addition to the internal pgid-based logic, to help with cancellation.
- Optimisations in `tokio::Child::wait()`. ([#25](https://github.com/watchexec/command-group/issues/25), [#26](https://github.com/watchexec/command-group/issues/26))
## v4.1.0 (2023-11-05)
- Add `ErasedChild::id()` method.
## v4.0.0 (2023-11-05)
- Clarify why and in which situations `AsyncGroupChild::wait` may not behave as expected when cancelled.
- Add `AsyncGroupChild::start_kill` to align with Tokio's `Child::start_kill`.
- Change `AsyncGroupChild::kill` to also `wait()` on the child, to align with Tokio's `Child::kill`.
- Add `ErasedChild` abstraction to allow using the same type for grouped and ungrouped children.
## v3.0.0 (2023-10-30)
- Update `nix` to 0.27.
- Increase MSRV to 1.68 (within policy).
- Add note to documentation for Tokio `Child::wait` wrt cancel safety. ([#21](https://github.com/watchexec/command-group/issues/21))
## v2.1.1 (2023-10-30)
(Same as 3.0.0, but yanked due to breakage.)
## v2.1.0 (2023-03-04)
- Add new `.group()` builder API to allow setting Windows flags and use `kill_on_drop`. ([#15](https://github.com/watchexec/command-group/issues/15), [#17](https://github.com/watchexec/command-group/issues/17), [#18](https://github.com/watchexec/command-group/issues/18))
## v2.0.1 (2022-12-28)
- Fix bug on Windows where the wrong pointer was being null checked, leading to timeout errors. ([#13](https://github.com/watchexec/command-group/pull/13))
## v2.0.0 (2022-12-04)
- Increase MSRV to 1.60.0 and change policy for increasing it (no longer a breaking change).
- Wait for all processes in the process group, avoiding zombies. ([#7](https://github.com/watchexec/command-group/pull/7))
- Update `nix` to 0.26 and limit features. ([#8](https://github.com/watchexec/command-group/pull/8))
## v1.0.8 (2021-10-16)
- Bugfix: compiling would fail when Tokio was missing the `io-util` feature (not `io-std`).
## v1.0.7 (2021-10-16) (yanked)
- Bugfix: compiling would fail when Tokio was missing the `io-std` feature.
## v1.0.6 (2021-08-26)
- Correctly handle timeouts on Windows. ([#2](https://github.com/watchexec/command-group/issues/2), [#3](https://github.com/watchexec/command-group/pull/3))
## v1.0.5 (2021-08-13)
- Internal: change usage of `feature = "tokio"` to `feature = "with-tokio"`.
- Documentation: remove wrong mention of blocking reads on `AsyncGroupChild::wait_with_output()`.
## v1.0.4 (2021-07-26)
New: Tokio implementation, gated on the `with-tokio` feature.
## v1.0.3 (2021-07-21)
Bugfix: `GroupChild::try_wait()` would error if called after a child exited by itself.
## v1.0.2 (2021-07-21)
Bugfix: `GroupChild::try_wait()` and `::wait()` could not be called twice.
## v1.0.1 (2021-07-21)
Implement `Send`+`Sync` on `GroupChild` on Windows, and add a `Drop` implementation to close handles
too (whoops). Do our best when `.into_inner()` is used...
## v1.0.0 (2021-07-20)
Initial release