You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a situation where I build a multi output pkg from a monorepo.
Multiple subpackages with dependencies between them are built. "Normal" run dependencies work fine (I use pin_subpackage for this).
However, tests for one subpackage package require another subpackage. Using pin_subpackage for this works fine with conda-build, but rattler-build 0.28.0 doesn't seem to like this.
While we're at it: The situation I have also actually contains a dependency cycle (at test time only), and conda-build handles this. I'm just mentioning it here, because it seems like rattler-build seems to follow an eager testing schedule (test right after build), whereas conda first builds all subpackages, and then tests them. Rattler-build's eager testing behavior would not be compatible with this, unless the test-pins will be considered in the sorting of build steps (which can be a bit challenging given that it is in fact a cycle). With conda-build's build first, test later approach, this is no issue.
Thanks! Yes, I was aware of the issues with eager testing and it's something I would like to address soon. I would like to sort packages to still test as early as possible just to make users detect issues early on.
thread 'main' panicked at src/lib.rs:415:55:
Could not parse MatchSpec: ParseChannelError(InvalidName("{\"pin_subpackage\":{\"name\""))
stack backtrace:
0: rust_begin_unwind
1: core::panicking::panic_fmt
2: core::result::unwrap_failed
3: rattler_build::can_test
4: core::iter::traits::iterator::Iterator::partition
5: rattler_build::run_build_from_args::{{closure}}
6: rattler_build::main::{{closure}}
7: tokio::runtime::park::CachedParkThread::block_on
8: tokio::runtime::runtime::Runtime::block_on
9: rattler_build::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
The specific use case is we're splitting torchvision's tests into a subpackage, so they wouldn't multiply the size of the main package. For the time being, I have worked around the problem by specifying the pinned subpackage as a regular run requirement in the *-tests subpackage.
I have a situation where I build a multi output pkg from a monorepo.
Multiple subpackages with dependencies between them are built. "Normal" run dependencies work fine (I use
pin_subpackage
for this).However, tests for one subpackage package require another subpackage. Using
pin_subpackage
for this works fine with conda-build, but rattler-build 0.28.0 doesn't seem to like this.While we're at it: The situation I have also actually contains a dependency cycle (at test time only), and conda-build handles this. I'm just mentioning it here, because it seems like rattler-build seems to follow an eager testing schedule (test right after build), whereas conda first builds all subpackages, and then tests them. Rattler-build's eager testing behavior would not be compatible with this, unless the test-pins will be considered in the sorting of build steps (which can be a bit challenging given that it is in fact a cycle). With conda-build's build first, test later approach, this is no issue.
Reproducer:
The text was updated successfully, but these errors were encountered: