process-wrap 8.0.2

Wrap a Command, to spawn processes in a group or session or job etc
Documentation
# Changelog

All notable changes to this project will be documented in this file.

See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.

---
## [8.0.2]https://github.com/watchexec/process-wrap/compare/v8.0.1..8.0.2 - 2024-05-31


- **Deps:** Add tracing feature to remove tracing dep if wanted - ([9f64922]https://github.com/watchexec/process-wrap/commit/9f649226dd409f951a0f985cf2717cbe489deba6)

---
## [8.0.1]https://github.com/watchexec/process-wrap/compare/v8.0.0..8.0.1 - 2024-05-31


- **Deps:** Turn futures into an optional dependency (#7) - ([0c8b54b]https://github.com/watchexec/process-wrap/commit/0c8b54b0a1fcc56a63bc44ba0bebb5c1da3022f9)

---
## [8.0.0]https://github.com/watchexec/process-wrap/compare/v7.1.0..8.0.0 - 2024-04-20


- **API change:** Add explicit Send + Sync bounds - ([6580a62]https://github.com/watchexec/process-wrap/commit/6580a62ce7e67a9c24a4ff7670573865de850737)

---
## [7.1.0]https://github.com/watchexec/process-wrap/compare/v7.0.1..7.1.0 - 2024-04-20


- **Feature:** Add Clone and Copy derives where possible - ([bfd45e0]https://github.com/watchexec/process-wrap/commit/bfd45e0e400551bcd749e76149961ccb56e532fc)
- **Feature:** Add reset-sigmask wrapper - ([19d27d6]https://github.com/watchexec/process-wrap/commit/19d27d630cf136bb5d24f08974f736429677cdc8)

---
## [7.0.1]https://github.com/watchexec/process-wrap/compare/v7.0.0..7.0.1 - 2024-04-16


- **API change:** Remove re-export of nix Signal - ([a1066a7]https://github.com/watchexec/process-wrap/commit/a1066a795fe3279d7e43071ffc536082041fb16a)
- **Documentation:** Yank 7.0.0 - ([f7bbb36]https://github.com/watchexec/process-wrap/commit/f7bbb36c77618a91947fa84029cd47e7241e6fd7)
- **Documentation:** Fix doctests - ([191b8d6]https://github.com/watchexec/process-wrap/commit/191b8d61a51acbd43339aeae2f60aeb278ccef15)

---
## ~~[7.0.0]https://github.com/watchexec/process-wrap/compare/v6.0.1..7.0.0 - 2024-04-16~~ yanked


- **API change:** Remove nix types from public API - ([7de6ac0]https://github.com/watchexec/process-wrap/commit/7de6ac0a3d331d471e6cf09f0d565547cc49708f)
- **Deps:** Bump the cargo group with 1 update - ([d542c6e]https://github.com/watchexec/process-wrap/commit/d542c6ed922c8508f6af8366801c59d144330ead)
- **Deps:** Bump the cargo group with 1 update (#4) - ([fa44e91]https://github.com/watchexec/process-wrap/commit/fa44e91d0f8ba8d463812896a634a2380f4ef7f9)
- **Deps:** Upgrade windows to 0.56 - ([7f2a280]https://github.com/watchexec/process-wrap/commit/7f2a28098bb3cf028609d59a24ebd7f91a45e22c)
- **Documentation:** Fix progress->process in repo name in changelog - ([e8fb3a1]https://github.com/watchexec/process-wrap/commit/e8fb3a1ce81587f809a6773ce17297f1935e42f8)
- **Feature:** Add underlying Command accessors to *CommandWrap - ([2e2f548]https://github.com/watchexec/process-wrap/commit/2e2f548083cf2fe895c4cb03648138a89c569e2a)
- **Feature:** Add pgid accessor to ProcessGroupChild - ([2e2f548]https://github.com/watchexec/process-wrap/commit/2e2f548083cf2fe895c4cb03648138a89c569e2a)
- **Refactor:** Don't require nix::Pid on the public API - ([fd5f5e3]https://github.com/watchexec/process-wrap/commit/fd5f5e32fb9ae902e6cec2d18fe74f54b05c6dac)
- **Test:** Multiprocess behaviour - ([bbe9eed]https://github.com/watchexec/process-wrap/commit/bbe9eede1b6bb6fb522bcc80ebd21210f42c0882)
- **Test:** Multiproc tests for linux specifically - ([bd268d2]https://github.com/watchexec/process-wrap/commit/bd268d228cf0083decce6c72ff13a7ed60b74d4d)
- **Test:** Multiproc for std - ([35270b8]https://github.com/watchexec/process-wrap/commit/35270b82b9f1e5b5aa569103cfafd07ed85e9f74)

---
## [6.0.1]https://github.com/watchexec/process-wrap/compare/v6.0.0..6.0.1 - 2024-03-11


- **Bugfix:** Std doesn't have kill-on-drop - ([5eaef93]https://github.com/watchexec/process-wrap/commit/5eaef93d770ebd2c2307347f1d9a35b25a1dc2c1)
- **Bugfix:** Enable kill-on-drop (tokio only) by default - ([5eaef93]https://github.com/watchexec/process-wrap/commit/5eaef93d770ebd2c2307347f1d9a35b25a1dc2c1)
- **Documentation:** Document that kill-on-drop is Tokio-only - ([7437914]https://github.com/watchexec/process-wrap/commit/74379146c327d8ff68ac64ce224ec0c213af34c0)
- **Documentation:** Fix changelog style for 6.0.0 - ([fc158c9]https://github.com/watchexec/process-wrap/commit/fc158c90ece5ecb47f4fe014e02085d80302f660)

---
## [6.0.0]https://github.com/watchexec/process-wrap/compare/v5.0.1..6.0.0 - 2024-03-11


- **Deps:** Upgrade nix to 0.28 and windows to 0.54 - ([0d24385]https://github.com/watchexec/process-wrap/commit/0d243853cf99324a46f32cc6f08a2a6b27c9b91d)
- **Documentation:** Enable doc_auto_cfg for docsrs - ([d143b09]https://github.com/watchexec/process-wrap/commit/d143b090207608a7ec1c93df125bb096a15d2e8a)
- **Documentation:** Correct COPYRIGHT and CITATION.cff for new name - ([a04124f]https://github.com/watchexec/process-wrap/commit/a04124f0597a41ee01c63634592a971b955e659d)
- **Feature:** Instrument internals (with tracing) - ([5ee79a7]https://github.com/watchexec/process-wrap/commit/5ee79a722efcdda10776cf2c70563cc4b00cc33b)
- **Repo:** Do versions with cargo-release and git-cliff - ([869dbf8]https://github.com/watchexec/process-wrap/commit/869dbf8477f1448fb17738bf6e46785f2e8b1044)
- **Repo:** Add dependabot config - ([5a881b2]https://github.com/watchexec/process-wrap/commit/5a881b2b87ec3752f221be5c46146432b3ced3e8)
- **Repo**: Rename to `process-wrap` and rearchitect.
- **Repo**: Require Rust 1.75 for async trait in trait.
- **Tweak:** Restore Signal re-export on unix - ([fe62ff2]https://github.com/watchexec/process-wrap/commit/fe62ff22bf24a079569a081d34f7c60e068d6e54)
- **Tweak**: Windows: setting `CREATE_SUSPENDED` leaves the process suspended after spawn.

## 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