hundreds-breakfast-49010
06/19/2019, 10:08 PMGraph
is and why there's a distinction between FallibleExecutProcessResult and ExecuteProcessResult, and other things pertaining to these typeshundreds-father-404
06/19/2019, 10:10 PMFallibleExecuteProcessResult
allows for failures. It’s useful for things like unit tests, where we are okay with the process failingengine/fs.py
and engine/isolated_process.py
define most of the primitives that you use to create a V2 rulehundreds-breakfast-49010
06/19/2019, 11:07 PMNodeKey
typeengine/src/nodes.rs
?hundreds-father-404
06/19/2019, 11:08 PMhundreds-breakfast-49010
06/19/2019, 11:39 PMhundreds-father-404
06/19/2019, 11:43 PMwitty-crayon-22786
06/20/2019, 12:12 AMNodeKey
(which derives Eq
) is the "key"/identity for a Node
in the Graph
graph
is a separate crate with tests and a small set of traits: https://github.com/pantsbuild/pants/blob/master/src/rust/engine/graph/src/node.rsimpl Node for NodeKey
(or WrappedNodeKey...? i forget which.)hundreds-breakfast-49010
06/20/2019, 12:14 AMwitty-crayon-22786
06/20/2019, 12:15 AMEq
for that NodeKeyhundreds-breakfast-49010
06/20/2019, 12:16 AMExecutProcess
is a newtype wrapper around ExecuteProcessRequest
witty-crayon-22786
06/20/2019, 12:17 AMhundreds-breakfast-49010
06/20/2019, 12:17 AMEq
on NodeKey
to omit the description?witty-crayon-22786
06/20/2019, 12:18 AM@rule
requests a process execution, they include a descriptionhundreds-breakfast-49010
06/20/2019, 12:21 AMNodeKey::ExecuteProcess
to not wrap ExecuteProcess
, which has the descritpion, ultimatelywitty-crayon-22786
06/20/2019, 12:22 AMhundreds-breakfast-49010
06/20/2019, 12:22 AMExecuteProcessRequest
?witty-crayon-22786
06/20/2019, 12:22 AMhundreds-breakfast-49010
06/20/2019, 12:22 AMwitty-crayon-22786
06/20/2019, 12:22 AMNode
is a item in the graph
... it's the unit of memoizationhundreds-breakfast-49010
06/20/2019, 12:23 AMExecuteProcess
newtype exist?witty-crayon-22786
06/20/2019, 12:23 AMhundreds-breakfast-49010
06/20/2019, 12:24 AMwitty-crayon-22786
06/20/2019, 12:24 AMNodeKey::ExecuteProcess
could probably directly hold a process_execution::ExecuteProcess
hundreds-breakfast-49010
06/20/2019, 12:27 AMNodeKey
holds a ExecuteProcessRequest
at all, it's going to have the description field internallyExecuteProcess
to have all the fields of ExecuteProessRequest
except the descriptionwitty-crayon-22786
06/20/2019, 12:28 AMhundreds-breakfast-49010
06/20/2019, 12:28 AMExecuteProcessRequest
to have a description and a field of a new type ExecuteProcess
, that same ExecuteProcess
is used in NodeKey
ExecuteProcess
(without the description) would end up pulling the wrong descriptionwitty-crayon-22786
06/20/2019, 12:29 AM