I don't know whether I have reported this before. Having FEATURES=test makes `emerge world' fail because some ruby packages recursively require other ruby packages to do src_test() properly. It would be extremely easy to test for that in src_test() or some prevailing eclass, and to fail elegantly when the requirements aren't met, and then just have users get on with it. It would remain a developer's or arch tester's task to then test again with the right requirements in place. Example: = = = = = = = Total: 21 packages (1 downgrade, 20 new), Size of downloads: 603 kB * Error: circular dependencies: (dev-ruby/parsetree-3.0.7::gentoo, ebuild scheduled for merge) depends on (dev-ruby/ruby2ruby-1.2.4-r2::gentoo, ebuild scheduled for merge) (buildtime) (dev-ruby/parsetree-3.0.7::gentoo, ebuild scheduled for merge) (buildtime) It might be possible to break this cycle by applying any of the following changes: - dev-ruby/ruby2ruby-1.2.4-r2 (Change USE: -test) - dev-ruby/parsetree-3.0.7 (Change USE: -test) Note that this change can be reverted, once the package has been installed. = = = = = = = Note that no other herd requires such src_test() deps.
I agree that this would be a useful thing to have. We could show a warning to indicate that tests were requested but could not be satisfied at this time. I don't think it's extremely easy, though, but perhaps I'm overlooking a possible solution? I can see how we could do this by marking known circular dependencies in known ebuilds, but I don't really see yet how we could make this more generic. Note that this also applies to USE=doc (see e.g. app-text/ronn and its dependencies).
(In reply to comment #1) > I agree that this would be a useful thing to have. We could show a warning > to indicate that tests were requested but could not be satisfied at this > time. Yes. > I don't think it's extremely easy, though, but perhaps I'm overlooking a > possible solution? I can see how we could do this by marking known circular > dependencies in known ebuilds, but I don't really see yet how we could make > this more generic. CCing dev-portage@. > Note that this also applies to USE=doc (see e.g. app-text/ronn and its > dependencies). USE=doc is different, because it isn't enabled with FEATURES=test like USE=test is. Since USE=test requirements cause circular deps, stuff cannot be emerged where it counts, i.e. on arch testers/devs machines.
Maybe some of the test suites can be split into separate ebuilds in order to break the cycles?
Or portage could finally learn how to disable USE/FEATURES=test temporarily and then re-merge packages.
(In reply to comment #4) > Or portage could finally learn how to disable USE/FEATURES=test temporarily > and then re-merge packages. Yeah, we could classify that as bug 175808.
*** Bug 445170 has been marked as a duplicate of this bug. ***
This is really resolved by --with-test-deps and isn't specific to Ruby. Python has this extensively, and Perl does too to an extent.