I’m about to add some pieces of functionality to `...
# announce
a
I’m about to add some pieces of functionality to
process_executor
, specifically to be able to hand it an action digest to re-run, rather than needing to reproduce all of the pieces from the action on the command line… Some questions in a thread…
1. Does anyone else actually use this thing ever?
2. I’m using buildbarn, and the buildbarn browser tracks metadata around actions and presents it to users. How would folks feel about teaching
process_executor
about the buildbarn metadata protos to allow you to optionally specify one of those? If folks are wary, I can make a wrapper script or an independent binary which re-uses `process_executor`’s code, but I think I saw folks here messing with buildbarn too, so thought it could be more generally useful. The overhead I think would be: 1. Codegen for one more (trivial) protobuf 2. An extra flag or two on
process_executor
e
cc @fast-nail-55400
f
I believe REAPI has that metadata field as an Any, right? I’d be fine with Pants being able to decode “known” protos in that field.
a
There are two halves - the action execution metadata is an
Any
(could be nice, but I’m not super interested in that one), the other is that links in BBB use a digest of an
UncachedActionResult
proto (a BB thing not an REAPI thing) which has the action digest embedded in it
Ideally I’d like folks to be able to just paste in a BBB URL, and to be able to extract the
UncachedActionResult
digest from it, fetch that, and infer the action digest
f
that BBB URL part seems fine. I suggest making the options enabling it make clear it is BuildBarn-specific
👍 1
this isn’t “generic” functionality
how would you retrieve the
UncachedActionResult
? normal CAS RPCs?
a
Yeah, the digest will be in the CAS (the Browser is only powered by things in the CAS, so if they’re missing in the CAS they won’t have a Browser page either)
So the logic goes: • Parse out digest from URL • Fetch digest, deserialize, read action digest • Fetch action digest, deserialize, parse out into
Process
• Execute process with whatever strategy is appropriate
Oops, not sure how this ended up in releases not remoting... Anywho I just raised a PR for this at https://github.com/pantsbuild/pants/pull/11283 - would appreciate some eyes when folks have time :)