Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add API to redirect os.Inherited streams globally to be consistent with std streams redirections #283

Merged
merged 10 commits into from
Jul 20, 2024

Conversation

lihaoyi
Copy link
Member

@lihaoyi lihaoyi commented Jul 19, 2024

Fixes #282

Unlike usage of System.in/System.out/System.err programmatically, or the scala.Console equivalents, output from subprocesses with os.Inherit is not affected by System.setIn/setOut/setErr. This is often counterintuitive, because you expect redirecting these streams to redirect all output, only to find output from subprocess leaking through a side channel to the original process in/out/err.

This PR adds the os.Inherit.in/out/err dynamic variables, which can be used to re-assign os.Inherit on a scoped threadlocal basis. This allows developers who use System.setOut or Console.withOut to also redirect subprocess output within the scope of the stdout redirect, without users working within those scopes to have to remember to redirect them manually at every callsite.

Because we do not control System.setOut or Console.withOut, there isn't really a way for us to detect and do this automatically (e.g. redirects may happen even before OS-Lib has been even classloaded) and so we have to rely on it being opt-in.

As an escape hatch, in case users do not want this behavior, we provide a os.Inherit0 redirect which performs identically to the original os.Inherit even in the process of redirecting os.Inherit.{in,out,err}

Covered by an added unit test

Copy link
Member

@lefou lefou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks reasonable. Can you add it to the documentation, too?

@lihaoyi
Copy link
Member Author

lihaoyi commented Jul 20, 2024

I added a line in the changelog; we can postpone adding it to the main readme body until after it is published to avoid confusion

@lefou
Copy link
Member

lefou commented Jul 20, 2024

IMHO, we shouldn't postpone the documentation of a new feature to a subsequent release. It would be missing in the tagged release then and not available for offline reading, for example.

We could add a since <next version> marker to the new doc section, which would be helpful in any case.

@lihaoyi
Copy link
Member Author

lihaoyi commented Jul 20, 2024

Updating it together with tagging/publishing the release would ensure the smallest gap between what's documented and what's published. I don't want people to read docs and have to consciously skip parts that dont apply

It's a compromise, but some compromise is inevitable when most people will see the docs on the web from the latest version of main while releases are done less frequently.

@lefou
Copy link
Member

lefou commented Jul 20, 2024

It's your call.


I kind of disagree, though. It's what we did in the past and what I and others do in other projects. The Readme and other documentation should reflect the current state of the branch it belongs to. Looking at some possibly unreleased state is an inherent property of looking at the main branch. In contrast to looking at a tag or release branch. It's a good thing to keep features and their docs close, ideally in the same PR. That enables us to cut a release including its documentation at any point in time.

Users can look at a specific tag rather easily. The docs then always reflects that version.

To provide stable documentation reflecting a specific version, we could and probably should just copy a rendered version to ghpages. That can be automated.

@lihaoyi lihaoyi merged commit 59b5fd9 into main Jul 20, 2024
18 checks passed
@lihaoyi lihaoyi deleted the global-redirects branch July 20, 2024 13:05
@lefou lefou added this to the 0.10.3 milestone Jul 22, 2024
lihaoyi added a commit to com-lihaoyi/mill that referenced this pull request Jul 22, 2024
…ted (#3275)

Depends on com-lihaoyi/os-lib#283

This moves the subprocess stream handling logic out of
`Jvm.spawnSubprocess` and makes it apply to all `os.proc` invocations,
greatly reducing the room for error. With this, `Jvm.spawnSubprocess`
becomes a very thin wrapper around `os.proc.spawn`. We also rely
directly on OS-Lib's own pumper threads to pump to our destination,
rather than having them pump into in-memory buffers and then spawning
our own pumper threads to pump from those buffers to the destination

I spent some time looking into how to do the stdout/err handling at the
process level, but couldn't find any reasonable mechanism to do so that
allows us to preserve the ordering of the stdout/stderr. This is the
original motivation to squishing it into one stream via
`ProxyOutputStream`/`ProxyStreamPumper` and is important because
otherwise you find e.g. stack traces out of order with printlns, which
makes debugging very difficult. Might be possible using some
socket/fifo/pipe cleverness, but not as part of this PR

Added an integration test to assert on the subtleties of stdout, stderr,
and their inherited alternatives. This PR is required for the test to
pass
scarisey referenced this pull request in scarisey/pct-compose Jul 30, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [com.eed3si9n:sbt-assembly](https://github.com/sbt/sbt-assembly) |
plugin | minor | `2.1.5` -> `2.2.0` |
|
[com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-core](https://github.com/plokhotnyuk/jsoniter-scala)
| Test | minor | `2.28.4` -> `2.30.7` |
|
[com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-core](https://github.com/plokhotnyuk/jsoniter-scala)
| | minor | `2.28.4` -> `2.30.7` |
|
[com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-macros](https://github.com/plokhotnyuk/jsoniter-scala)
| Test | minor | `2.28.4` -> `2.30.7` |
|
[com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-macros](https://github.com/plokhotnyuk/jsoniter-scala)
| | minor | `2.28.4` -> `2.30.7` |
| [com.lihaoyi:fastparse](https://github.com/lihaoyi/fastparse)
([source](https://github.com/com-lihaoyi/fastparse)) | | minor |
`3.0.2` -> `3.1.1` |
| [com.lihaoyi:mainargs](https://github.com/com-lihaoyi/mainargs) |
Test | minor | `0.6.2` -> `0.7.1` |
| [com.lihaoyi:mainargs](https://github.com/com-lihaoyi/mainargs) | |
minor | `0.6.2` -> `0.7.1` |
| [com.lihaoyi:os-lib](https://github.com/com-lihaoyi/os-lib) | Test |
minor | `0.9.3` -> `0.10.3` |
| [com.lihaoyi:os-lib](https://github.com/com-lihaoyi/os-lib) | |
minor | `0.9.3` -> `0.10.3` |
| [com.lihaoyi:pprint](https://github.com/com-lihaoyi/PPrint) | Test |
minor | `0.8.1` -> `0.9.0` |
| [com.lihaoyi:pprint](https://github.com/com-lihaoyi/PPrint) | |
minor | `0.8.1` -> `0.9.0` |
|
[com.lihaoyi:requests](https://github.com/com-lihaoyi/requests-scala)
| Test | minor | `0.8.0` -> `0.9.0` |
|
[com.lihaoyi:requests](https://github.com/com-lihaoyi/requests-scala)
| | minor | `0.8.0` -> `0.9.0` |
|
[com.softwaremill.magnolia1_3:magnolia](http://softwaremill.com/open-source)
([source](https://github.com/softwaremill/magnolia)) | | patch |
`1.3.4` -> `1.3.7` |
| [io.github.iltotore:iron](https://github.com/Iltotore/iron) | Test |
minor | `2.5.0` -> `2.6.0` |
| [io.github.iltotore:iron](https://github.com/Iltotore/iron) | |
minor | `2.5.0` -> `2.6.0` |
| [io.github.iltotore:iron-jsoniter](https://github.com/Iltotore/iron)
| Test | minor | `2.5.0` -> `2.6.0` |
| [io.github.iltotore:iron-jsoniter](https://github.com/Iltotore/iron)
| | minor | `2.5.0` -> `2.6.0` |
|
[io.github.iltotore:iron-scalacheck](https://github.com/Iltotore/iron)
| Test | minor | `2.5.0` -> `2.6.0` |
| [org.scalacheck:scalacheck](http://www.scalacheck.org)
([source](https://github.com/typelevel/scalacheck)) | Test | minor |
`1.17.0` -> `1.18.0` |
| [org.scalatest:scalatest](http://www.scalatest.org)
([source](https://github.com/scalatest/scalatest)) | Test | patch |
`3.2.18` -> `3.2.19` |
| [sbt/sbt](https://github.com/sbt/sbt) | | minor | `1.9.9` ->
`1.10.1` |
|
[scalacenter/sbt-dependency-submission](https://github.com/scalacenter/sbt-dependency-submission)
| action | major | `v2` -> `v3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>sbt/sbt-assembly (com.eed3si9n:sbt-assembly)</summary>

###
[`v2.2.0`](https://github.com/sbt/sbt-assembly/releases/tag/v2.2.0):
2.2.0

[Compare
Source](https://github.com/sbt/sbt-assembly/compare/v2.1.5...v2.2.0)

#### updates

- Update to jarjar-abrams-core 1.14.0 by
[@&#8203;eed3si9n](https://github.com/eed3si9n) in
[https://github.com/sbt/sbt-assembly/pull/522](https://github.com/sbt/sbt-assembly/pull/522)
- Reduce memory usage by avoiding to buffer entry contents during
`MergeStrategy.deduplicate` by
[@&#8203;shuttie](https://github.com/shuttie) in
[https://github.com/sbt/sbt-assembly/pull/520](https://github.com/sbt/sbt-assembly/pull/520)

#### behind the scenes

- Fixes typo in readme by
[@&#8203;SethTisue](https://github.com/SethTisue) in
[https://github.com/sbt/sbt-assembly/pull/518](https://github.com/sbt/sbt-assembly/pull/518)
- Warn about parasitized über JARs in readme by
[@&#8203;eed3si9n](https://github.com/eed3si9n) in
[https://github.com/sbt/sbt-assembly/pull/521](https://github.com/sbt/sbt-assembly/pull/521)

#### new contributors

- [@&#8203;shuttie](https://github.com/shuttie) made their first
contribution in
[https://github.com/sbt/sbt-assembly/pull/520](https://github.com/sbt/sbt-assembly/pull/520)

**Full Changelog**:
https://github.com/sbt/sbt-assembly/compare/v2.1.5...v2.2.0

</details>

<details>
<summary>plokhotnyuk/jsoniter-scala
(com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-core)</summary>

###
[`v2.30.7`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.30.7)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.6...v2.30.7)

- More efficient writing of `Float`, `Double`, and `java.time.Duration`
values using Scala.js

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.6...v2.30.7

###
[`v2.30.6`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.30.6)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.5...v2.30.6)

- More efficient writing of numeric and `java.time.*` values using
Scala.js

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.5...v2.30.6

###
[`v2.30.5`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.30.5)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.4...v2.30.5)

- More efficient writing of `BigDecimal`, `BigInt`, `Double`, `Long`,
and `java.time.Duration` values using Scala.js

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.4...v2.30.5

###
[`v2.30.4`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.30.4)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.3...v2.30.4)

-   More efficient writing of `Double` values using Scala.js
- More efficient reading of `BigDecimal`, `BigInt`, `Double`, `Float`,
`Long`, and `java.time.Duration` values using Scala.js

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.3...v2.30.4

###
[`v2.30.3`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.30.3)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.2...v2.30.3)

-   Update Scala Native to 0.5.4
- Update `scala-java-time` to 2.6.0 for `jsoniter-scala-coreJS` and
`jsoniter-scala-coreNative` modules
-   Update `circe-core` to 0.14.9 for `jsoniter-scala-circe*` modules

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.2...v2.30.3

###
[`v2.30.2`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.30.2)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.1...v2.30.2)

- Fixed possible `ArrayIndexOutOfBoundsException` for some lengths of
output buffer when serializing `double` values with 3-digit mantissa by
JVMs
- More efficient parsing of `java.time.Duration` values without
nanoseconds
-   More efficient serialization of strings with escaped unicodes
-   More efficient serialization of `double` and `float` values
-   Added some compile-time optimizations

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.1...v2.30.2

###
[`v2.30.1`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.30.1)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.0...v2.30.1)

- Fixed missing enforced discriminator field for module or enum classes
- Disallowed `discriminatorFieldName` to be `None` when
`alwaysEmitDiscriminator` is `true`

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.30.0...v2.30.1

###
[`v2.30.0`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.30.0)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.29.0...v2.30.0)

- Added ability to enforce emitting of the discriminator field for
ADT-based types if their codecs are derived not from the base ADT type

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.29.0...v2.30.0

###
[`v2.29.0`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.29.0)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.28.5...v2.29.0)

- Added the `ConfiguredJsonValuCodec[A]` trait that can be used with the
`... derives ...` syntax for Scala 3 macros

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.28.5...v2.29.0

###
[`v2.28.5`](https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.28.5)

[Compare
Source](https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.28.4...v2.28.5)

- Disabled generation of asymmetric codecs for sum types with leaf
classes that are `AnyVal` or one value classes with
`CodecMakerConfig.withInlineOneValueClasses(true)`
-   Update Scala 2.13.x to 2.13.14

All changes
https://github.com/plokhotnyuk/jsoniter-scala/compare/v2.28.4...v2.28.5

</details>

<details>
<summary>com-lihaoyi/fastparse (com.lihaoyi:fastparse)</summary>

###
[`v3.1.1`](https://github.com/com-lihaoyi/fastparse/compare/3.1.0...3.1.1)

[Compare
Source](https://github.com/com-lihaoyi/fastparse/compare/3.1.0...3.1.1)

###
[`v3.1.0`](https://github.com/com-lihaoyi/fastparse/compare/3.0.2...3.1.0)

[Compare
Source](https://github.com/com-lihaoyi/fastparse/compare/3.0.2...3.1.0)

</details>

<details>
<summary>com-lihaoyi/mainargs (com.lihaoyi:mainargs)</summary>

###
[`v0.7.1`](https://github.com/com-lihaoyi/mainargs/releases/tag/0.7.1)

[Compare
Source](https://github.com/com-lihaoyi/mainargs/compare/0.7.0...0.7.1)

##### Merged Pull Requests

- Update acyclic from 0.3.11 to 0.3.12 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/mainargs/pull/130](https://github.com/com-lihaoyi/mainargs/pull/130)
- Update os-lib from 0.9.3 to 0.10.2 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/mainargs/pull/138](https://github.com/com-lihaoyi/mainargs/pull/138)
- Update mill-mima from 0.1.0 to 0.1.1 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/mainargs/pull/136](https://github.com/com-lihaoyi/mainargs/pull/136)
- Ensure `.scalafmt.conf` is correct for Scala 3 sources by
[@&#8203;ckipp01](https://github.com/ckipp01) in
[https://github.com/com-lihaoyi/mainargs/pull/118](https://github.com/com-lihaoyi/mainargs/pull/118)
- Update Mill from 0.11.7-29-f2e220 to 0.11.7-109-59a5cb by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/mainargs/pull/137](https://github.com/com-lihaoyi/mainargs/pull/137)
- \[[Issue-#&#8203;89](https://github.com/Issue-/mainargs/issues/89)]
Fix call of main methods (refer to the actual method owner not just the
method) by [@&#8203;arainko](https://github.com/arainko) in
[https://github.com/com-lihaoyi/mainargs/pull/142](https://github.com/com-lihaoyi/mainargs/pull/142)

##### New Contributors

- [@&#8203;arainko](https://github.com/arainko) made their first
contribution in
[https://github.com/com-lihaoyi/mainargs/pull/142](https://github.com/com-lihaoyi/mainargs/pull/142)

**Full Changelog**:
https://github.com/com-lihaoyi/mainargs/compare/0.7.0...0.7.1

###
[`v0.7.0`](https://github.com/com-lihaoyi/mainargs/releases/tag/0.7.0)

[Compare
Source](https://github.com/com-lihaoyi/mainargs/compare/0.6.3...0.7.0)

##### Merged Pull Requests

- Fix version in readme by
[@&#8203;nightscape](https://github.com/nightscape) in
[https://github.com/com-lihaoyi/mainargs/pull/124](https://github.com/com-lihaoyi/mainargs/pull/124)
- Support for Scala-Native 0.5.0 by
[@&#8203;lihaoyi](https://github.com/lihaoyi) in
[https://github.com/com-lihaoyi/mainargs/pull/125](https://github.com/com-lihaoyi/mainargs/pull/125)

##### New Contributors

- [@&#8203;nightscape](https://github.com/nightscape) made their first
contribution in
[https://github.com/com-lihaoyi/mainargs/pull/124](https://github.com/com-lihaoyi/mainargs/pull/124)

**Full Changelog**:
https://github.com/com-lihaoyi/mainargs/compare/0.6.3...0.7.0

###
[`v0.6.3`](https://github.com/com-lihaoyi/mainargs/compare/0.6.2...0.6.3)

[Compare
Source](https://github.com/com-lihaoyi/mainargs/compare/0.6.2...0.6.3)

</details>

<details>
<summary>com-lihaoyi/os-lib (com.lihaoyi:os-lib)</summary>

###
[`v0.10.3`](https://github.com/com-lihaoyi/os-lib/releases/tag/0.10.3)

##### Merged Pull Requests

- Enable already-passing native tests by
[@&#8203;lihaoyi](https://github.com/lihaoyi) in
[https://github.com/com-lihaoyi/os-lib/pull/273](https://github.com/com-lihaoyi/os-lib/pull/273)
- Update mill-mima from 0.1.0 to 0.1.1 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/275](https://github.com/com-lihaoyi/os-lib/pull/275)
- Update geny from 1.1.0 to 1.1.1 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/279](https://github.com/com-lihaoyi/os-lib/pull/279)
- Update scalafmt from 3.8.1 to 3.8.2 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/280](https://github.com/com-lihaoyi/os-lib/pull/280)
- Update Mill to 0.11.8 by [@&#8203;lefou](https://github.com/lefou)
in
[https://github.com/com-lihaoyi/os-lib/pull/281](https://github.com/com-lihaoyi/os-lib/pull/281)
- Add API to redirect `os.Inherit`ed streams globally to be consistent
with std streams redirections by
[@&#8203;lihaoyi](https://github.com/lihaoyi) in
[https://github.com/com-lihaoyi/os-lib/pull/283](https://github.com/com-lihaoyi/os-lib/pull/283)

**Full Changelog**:
https://github.com/com-lihaoyi/os-lib/compare/0.10.2...0.10.3

###
[`v0.10.2`](https://github.com/com-lihaoyi/os-lib/releases/tag/0.10.2)

[Compare
Source](https://github.com/com-lihaoyi/os-lib/compare/0.10.1...0.10.2)

##### Merged Pull Requests

- Update Mill from 0.11.7-29-f2e220 to 0.11.7-86-18d144 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/268](https://github.com/com-lihaoyi/os-lib/pull/268)
- Re-enable explicit TOC rendering in readme by
[@&#8203;lefou](https://github.com/lefou) in
[https://github.com/com-lihaoyi/os-lib/pull/269](https://github.com/com-lihaoyi/os-lib/pull/269)
- Readme: put more versions into sub-section by
[@&#8203;lefou](https://github.com/lefou) in
[https://github.com/com-lihaoyi/os-lib/pull/181](https://github.com/com-lihaoyi/os-lib/pull/181)
- Update sourcecode from 0.4.1 to 0.4.2 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/271](https://github.com/com-lihaoyi/os-lib/pull/271)
- Update Mill from 0.11.7-86-18d144 to 0.11.7-107-9ec9bc by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/270](https://github.com/com-lihaoyi/os-lib/pull/270)
- Support `os.proc` on Scala Native by
[@&#8203;lihaoyi](https://github.com/lihaoyi) in
[https://github.com/com-lihaoyi/os-lib/pull/257](https://github.com/com-lihaoyi/os-lib/pull/257)

**Full Changelog**:
https://github.com/com-lihaoyi/os-lib/compare/0.10.1...0.10.2

###
[`v0.10.1`](https://github.com/com-lihaoyi/os-lib/releases/tag/0.10.1)

[Compare
Source](https://github.com/com-lihaoyi/os-lib/compare/0.10.0...0.10.1)

##### Merged Pull Requests

- Update acyclic from 0.3.11 to 0.3.12 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/262](https://github.com/com-lihaoyi/os-lib/pull/262)
- Fix mistake in Readme.adoc by
[@&#8203;kubukoz](https://github.com/kubukoz) in
[https://github.com/com-lihaoyi/os-lib/pull/265](https://github.com/com-lihaoyi/os-lib/pull/265)
- CI: Disable Java 8 build on macos-latest by
[@&#8203;lefou](https://github.com/lefou) in
[https://github.com/com-lihaoyi/os-lib/pull/266](https://github.com/com-lihaoyi/os-lib/pull/266)
- Add recent releases to mima checks by
[@&#8203;lefou](https://github.com/lefou) in
[https://github.com/com-lihaoyi/os-lib/pull/260](https://github.com/com-lihaoyi/os-lib/pull/260)
- Update sourcecode from 0.4.0 to 0.4.1 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/259](https://github.com/com-lihaoyi/os-lib/pull/259)
- Update scalafmt version from 3.7.17 to 3.8.1 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/255](https://github.com/com-lihaoyi/os-lib/pull/255)
- Update Scala version from 2.13.10 to 2.13.14 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/263](https://github.com/com-lihaoyi/os-lib/pull/263)
- Fix os.copy and os.move directories to root by
[@&#8203;kiendang](https://github.com/kiendang) in
[https://github.com/com-lihaoyi/os-lib/pull/267](https://github.com/com-lihaoyi/os-lib/pull/267)

##### New Contributors

- [@&#8203;kubukoz](https://github.com/kubukoz) made their first
contribution in
[https://github.com/com-lihaoyi/os-lib/pull/265](https://github.com/com-lihaoyi/os-lib/pull/265)
- [@&#8203;kiendang](https://github.com/kiendang) made their first
contribution in
[https://github.com/com-lihaoyi/os-lib/pull/267](https://github.com/com-lihaoyi/os-lib/pull/267)

**Full Changelog**:
https://github.com/com-lihaoyi/os-lib/compare/0.10.0...0.10.1

###
[`v0.10.0`](https://github.com/com-lihaoyi/os-lib/releases/tag/0.10.0)

[Compare
Source](https://github.com/com-lihaoyi/os-lib/compare/0.9.3...0.10.0)

##### Merged Pull Requests

- Fix artifactName for os-lib-watch by
[@&#8203;lolgab](https://github.com/lolgab) in
[https://github.com/com-lihaoyi/os-lib/pull/243](https://github.com/com-lihaoyi/os-lib/pull/243)
- fix typo in readme by
[@&#8203;SethTisue](https://github.com/SethTisue) in
[https://github.com/com-lihaoyi/os-lib/pull/245](https://github.com/com-lihaoyi/os-lib/pull/245)
- Update Mill to 0.11.7 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/246](https://github.com/com-lihaoyi/os-lib/pull/246)
- Update jna from 5.13.0 to 5.14.0 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/244](https://github.com/com-lihaoyi/os-lib/pull/244)
- Update acyclic from 0.3.9 to 0.3.10 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/248](https://github.com/com-lihaoyi/os-lib/pull/248)
- Update acyclic from 0.3.10 to 0.3.11 by
[@&#8203;scala-steward](https://github.com/scala-steward) in
[https://github.com/com-lihaoyi/os-lib/pull/250](https://github.com/com-lihaoyi/os-lib/pull/250)
- Scala Native 0.5.0 Support by
[@&#8203;lihaoyi](https://github.com/lihaoyi) in
[https://github.com/com-lihaoyi/os-lib/pull/256](https://github.com/com-lihaoyi/os-lib/pull/256)

##### New Contributors

- [@&#8203;SethTisue](https://github.com/SethTisue) made their first
contribution in
[https://github.com/com-lihaoyi/os-lib/pull/245](https://github.com/com-lihaoyi/os-lib/pull/245)

**Full Changelog**:
https://github.com/com-lihaoyi/os-lib/compare/0.9.3...0.10.0

</details>

<details>
<summary>com-lihaoyi/PPrint (com.lihaoyi:pprint)</summary>

###
[`v0.9.0`](https://github.com/com-lihaoyi/PPrint/compare/0.8.1...0.9.0)

[Compare
Source](https://github.com/com-lihaoyi/PPrint/compare/0.8.1...0.9.0)

</details>

<details>
<summary>com-lihaoyi/requests-scala (com.lihaoyi:requests)</summary>

###
[`v0.9.0`](https://github.com/com-lihaoyi/requests-scala/compare/0.8.3...0.9.0)

[Compare
Source](https://github.com/com-lihaoyi/requests-scala/compare/0.8.3...0.9.0)

###
[`v0.8.3`](https://github.com/com-lihaoyi/requests-scala/compare/0.8.2...0.8.3)

[Compare
Source](https://github.com/com-lihaoyi/requests-scala/compare/0.8.2...0.8.3)

###
[`v0.8.2`](https://github.com/com-lihaoyi/requests-scala/compare/0.8.0...0.8.2)

[Compare
Source](https://github.com/com-lihaoyi/requests-scala/compare/0.8.0...0.8.2)

</details>

<details>
<summary>Iltotore/iron (io.github.iltotore:iron)</summary>

### [`v2.6.0`](https://github.com/Iltotore/iron/releases/tag/v2.6.0)

[Compare
Source](https://github.com/Iltotore/iron/compare/v2.5.0...v2.6.0)

##### Introduction

This release adds new "all" variants introduced in 2.5.0 as well as
compile-time UX enhancements.

##### Main changes

##### First-order variants for Cats and ZIO

`iron-cats` and `iron-zio` now include "all" variants for
`ValidatedNec`/`EitherNec`/`Nel...` and `Validation`.

```scala
opaque type Username = String :| Alphanumeric
object Username extends RefinedTypeOps[String, Alphanumeric, Username]
```

```scala
//Success(List("CoolSkeleton95", "Alice"): List[String :| Alphanumeric])
List("CookSkeleton95", "Alice").refineAllValidation[Alphanumeric]

/*
Failure(NonEmptyChunk(
  InvalidValue("Il_totore", "Should be alphanumeric"),
  InvalidValue(" ", "Should be alphanumeric")
))
*/
List("Il_totore", "CoolSkeleton95", " ", "Alice").refineAllValidation[Alphanumeric]

//Success(List("CoolSkeleton95", "Alice"): List[Username])
Username.validationAll(List("CookSkeleton95", "Alice"))
```

([Scastie](https://scastie.scala-lang.org/5xMOvMzQQ9uA0h2svyH35A))

##### More useful compile-time errors

A reason is now given when an error fails at compile-time:

```scala
val y: Int = ??? //Runtime value
val x: Int :| Greater[10] = y
```

```scala
[error]    |-- Constraint Error --------------------------------------------------------
[error]    |Cannot refine value at compile-time because the predicate cannot be evaluated.
[error]    |This is likely because the condition or the input value isn't fully inlined.
[error]    |
[error]    |To test a constraint at runtime, use one of the `refine...` extension methods.
[error]    |
[error]    |Inlined input: y
[error]    |Inlined condition: (y.>(10.0): scala.Boolean)
[error]    |Message: Should be greater than 10
[error]    |Reason: Some arguments of `>` are not inlined:
[error]    |Arg 0:
[error]    |  Term not inlined: y
[error]    |----------------------------------------------------------------------------
```

##### Better colors for compile-time errors

Instead of aqua, compile-time errors use magenta which is more readable
in Scastie than the former. Expressions are now highlighted:

<details>
<summary>Screenshot</summary>


![image](https://github.com/Iltotore/iron/assets/42907886/3db78673-1f99-4bf8-8958-3c1707124e4f)

</details>

##### Configurable compile-time errors

Compile-time errors can now be tweaked with two options:

- `-Diron.color` to enable (`true`)/disable (`false`) compile-time
messages colorations, including syntax highlighting
- `-Diron.shortMessages` to display short summaries instead of full
messages. Useful for Lens (such as Error Lens on VSCode or Inspection
Lens on Intellij IDEA) users to have quick insights while coding.

<details>
<summary>Lens screenshot</summary>

In the following example, the flag `-Diron.shortMessages=true` was added
to BSP arguments.


![image](https://github.com/Iltotore/iron/assets/42907886/18756736-8a85-49b4-8b52-6cbbdb1efb06)

</details> 

##### Adopters

The company [Clever Cloud](https://www.clever-cloud.com/) and the
[Tessela](https://github.com/scala-tessella/tessella) project are now
listed on the README as adopters.

##### Contributors

- [@&#8203;mcallisto](https://github.com/mcallisto):
[#&#8203;232](https://github.com/Iltotore/iron/issues/232)
- [@&#8203;zaxxel](https://github.com/zaxxel):
[#&#8203;233](https://github.com/Iltotore/iron/issues/233) and
[#&#8203;234](https://github.com/Iltotore/iron/issues/234)

**Full Changelog:**
https://github.com/Iltotore/iron/compare/v2.5.0...v2.6.0

</details>

<details>
<summary>typelevel/scalacheck (org.scalacheck:scalacheck)</summary>

###
[`v1.18.0`](https://github.com/typelevel/scalacheck/releases/tag/v1.18.0)

[Compare
Source](https://github.com/typelevel/scalacheck/compare/v1.17.1...v1.18.0)

This is the first release that supports Scala Native 0.5. Otherwise this
is functionally the same as 0.17.1.

#### Updates

- Update nscplugin, sbt-scala-native to 0.5.1 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1049](https://github.com/typelevel/scalacheck/pull/1049)

**Full Changelog**:
https://github.com/typelevel/scalacheck/compare/v1.17.1...v1.18.0

###
[`v1.17.1`](https://github.com/typelevel/scalacheck/releases/tag/v1.17.1)

[Compare
Source](https://github.com/typelevel/scalacheck/compare/v1.17.0...v1.17.1)

#### Highlights

- fix wrong millisecond value (fixes
[#&#8203;913](https://github.com/typelevel/scalacheck/issues/913)) by
[@&#8203;akonior](https://github.com/akonior) in
[https://github.com/typelevel/scalacheck/pull/924](https://github.com/typelevel/scalacheck/pull/924)
- fix scala 3 compilation errors in user guide examples by
[@&#8203;akonior](https://github.com/akonior) in
[https://github.com/typelevel/scalacheck/pull/925](https://github.com/typelevel/scalacheck/pull/925)
- Fix Many Of The Warnings by
[@&#8203;isomarcte](https://github.com/isomarcte) in
[https://github.com/typelevel/scalacheck/pull/928](https://github.com/typelevel/scalacheck/pull/928)
- Add Cogen instances for SortedSet and SortedMap by
[@&#8203;isomarcte](https://github.com/isomarcte) in
[https://github.com/typelevel/scalacheck/pull/927](https://github.com/typelevel/scalacheck/pull/927)
- Added some code improvements and Removed Redundent Arguments by
[@&#8203;aashish2054](https://github.com/aashish2054) in
[https://github.com/typelevel/scalacheck/pull/942](https://github.com/typelevel/scalacheck/pull/942)
- Add Gen.nonEmptyStringOf by
[@&#8203;satorg](https://github.com/satorg) in
[https://github.com/typelevel/scalacheck/pull/944](https://github.com/typelevel/scalacheck/pull/944)
- add a comment line about `nonEmptyStringOf` by
[@&#8203;satorg](https://github.com/satorg) in
[https://github.com/typelevel/scalacheck/pull/951](https://github.com/typelevel/scalacheck/pull/951)
- Integrate sbt-header (via sbt-typelevel) by
[@&#8203;satorg](https://github.com/satorg) in
[https://github.com/typelevel/scalacheck/pull/959](https://github.com/typelevel/scalacheck/pull/959)
- Fix trailing whitespaces in headers by
[@&#8203;satorg](https://github.com/satorg) in
[https://github.com/typelevel/scalacheck/pull/963](https://github.com/typelevel/scalacheck/pull/963)
- Add scalafmt to the repository by
[@&#8203;satorg](https://github.com/satorg) in
[https://github.com/typelevel/scalacheck/pull/950](https://github.com/typelevel/scalacheck/pull/950)
- Add `open` to `Properties` to prevent Scala 3 compile errors by
[@&#8203;froth](https://github.com/froth) in
[https://github.com/typelevel/scalacheck/pull/991](https://github.com/typelevel/scalacheck/pull/991)
- add explicit type by [@&#8203;xuwei-k](https://github.com/xuwei-k)
in
[https://github.com/typelevel/scalacheck/pull/1005](https://github.com/typelevel/scalacheck/pull/1005)
- Remove CODE_OF_CONDUCT, use org default \[ci skip] by
[@&#8203;valencik](https://github.com/valencik) in
[https://github.com/typelevel/scalacheck/pull/1044](https://github.com/typelevel/scalacheck/pull/1044)
- Prefer docstrings.style = AsteriskSpace by
[@&#8203;som-snytt](https://github.com/som-snytt) in
[https://github.com/typelevel/scalacheck/pull/1042](https://github.com/typelevel/scalacheck/pull/1042)

#### Updates

- Update nscplugin, sbt-scala-native, ... to 0.4.7 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/915](https://github.com/typelevel/scalacheck/pull/915)
- Update scala-library to 2.12.17 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/917](https://github.com/typelevel/scalacheck/pull/917)
- Update sbt-typelevel-ci-release, ... to 0.4.15 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/918](https://github.com/typelevel/scalacheck/pull/918)
- Update scala3-library, ... to 3.2.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/920](https://github.com/typelevel/scalacheck/pull/920)
- Update sbt to 1.7.2 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/921](https://github.com/typelevel/scalacheck/pull/921)
- Update scala-library to 2.13.9 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/919](https://github.com/typelevel/scalacheck/pull/919)
- Update sbt-typelevel-ci-release, ... to 0.4.16 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/922](https://github.com/typelevel/scalacheck/pull/922)
- Update scala-library to 2.13.10 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/923](https://github.com/typelevel/scalacheck/pull/923)
- Update sbt to 1.7.3 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/926](https://github.com/typelevel/scalacheck/pull/926)
- Update scala3-library, ... to 3.2.1 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/929](https://github.com/typelevel/scalacheck/pull/929)
- Update sbt-typelevel-ci-release, ... to 0.4.17 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/931](https://github.com/typelevel/scalacheck/pull/931)
- Update sbt-scalajs, scalajs-compiler, ... to 1.11.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/932](https://github.com/typelevel/scalacheck/pull/932)
- Update sbt to 1.8.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/934](https://github.com/typelevel/scalacheck/pull/934)
- Update nscplugin, sbt-scala-native, ... to 0.4.9 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/933](https://github.com/typelevel/scalacheck/pull/933)
- Update sbt to 1.8.1 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/935](https://github.com/typelevel/scalacheck/pull/935)
- Update sbt to 1.8.2 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/936](https://github.com/typelevel/scalacheck/pull/936)
- Update sbt-typelevel-ci-release, ... to 0.4.18 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/937](https://github.com/typelevel/scalacheck/pull/937)
- Update scala3-library, ... to 3.2.2 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/939](https://github.com/typelevel/scalacheck/pull/939)
- Update sbt-jmh to 0.4.4 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/940](https://github.com/typelevel/scalacheck/pull/940)
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/941](https://github.com/typelevel/scalacheck/pull/941)
- Update nscplugin, sbt-scala-native, ... to 0.4.10 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/938](https://github.com/typelevel/scalacheck/pull/938)
- Update sbt-scala-native-crossproject, ... to 1.3.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/953](https://github.com/typelevel/scalacheck/pull/953)
- Update sbt-typelevel-ci-release, ... to 0.4.21 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/958](https://github.com/typelevel/scalacheck/pull/958)
- Update sbt to 1.8.3 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/957](https://github.com/typelevel/scalacheck/pull/957)
- Update nscplugin, sbt-scala-native, ... to 0.4.12 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/947](https://github.com/typelevel/scalacheck/pull/947)
- Update scalafmt-core to 3.7.4 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/961](https://github.com/typelevel/scalacheck/pull/961)
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.1 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/954](https://github.com/typelevel/scalacheck/pull/954)
- Update sbt-scala-native-crossproject, ... to 1.3.1 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/955](https://github.com/typelevel/scalacheck/pull/955)
- Update sbt-jmh to 0.4.5 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/964](https://github.com/typelevel/scalacheck/pull/964)
- Update sbt-typelevel to 0.4.22 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/966](https://github.com/typelevel/scalacheck/pull/966)
- Update scala-library to 2.13.11 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/972](https://github.com/typelevel/scalacheck/pull/972)
- Update sbt to 1.9.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/962](https://github.com/typelevel/scalacheck/pull/962)
- Update nscplugin, sbt-scala-native, ... to 0.4.14 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/967](https://github.com/typelevel/scalacheck/pull/967)
- Update scala3-library, ... to 3.3.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/960](https://github.com/typelevel/scalacheck/pull/960)
- Update scala-library to 2.12.18 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/971](https://github.com/typelevel/scalacheck/pull/971)
- Update sbt to 1.9.1 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/975](https://github.com/typelevel/scalacheck/pull/975)
- Update scalafmt-core to 3.7.6 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/977](https://github.com/typelevel/scalacheck/pull/977)
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.2 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/974](https://github.com/typelevel/scalacheck/pull/974)
- Update to sbt-typelevel 0.5.0-RC1 by
[@&#8203;armanbilge](https://github.com/armanbilge) in
[https://github.com/typelevel/scalacheck/pull/973](https://github.com/typelevel/scalacheck/pull/973)
- Update sbt-typelevel to 0.5.0-RC5 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/978](https://github.com/typelevel/scalacheck/pull/978)
- Update scalafmt-core to 3.7.7 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/980](https://github.com/typelevel/scalacheck/pull/980)
- Update sbt to 1.9.2 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/982](https://github.com/typelevel/scalacheck/pull/982)
- Update scalafmt-core to 3.7.9 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/985](https://github.com/typelevel/scalacheck/pull/985)
- Update sbt-typelevel to 0.5.0-RC7 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/983](https://github.com/typelevel/scalacheck/pull/983)
- Update sbt to 1.9.3 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/989](https://github.com/typelevel/scalacheck/pull/989)
- Update sbt-typelevel to 0.5.0-RC9 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/988](https://github.com/typelevel/scalacheck/pull/988)
- Update scalafmt-core to 3.7.10 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/986](https://github.com/typelevel/scalacheck/pull/986)
- Update scalafmt-core to 3.7.12 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/995](https://github.com/typelevel/scalacheck/pull/995)
- Update scala3-library, ... to 3.3.1 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1004](https://github.com/typelevel/scalacheck/pull/1004)
- Update sbt to 1.9.4 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/999](https://github.com/typelevel/scalacheck/pull/999)
- Update sbt-jmh to 0.4.6 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1003](https://github.com/typelevel/scalacheck/pull/1003)
- Update scalafmt-core to 3.7.14 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1001](https://github.com/typelevel/scalacheck/pull/1001)
- Update nscplugin, sbt-scala-native, ... to 0.4.15 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1002](https://github.com/typelevel/scalacheck/pull/1002)
- Update sbt to 1.9.5 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1009](https://github.com/typelevel/scalacheck/pull/1009)
- Update sbt to 1.9.6 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1010](https://github.com/typelevel/scalacheck/pull/1010)
- Update commons-lang3 to 3.13.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/992](https://github.com/typelevel/scalacheck/pull/992)
- Update scalafmt-core to 3.7.15 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1016](https://github.com/typelevel/scalacheck/pull/1016)
- Update sbt to 1.9.7 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1015](https://github.com/typelevel/scalacheck/pull/1015)
- Update sbt-typelevel to 0.6.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1017](https://github.com/typelevel/scalacheck/pull/1017)
- Update sbt-typelevel to 0.6.2 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1020](https://github.com/typelevel/scalacheck/pull/1020)
- Update nscplugin, sbt-scala-native, ... to 0.4.16 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1014](https://github.com/typelevel/scalacheck/pull/1014)
- Update sbt-scalajs, scalajs-compiler, ... to 1.14.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1012](https://github.com/typelevel/scalacheck/pull/1012)
- Update scalafmt-core to 3.7.17 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1021](https://github.com/typelevel/scalacheck/pull/1021)
- Update sbt-typelevel to 0.6.4 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1027](https://github.com/typelevel/scalacheck/pull/1027)
- Update sbt to 1.9.8 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1026](https://github.com/typelevel/scalacheck/pull/1026)
- Update sbt-jmh to 0.4.7 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1025](https://github.com/typelevel/scalacheck/pull/1025)
- Update scala-library to 2.13.12 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1007](https://github.com/typelevel/scalacheck/pull/1007)
- Update sbt-typelevel to 0.6.5 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1029](https://github.com/typelevel/scalacheck/pull/1029)
- Update scalafmt-core to 3.8.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1034](https://github.com/typelevel/scalacheck/pull/1034)
- Update scala3-library, ... to 3.3.3 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1039](https://github.com/typelevel/scalacheck/pull/1039)
- Update sbt to 1.9.9 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1035](https://github.com/typelevel/scalacheck/pull/1035)
- Update sbt-typelevel to 0.6.7 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1036](https://github.com/typelevel/scalacheck/pull/1036)
- Update commons-lang3 to 3.14.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1022](https://github.com/typelevel/scalacheck/pull/1022)
- Update sbt-scalajs, scalajs-compiler, ... to 1.15.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1030](https://github.com/typelevel/scalacheck/pull/1030)
- Update nscplugin, sbt-scala-native, ... to 0.4.17 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1032](https://github.com/typelevel/scalacheck/pull/1032)
- Update scala-library to 2.12.19 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1037](https://github.com/typelevel/scalacheck/pull/1037)
- Update scala-library to 2.13.13 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1038](https://github.com/typelevel/scalacheck/pull/1038)
- Update scalafmt-core to 3.8.1 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1045](https://github.com/typelevel/scalacheck/pull/1045)
- Update sbt-scalajs, scalajs-compiler, ... to 1.16.0 by
[@&#8203;typelevel-steward](https://github.com/typelevel-steward) in
[https://github.com/typelevel/scalacheck/pull/1046](https://github.com/typelevel/scalacheck/pull/1046)

#### New Contributors

- [@&#8203;akonior](https://github.com/akonior) made their first
contribution in
[https://github.com/typelevel/scalacheck/pull/924](https://github.com/typelevel/scalacheck/pull/924)
- [@&#8203;aashish2054](https://github.com/aashish2054) made their
first contribution in
[https://github.com/typelevel/scalacheck/pull/942](https://github.com/typelevel/scalacheck/pull/942)
- [@&#8203;satorg](https://github.com/satorg) made their first
contribution in
[https://github.com/typelevel/scalacheck/pull/944](https://github.com/typelevel/scalacheck/pull/944)
- [@&#8203;valencik](https://github.com/valencik) made their first
contribution in
[https://github.com/typelevel/scalacheck/pull/1044](https://github.com/typelevel/scalacheck/pull/1044)
- [@&#8203;som-snytt](https://github.com/som-snytt) made their first
contribution in
[https://github.com/typelevel/scalacheck/pull/1042](https://github.com/typelevel/scalacheck/pull/1042)

**Full Changelog**:
https://github.com/typelevel/scalacheck/compare/v1.17.0...v1.17.1

</details>

<details>
<summary>scalatest/scalatest (org.scalatest:scalatest)</summary>

###
[`v3.2.19`](https://github.com/scalatest/scalatest/compare/release-3.2.18...release-3.2.19)

[Compare
Source](https://github.com/scalatest/scalatest/compare/release-3.2.18...release-3.2.19)

</details>

<details>
<summary>sbt/sbt (sbt/sbt)</summary>

### [`v1.10.1`](https://github.com/sbt/sbt/releases/tag/v1.10.1):
1.10.1

[Compare Source](https://github.com/sbt/sbt/compare/v1.10.0...v1.10.1)

#### bug fixes and updates

- Fixes column/position information missing from the javac error
messages in IntelliJ by
[@&#8203;vasilmkd](https://github.com/vasilmkd) in
[https://github.com/sbt/zinc/pull/1373](https://github.com/sbt/zinc/pull/1373)
- Fixes backslash handling in `expandMavenSettings` by
[@&#8203;desbo](https://github.com/desbo) in
[https://github.com/sbt/librarymanagement/pull/444](https://github.com/sbt/librarymanagement/pull/444)
- Fixes JSON serialization of `Map` and `LList` in sjson-new 0.10.1 by
[@&#8203;steinybot](https://github.com/steinybot) +
[@&#8203;eed3si9n](https://github.com/eed3si9n) in
[https://github.com/eed3si9n/sjson-new/pull/142](https://github.com/eed3si9n/sjson-new/pull/142)
- Fixes the hash code for empty files in the classpath cache by
[@&#8203;szeiger](https://github.com/szeiger) in
[https://github.com/sbt/zinc/pull/1366](https://github.com/sbt/zinc/pull/1366)
- Fixes `forceUpdatePeriod` by
[@&#8203;adpi2](https://github.com/adpi2) in
[https://github.com/sbt/sbt/pull/7567](https://github.com/sbt/sbt/pull/7567)
- Fixes BSP handling of `Optional` inter-project dependencies by
[@&#8203;adpi2](https://github.com/adpi2) in
[https://github.com/sbt/sbt/pull/7568](https://github.com/sbt/sbt/pull/7568)
- Ignores `jcenter` and `scala-tools-releases` entries in the
`~/.sbt/repositories` file by
[@&#8203;eed3si9n](https://github.com/eed3si9n) in
[https://github.com/sbt/launcher/pull/104](https://github.com/sbt/launcher/pull/104)

#### behind the scenes

- Updates sbt plugins to avoid deprecated repo.scala-sbt.org by
[@&#8203;mkurz](https://github.com/mkurz) in
[https://github.com/sbt/sbt/pull/7555](https://github.com/sbt/sbt/pull/7555)
- Updates scalacenter/sbt-dependency-submission from 2 to 3 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/sbt/sbt/pull/7565](https://github.com/sbt/sbt/pull/7565)

**Full Changelog**: https://github.com/sbt/sbt/compare/v1.10.0...v1.10.1

### [`v1.10.0`](https://github.com/sbt/sbt/releases/tag/v1.10.0):
1.10.0

[Compare Source](https://github.com/sbt/sbt/compare/v1.9.9...v1.10.0)

[@&#8203;eed3si9n]: https://github.com/eed3si9n

[@&#8203;adpi2]: https://github.com/adpi2

[@&#8203;dwijnand]: https://github.com/dwijnand

[@&#8203;xuwei-k]: https://github.com/xuwei-k

[@&#8203;mdedetrich]: https://github.com/mdedetrich

[@&#8203;mkurz]: https://github.com/mkurz

[@&#8203;hvesalai]: https://github.com/hvesalai

[@&#8203;Friendseeker]: https://github.com/Friendseeker

[@&#8203;RustedBones]: https://github.com/RustedBones

[@&#8203;minkyu97]: https://github.com/minkyu97

[@&#8203;azdrojowa123]: https://github.com/azdrojowa123

[@&#8203;SethTisue]: https://github.com/SethTisue

[@&#8203;Tammo0987]: https://github.com/Tammo0987

[@&#8203;azolotko]: https://github.com/azolotko

[@&#8203;rtyley]: https://github.com/rtyley

[@&#8203;mazugrin]: https://github.com/mazugrin

[7350]: https://github.com/sbt/sbt/pull/7350

[7352]: https://github.com/sbt/sbt/pull/7352

[7470]: https://github.com/sbt/sbt/pull/7470

[7475]: https://github.com/sbt/sbt/pull/7475

[7480]: https://github.com/sbt/sbt/pull/7480

[7496]: https://github.com/sbt/sbt/pull/7496

[7516]: https://github.com/sbt/sbt/pull/7516

[7513]: https://github.com/sbt/sbt/pull/7513

[7419]: https://github.com/sbt/sbt/pull/7419

[7389]: https://github.com/sbt/sbt/pull/7389

[7398]: https://github.com/sbt/sbt/pull/7398

[7178]: https://github.com/sbt/sbt/pull/7178

[7437]: https://github.com/sbt/sbt/pull/7437

[7545]: https://github.com/sbt/sbt/pull/7545

[sip51]:
https://docs.scala-lang.org/sips/drop-stdlib-forwards-bin-compat.html

[zinc1319]: https://github.com/sbt/zinc/pull/1319

[zinc1316]: https://github.com/sbt/zinc/pull/1316

[zinc1314]: https://github.com/sbt/zinc/pull/1314

[zinc1326]: https://github.com/sbt/zinc/pull/1326

[zinc1324]: https://github.com/sbt/zinc/pull/1324

[zinc1312]: https://github.com/sbt/zinc/pull/1312

[zinc1310]: https://github.com/sbt/zinc/pull/1310

[zinc1278]: https://github.com/sbt/zinc/pull/1278

[zinc1284]: https://github.com/sbt/zinc/pull/1284

[zinc1259]: https://github.com/sbt/zinc/pull/1259

[zinc1277]: https://github.com/sbt/zinc/pull/1277

[zinc1265]: https://github.com/sbt/zinc/pull/1265

[zinc1289]: https://github.com/sbt/zinc/pull/1289

[zinc1290]: https://github.com/sbt/zinc/pull/1290

[zinc1282]: https://github.com/sbt/zinc/pull/1282

[zinc1293]: https://github.com/sbt/zinc/pull/1293

[zinc1288]: https://github.com/sbt/zinc/pull/1288

[zinc1287]: https://github.com/sbt/zinc/pull/1287

[lm436]: https://github.com/sbt/librarymanagement/pull/436

[lm433]: https://github.com/sbt/librarymanagement/pull/433

#### Changes with compatibility implications

- For SIP-51 support, `scalaVersion` can no longer be a lower 2.13.x
version number than its transitive depdencies. See below for details.
- ConsistentAnalysisFormat is enabled by default. See below for details.
- Updates lm-coursier-shaded to 2.1.4, which brings in Coursier 2.1.9
[#&#8203;7513][7513].
- Updates Jsch to [mwiede/jsch](https://github.com/mwiede/jsch) fork
by [@&#8203;azolotko][@&#8203;azolotko] in [lm#436][lm436]
- Updates the Scala version used by sbt 1.x to 2.12.19 by
[@&#8203;SethTisue][@&#8203;SethTisue] in [#&#8203;7516][7516].

#### SIP-51 Support for Scala 2.13 Evolution

Modern Scala 2.x has kept both forward and backward binary compatibility
so a library compiled using Scala 2.13.12 can be used by an application
compiled with Scala 2.13.11 etc, and vice versa. The forward
compatibility restricts Scala 2.x from evolving during the patch
releases, so in [SIP-51][sip51] Lukas Rytz at Lightbend Scala Team
proposed:

> I propose to drop the forwards binary compatibility requirement that
build tools enforce on the Scala 2.13 standard library. This will allow
implementing performance optimizations of collection operations that are
currently not possible. It also unblocks adding new classes and new
members to existing classes in the standard library.

Lukas has also contributed changes to sbt 1.10.0 to enforce stricter
`scalaVersion`. Starting sbt 1.10.0, when a Scala 2.13.x patch version
newer than `scalaVersion` is found, it will fail the build as follows:

```scala
sbt:foo> run
[error] stack trace is suppressed; run last scalaInstance for the full output
[error] (scalaInstance) expected `foo/scalaVersion` to be "2.13.10" or later,
[error] but found "2.13.5"; upgrade scalaVerion to fix the build.
[error]
[error] to support backwards-only binary compatibility (SIP-51),
[error] the Scala 2.13 compiler cannot be older than scala-library on the
[error] dependency classpath.
[error] see `foo/evicted` to know why scala-library 2.13.10 is getting pulled in.
```

When you see the error message like above, you can fix this by updating
the Scala version to the suggested version (e.g. 2.13.10):

```scala
ThisBuild / scalaVersion := "2.13.10"
```

Side note: Old timers might know that [sbt
0.13.0](https://www.scala-sbt.org/0.13/docs/ChangeSummary\_0.13.0.html#sbt+0.13.0)
also introduced the idea of *scala-library as a normal dependency*. This
created various confusions as developers expected `scalaVersion`,
compiler version, and scala-library version as expected to align. With
the hindsight, sbt 1.10.0 will continue to respect `scalaVersion` to be
the source-of-truth, but will reject bad ones at build time.

This was contributed by Lukas Rytz in [#&#8203;7480][7480].

#### Zinc fixes

- Fixes macro undercompilation by invalidating macro call sites when a
type parameter changes by [@&#8203;Friendseeker][@&#8203;Friendseeker]
in [zinc#1316][zinc1316]
- Fixes macro undercompilation by invalidating macro source when its
dependency changes by [@&#8203;dwijnand][@&#8203;dwijnand] in
[zinc#1282][zinc1282]
- Fixes SAM type undercompilation by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1288][zinc1288]
- Fixes infinite incremental loop when Scala and Java are involved by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1312][zinc1312]
- Fixes overcompilation on default parameter changes by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1324][zinc1324]
- Fixes `IncOptions.useOptimizedSealed` not working for Scala 2.13 by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1278][zinc1278]
- Includes extra invalidations in initial validation to fix initial
compilation error by [@&#8203;Friendseeker][@&#8203;Friendseeker] in
[zinc#1284][zinc1284]
- Refixes compact names without breaking local names by
[@&#8203;dwijnand][@&#8203;dwijnand] in [zinc#1259][zinc1259]
- Undoes Protobuf workaround for build to work on Apple Silicon by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1277][zinc1277]
- Uses `ClassTag` instead of `Manifest` by
[@&#8203;xuwei-k][@&#8203;xuwei-k] in [zinc#1265][zinc1265]
- Encodes parent trait private members in `extraHash` to propagate
`TraitPrivateMembersModified` across external dependency by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1289][zinc1289]
- Includes internal dependency in `extraHash` computation by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1290][zinc1290]
- Deletes products of previous analysis when dropping previous analysis
by [@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1293][zinc1293]
- Uses the most up-to-date analysis for binary to source class name
lookup by [@&#8203;Friendseeker][@&#8203;Friendseeker] in
[zinc#1287][zinc1287]
- Fixes inconsistent Analysis by removing source stamp caching by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1319][zinc1319]
- Invalidate sources that depends on `@inline` methods in Scala 2.x by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1310][zinc1310]
- Fixes `-Xshow-phases` handling by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [zinc#1314][zinc1314]

#### ConsistentAnalysisFormat: new Zinc Analysis serialization

sbt 1.10.0 adds a new Zinc serialization format that is faster and
repeatable, unlike the current Protobuf-based serialization. Benchmark
data based on scala-library + reflect + compiler:

|                             | Write time | Read time | File size |
|-----------------------------|------------|-----------|-----------|
| sbt Text                    |    1002 ms |    791 ms |   ~ 7102 kB |
| sbt Binary                  |     654 ms |    277 ms |   ~ 6182 kB |
| ConsistentBinary            |     157 ms |    100 ms |   3097 kB |

Since Zinc Analysis is internal to sbt, sbt 1.10.0 will enable this
format by default. The following setting can be used to opt-out:

```scala
Global / enableConsistentCompileAnalysis := false
```

This was contributed by Stefan Zeiger at Databricks in
[zinc#1326][zinc1326].

#### New CommandProgress API

sbt 1.10.0 adds a new CommandProgress API.

This was contributed by Iulian Dragos at Gradle Inc in
[#&#8203;7350][7350].

#### Other updates

- Updates to JLine 3.24.1 and JAnsi 2.4.1 by
[@&#8203;hvesalai][@&#8203;hvesalai]/[@&#8203;mazugrin][@&#8203;mazugrin]
in [#&#8203;7419][7419]/[#&#8203;7545][7545]
- Supports cross-build for external project ref by
[@&#8203;RustedBones][@&#8203;RustedBones] in [#&#8203;7389][7389]
- Avoids deprecated `java.net.URL` constructor by
[@&#8203;xuwei-k][@&#8203;xuwei-k] in [#&#8203;7398][7398]
- Fixes bug of unmanagedResourceDirectories by
[@&#8203;minkyu97][@&#8203;minkyu97] in [#&#8203;7178][7178]
- Fixes `updateSbtClassifiers` task by
[@&#8203;azdrojowa123][@&#8203;azdrojowa123] in [#&#8203;7437][7437]
- Fixes `packageSrc` to include `managedSources` by
[@&#8203;Friendseeker][@&#8203;Friendseeker] in [#&#8203;7470][7470]
- Fixes publishing to use the publisher specified using the `publisher`
setting by [@&#8203;Tammo0987][@&#8203;Tammo0987] in
[#&#8203;7475][7475]
- Fixes eviction warning message by avoid repeating versions by
[@&#8203;rtyley][@&#8203;rtyley] in [lm#433][lm433]
- BSP: Implements `buildTarget/javacOptions` by
[@&#8203;adpi2][@&#8203;adpi2] in [#&#8203;7352][7352]
- BSP: Adds `noOp` field in the compile report by
[@&#8203;adpi2][@&#8203;adpi2] in [#&#8203;7496][7496]

</details>

<details>
<summary>scalacenter/sbt-dependency-submission
(scalacenter/sbt-dependency-submission)</summary>

### [`v3`](https://github.com/scalac

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm on thursday" (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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

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

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/scarisey/pct-compose).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM3LjQzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
lihaoyi added a commit that referenced this pull request Sep 7, 2024
Basically the same thing we did in
#295 and
#283, except rather than being
`os.SubProcess`-specific this applies to all usage of `os.pwd`. And with
similar limitations: this works for code paths that go through OS-Lib,
but not for code that uses `java.io` or `java.nio` directly.

AFAIK this is the last of the "global" things we need to redirect in
Mill tasks, after env variables and default subprocess streams. I'd like
it to go into Mill 0.12.0 together with the other sandboxing-related
changes

Added unit tests and updated the documentation

Pull Request: #298
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Automatically pump streams with os.Inherit on changed System.out System.err System.in
2 participants