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
As a follow up to #8090 rules that consume platform dependent output (Pex for instance) should respect the target_platform that it was built for. Currently we have the ability to restrict the execution platform of a request, but the target_platform is not respected. For instance the run_python_test rule creates a pytest Pex. That Pex is built on the local platform but if speculation is enabled it could be shipped and run on the remote platform, which if different would result in a stochastic error.
To prevent this we need to add a target platform field to the Pex class that consuming rules can respect. Then execution they request can happen on the platform that the Pex is compatible with. Once we have #7490 and Platforms are yieldable in Get's we can request Pex's for multiple platforms and make the run_python_test rule multi platform compatible.
The text was updated successfully, but these errors were encountered:
It would be good to expand the design doc (and link it here) to account for this case: we probably want to fix this more generally via the graph, rather than necessarily fixing it only for Pex.
Agreed. I think the "fixing via the graph" is the same as #8353 which already has speculation on inputs as a follow up. Dependency wise I think we need:
As a follow up to #8090 rules that consume platform dependent output (Pex for instance) should respect the target_platform that it was built for. Currently we have the ability to restrict the execution platform of a request, but the target_platform is not respected. For instance the
run_python_test
rule creates a pytest Pex. That Pex is built on the local platform but if speculation is enabled it could be shipped and run on the remote platform, which if different would result in a stochastic error.To prevent this we need to add a target platform field to the Pex class that consuming rules can respect. Then execution they request can happen on the platform that the Pex is compatible with. Once we have #7490 and Platforms are yieldable in Get's we can request Pex's for multiple platforms and make the
run_python_test
rule multi platform compatible.The text was updated successfully, but these errors were encountered: