Support nodeproperty in remote-execution proto
In order to support optional node properties in buildbox-casd the remote execution proto must be updated to reflect changes in https://github.com/bazelbuild/remote-apis/pull/102 and https://github.com/bazelbuild/remote-apis/pull/91
this will also require changes to local_cas.proto and some utlities
-
update RE proto for NodePropertyso these can be used on [File]Nodes -
add repeated string node_propertiestoCaptureTreeRequestso requests can indicate what properties to attempt to encode in the tree nodes -
support properties in make_nesteddirectoryfor Files: so tree digest will reflect requested properties (at least supportMTime) -
support MTimes in File::to_filenode: addd_mtimetoFileand a functionFileUtils::get_file_mtime). will require adding the NodeProperty to the FileNode such that the tree digests will reflect this: ideally we would add node_properties to the NodeMetaData although it's not necessary since aiui this is not regarded as meaningful for collision detection -
add properties to CaptureTreeRequestinClient::captureTree, currently there's no way to make mtimes optional viacaptureDirectorysince this is a callback incaptureAllOutputsand properties are not encoded in the command. it's possible to do this but it would require further api changes -
add FileUtils::set_file_mtime
nb. the client's implementation of stage() essentially just calls StageTree, provided StageTree anticipates properties that is sufficient
Edited by Darius Makovsky