ambitious-actor-36781
12/21/2022, 9:50 PMwide-midnight-78598
12/21/2022, 9:59 PMmy_publish targets at once?ambitious-actor-36781
12/21/2022, 10:04 PM//a/b/product/foo that might depend on //a/b/modules/bar they need to be deployed together with one Process call
But if I also say i want to publish //a/b/product/foo and //a/b/product/wiz that both depend on the same stuff... they also need to be deployed together in one call (else the remote idempotentce stuff fucks out and throws a fault code when you try do it in parallel)
And I have just realized i'm confusing Publish with Deploywide-midnight-78598
12/21/2022, 10:06 PMexperimental_deploy on first read to me.curved-television-6568
12/21/2022, 10:09 PMambitious-actor-36781
12/22/2022, 1:06 AMambitious-actor-36781
12/22/2022, 1:11 AMwide-midnight-78598
12/22/2022, 1:52 AMpackage these 5 targets), pass them all in as a digest to a single Process, and that magic Process is your "deployment" piece (whatever the business logic or tool that is)wide-midnight-78598
12/22/2022, 1:56 AMambitious-actor-36781
12/22/2022, 2:02 AM./pants deploy //foo/bar/baz //foo/bar/wiz and they both have overlapping dependenciesambitious-actor-36781
12/22/2022, 2:02 AMwide-midnight-78598
12/22/2022, 2:04 AMambitious-actor-36781
12/22/2022, 2:04 AMwide-midnight-78598
12/22/2022, 2:05 AMwide-midnight-78598
12/22/2022, 2:06 AMambitious-actor-36781
12/22/2022, 2:09 AMbaz depends on common you need to 'deploy' (baz, common) in one call (regardless or not if common has changed)
And if wiz also depends on it, you need to deploy (wiz, common)
But there's some parallelism controls on the 'remote' end and it can cause errors if you do (baz, common), (wiz, common) asynchronously but none if you do (baz, wiz, common)wide-midnight-78598
12/22/2022, 2:11 AMambitious-actor-36781
12/22/2022, 2:12 AMDeployProcess that specifies it's Process and dependent targets that will also need deploying.wide-midnight-78598
12/22/2022, 2:13 AMambitious-actor-36781
12/22/2022, 2:13 AMexperimental- for a reasonwide-midnight-78598
12/22/2022, 2:15 AMambitious-actor-36781
12/22/2022, 2:20 AM./pants e-deploy //foo //bar will
get a DeployProcess for each target
Then publish any dependencies specified by that process.
and then individually call the process for each of those targets.
so yes, two separate processes.ambitious-actor-36781
12/22/2022, 2:20 AMwide-midnight-78598
12/22/2022, 2:21 AMambitious-actor-36781
12/22/2022, 2:22 AMwide-midnight-78598
12/22/2022, 2:26 AMwide-midnight-78598
12/22/2022, 2:27 AMambitious-actor-36781
12/22/2022, 2:28 AMambitious-actor-36781
12/22/2022, 2:28 AMwide-midnight-78598
12/22/2022, 2:29 AMcurved-television-6568
12/22/2022, 2:42 PMpython_distribution target.
When asked to deploy baz, find out it depends on common and include that in the same āunit of workā.
When asked to deploy baz and wiz things gets a little bit more interesting, as the backend preparing the deployment wonāt know about more than one at a time (if the deploy goal is implemented in the same manner as publish) so thereāll need to be some sort of funnel in the deploy goal that can take the units of deployment and merge them into one, for those units that makes sense (likely on a per deployment-tool basis perhaps) ā as @wide-midnight-78598 correctly alluded from my previous comment, this might be merging input digests for all the Processes into one so you can have a single Process with all the resources for it from all relevant targets to deploy.
Thatās what it looks like to me at least š