Skip to content

Refactor `_artifactcache` folder

Background

As it stands, the _artifactcache folder contains all the CAS logic, but #440 (closed) proposes using a remote SourceCache that is CAS based. The CASCache class implements a lot of the remote logic, with CASRemote being more of a data structure containing GRPC stubs and such.

I propose to refactor the _artifactcache folder making it a _cas folder, moving ArtifactCache into a buildstream root module, and separating out remote and local CAS logic. This will make it easier to add the SourceCache, reusing the remote logic while writing out in a separate format.

Task description

  • Rename the _artifactcache folder to _cas and move artifactcache.py to _artifactcache.py in the buildstream root, changing relevant imports.
  • Move CASRemote into it's own file and change relevant imports.
  • Move remote logic from CASCache into CASRemote, updating ArtifactCache to work with new changes.

Acceptance Criteria

Behavior should remain exactly the same with refactored _cas folder.


This when done will allow work to start on #440 (closed)

Edited by Raoul Hidalgo Charman
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information