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 failinghundreds-father-404
06/19/2019, 10:10 PMhundreds-father-404
06/19/2019, 10:12 PMengine/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
typehundreds-breakfast-49010
06/19/2019, 11:08 PMengine/src/nodes.rs
?hundreds-father-404
06/19/2019, 11:08 PMhundreds-breakfast-49010
06/19/2019, 11:39 PMhundreds-breakfast-49010
06/19/2019, 11:40 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
witty-crayon-22786
06/20/2019, 12:13 AMgraph
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.rswitty-crayon-22786
06/20/2019, 12:14 AMimpl Node for NodeKey
(or WrappedNodeKey...? i forget which.)hundreds-breakfast-49010
06/20/2019, 12:14 AMhundreds-breakfast-49010
06/20/2019, 12:14 AMhundreds-breakfast-49010
06/20/2019, 12:15 AMwitty-crayon-22786
06/20/2019, 12:15 AMEq
for that NodeKeywitty-crayon-22786
06/20/2019, 12:15 AMwitty-crayon-22786
06/20/2019, 12:16 AMhundreds-breakfast-49010
06/20/2019, 12:16 AMhundreds-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 AMhundreds-breakfast-49010
06/20/2019, 12:18 AMEq
on NodeKey
to omit the description?witty-crayon-22786
06/20/2019, 12:18 AMwitty-crayon-22786
06/20/2019, 12:18 AMwitty-crayon-22786
06/20/2019, 12:19 AM@rule
requests a process execution, they include a descriptionwitty-crayon-22786
06/20/2019, 12:19 AMwitty-crayon-22786
06/20/2019, 12:20 AMwitty-crayon-22786
06/20/2019, 12:21 AMhundreds-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 AMwitty-crayon-22786
06/20/2019, 12:23 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 AMwitty-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
witty-crayon-22786
06/20/2019, 12:24 AMhundreds-breakfast-49010
06/20/2019, 12:27 AMhundreds-breakfast-49010
06/20/2019, 12:27 AMNodeKey
holds a ExecuteProcessRequest
at all, it's going to have the description field internallyhundreds-breakfast-49010
06/20/2019, 12:28 AMExecuteProcess
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
hundreds-breakfast-49010
06/20/2019, 12:29 AMExecuteProcess
(without the description) would end up pulling the wrong descriptionwitty-crayon-22786
06/20/2019, 12:29 AM