Version artifacts instead of Git commits
Right now, it's possible to add a new version of any artifact as long as there is no existing artifact version at that Git commit.
For example, in https://github.com/iterative/example-gto:
$ echo foo > foo
$ git add .
$ git commit -m "unrelated change"
[main 0b33552] unrelated change
1 file changed, 1 insertion(+)
create mode 100644 foo
$ gto register churn
Created git tag '[email protected]' that registers a new version
$ git diff [email protected] [email protected] -- artifacts.yaml models/churn.pkl
v3.1.1 and v3.0.0 reference the same models/churn.pkl object, and none of the metadata or enrichment data has changed either, so it seems like there are two versions of the same artifact. Could gto prevent a new version in this scenario?
This could be used to:
- Check whether this artifact has already been versioned.
- Automate version bumping (bump every artifact that has changed and redeploy only those artifacts).
- Prevent unnecessary tags and reduce clutter.
Thanks! Related to your earlier feedback: https://github.com/iterative/gto/issues/89
Don't think it's relevant any more since index is a part of DVC now, but keeping it open since it's very useful from product/user perspective and in case we'll want to do it in DVC or Studio at some moment.