Skip to content

Optional support for file timestamps

Background

Optional support for file timestamps in NodeProperty. This is required for incremental workspace builds in BuildStream. For non-incremental builds (and sources not providing timestamps such as git kinds) the magic timestamps will continue to be used.

This depends on support in buildbox-casd: BuildGrid/buildbox/buildbox-casd#40 (closed)

This is considered DONE when:

  • update protos (mirror changes in BuildGrid/buildbox/buildbox-common#32 and BuildGrid/buildbox/buildbox-casd#40 (closed))
  • BuildGrid/buildbox/buildbox-common#32
  • BuildGrid/buildbox/buildbox-casd#40 (closed)
  • update docker image for latest casd
  • Optionally support timestamps in importing trees to cascache:
    • support properties in CASCache.import_directory -> CaptureTree (casd implementation)
    • add node properties to _partial_import_cas_into_cas
    • if mtimes are requested, only copy files
      • properties support in IndexEntrys
    • optional on if source supports mtimes: BST_SOURCE_HAS_MTIME = True other sources should use magic times still
  • Optionally support timestamps in staging trees from cascache
    • support properties in _import_files_from_cas and set mtime if supplied
    • support properties in export_files
      • parse MTime property in CASCache.checkout
    • sandboxes:
      • stage_sources ->
      • _stage_sources_in_sandbox ->
      • _stage_sources_at ->
      • sourcecache.export(source)
      • CasBasedDirectory.import_files
    • sourcecache.commit()
      • CasBasedDirectory.import_files
      • SourceCache.export
      • CasBasedDirectory.export_files
      • Source._stage
  • test can stage with arbitrary mtime
Edited by Jürg Billeter
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information