hi all :wave: my changes in <https://github.com/pa...
# development
s
hi all 👋 my changes in https://github.com/pantsbuild/pants/pull/15098 have caused
test_all_backends_loaded
in
src/python/pants/init/load_backends_integration_test.py
to start timing out. I’m able to reproduce locally inside the pants repo by enabling
bandit
and
pylint
on top of the already-enabled linters (
black
,
docformatter
,
flake8
, and
isort
). the error doesn’t reproduce if I enable only one of
bandit
or
pylint
- it also doesn’t repro if I enable those 2 and disable the 4 existing linters, or if I enable those 2 + one of the other already-enabled linters. I’m not sure where to go from here on debugging, does anyone have any tips?
h
@witty-crayon-22786 I have not had a ton of time to personally investigate, but Dan and I have been having some issues with the rule graph registration in https://github.com/pantsbuild/pants/pull/15098
w
will take a look this afternoon: thanks!
❤️ 2
hm. this is very fishy indeed. i initially suspected that it had to do with returning
-> InterpreterConstraints
from so many more rules, but it instead appears to be related to the union itself… which is very surprising, because the initial solution for https://github.com/pantsbuild/pants/issues/12934 should have made that effectively impossible.
but it looks like removing one layer of inlining from the caller resolves it…? pushing a fix now. @sparse-lifeguard-95737: sorry for the trouble. rule graph error messages and edge cases are definitely a priority before stabilizing the plugin API.
s
no worries! I appreciate you hunting down the problem 🙂
w
@hundreds-father-404: regarding the addition of
ExportPythonToolSentinel
vs the existing
GenerateToolLockfileSentinel
… it seems like those two unions have almost the same purpose (define requirements for an execution), but perhaps with slightly different data: were you thinking to add a new one, and then merge them post-landing?
h
I wanted them to be combined at first. I don't think it's possible because one of them is the ingredients to generate a lock, and the other is when you are consuming the lock
I suppose that we could abuse export Python toool Sentinel?
Thank you for the fix Stu