Create Artifact abstraction class

Background

For Artifact as a Proto an abstract Artifact class, which will implement artifact specific functions which currently reside in Element.

Task description

  • Create list of existing functions that should be abstracted out of Element via Artifact

Current list of potential artifact related funcs to abstract:

  • __compute_splits (imports files dir of artifact)

  • stage_artifact (imports files dir of artifact)

  • _stage_sources_at (checks if a requested buildtree is cached empty)

  • _cache_artifact

  • _get_build_log

  • _cached_buildtree

  • __extract

  • __get_artifact_metadata_keys

  • __get_artifact_metadata_dependencies

  • __get_artifact_metadata_workspaced

  • __get_artifact_metadata_workspaced_dependencies

  • __load_public_data

  • __load_build_result

  • Abstract out, no new tests to be added

Acceptance Criteria

Current bst functionality is preserved


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