<#21619 Use `__dependents_rules__` to optimize `pa...
# github-notifications
c
#21619 Use `__dependents_rules__` to optimize `pants dependents` calculation Issue created by grihabor Is your feature request related to a problem? Please describe. We have the following monorepo structure:
Copy code
src/python/ # shared code
project1/
project2/
...
Projects are not allowed to depend on different project targets except for
src/python
, so we have rules for every project: __dependents_rules__( # We don't want anybody to import from project1. ( {"path": "project1/**"}, "project1/**", "!*", ), ("*", "!*"), ) Every project has it's own
docker_image
targets and
helm_deployment
targets. Now, imagine we change some code in
project1/src/
and try to deploy it with: pants dependents --transitive --changed-since=origin/main This triggers a bunch of calculation like:
Copy code
⠁ 0.00s Rendering Helm deployment project1/helm:project1
⠁ 1.03s Rendering Helm deployment project2/helm:project2
⠁ 1.45s Rendering Helm deployment project3/helm:project3
⠁ 1.52s Rendering Helm deployment project4/helm:project4
⠁ 0.54s Rendering Helm deployment project5/helm:project5
⠁ 1.61s Rendering Helm deployment project6/helm:project6
⠁ 0.09s Rendering Helm deployment project7/helm:project7
which takes about 4 minutes without cache. However we know for sure that no project can depend on
project1/src/
which means we can skip other projects. Describe the solution you'd like Collect information from
__dependents_rules__
and use it to optimize
pants dependents
logic. Describe alternatives you've considered Live with very slow
pants dependents
and cry pantsbuild/pants