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