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