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 Graphwitty-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 ExecuteProcessRequestwitty-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::ExecuteProcesswitty-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 NodeKeyhundreds-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