Refactor artifact log command
Description
As it currently stands, the only artifact subcommand that can actually handle artifact refs is bst artifact log
, however, to do this, a lot of low-level ArtifactCache/CASCache specific logic has been used in cli.py.
After a recent discussion on IRC involving myself, @juergbi and @tristanvb, it was agreed this this logic should not bleed out so high.
Therefore, this MR aims to introduce a dummy ArtifactElement class which we will begin to use to help us handle artifact refs (while passing ArtifactElements off to the scheduler).
This work includes the necessary refactor of bst artifact log
and serves as a first step towards allowing other artifact sub-commands (which will make use of ArtifactElement), such as bst artifact checkout/pull/push/delete
, to 'cleanly' handle artifact refs.
Further information
A more detailed write up of the general issue can be found here: https://mail.gnome.org/archives/buildstream-list/2019-January/msg00040.html