hundreds-father-404
11/15/2019, 2:14 AMException: No installed @rules can compute TestResult for input Params((PyTest+PythonNativeCode+PythonSetup+PythonTestsAdaptor+SubprocessEnvironment)), but there were @rules that could compute it using:
E Params((OptionsBootstrapper+PythonNativeCode+PythonTestsAdaptor+SubprocessEnvironment))
This is for https://github.com/pantsbuild/pants/pull/8630/files#diff-c67a9cfea4000f6c874fc1011113d7d3. I’m confused why it would want an OptionsBootstrapper
rather than Pytest
+ PythonSetup
, as the run_python_test
rule explicitly requests Pytest
and PythonSetup
aloof-angle-91616
11/15/2019, 5:12 AMOptionsBootstrapper
, that's saying that OptionsBootstrapper
is within the set of available Params
OptionsBootstrapper
is required for every optionable_rule()
, i believehundreds-father-404
11/15/2019, 5:14 AMaloof-angle-91616
11/15/2019, 5:14 AMOptionsBootstrapper
provided as well. i might also check out other tests of rules elsewhere in the repo to see what they do to test `optionable_rule()`sOptionsBootstrapper
is explicitly necessary (it's not in OptionableFactory.signature()
, but i believe it ishundreds-father-404
11/15/2019, 5:28 AMaloof-angle-91616
11/15/2019, 5:38 AMtests/python/pants_test/engine/legacy/test_options_parsing.py
? in particular options_bootstrap = OptionsBootstrapper.create(
args=tuple(args),
env=dict(env),
)
hundreds-father-404
11/15/2019, 5:52 PMdef rules():
includes an optionable_rule
in its entries, then it will require OptionsBootstrapper
. The solution was to stop including `optionable_rule`s and mark subsystem dependencies as `RootRule`saloof-angle-91616
11/15/2019, 11:01 PMhundreds-father-404
11/15/2019, 11:02 PMwe wouldn’t want to just include the OptionsBootstrapper automaticallyNaively trying to do this today resulted in complaints that we had unrecognized options
aloof-angle-91616
11/15/2019, 11:03 PM