iterative / gto

🏷️ Git Tag Ops. Turn your Git repository into Artifact Registry or Model Registry.
https://dvc.org/doc/gto
Apache License 2.0
142 stars 16 forks source link

Making it easy to experiment with GTO while trying it out #332

Open aguschin opened 1 year ago

aguschin commented 1 year ago

Posting this as a result of a discussion with @shortcipher3:

I think the main thing for me is I would like to be able to try it out maybe with a few setups, show it off and get feedback and change things based on feedback. The tool is simple and flexible which I like, but it allows for different setups, so I would like to see what works best for us.

I think a couple things would be really helpful for this kind of sandboxing.

  1. Being able to blow away gto and start fresh
  2. Having a history or being able to get a list of commands that will generate the current gto state

This would make it a lot easier to undo and redo a bunch of commands.

I think cloning the repo and using the clone as a sandbox would help with my case. Ideally I would like to be working directly in the original repo.

So, that was the feedback. My thoughts:

  1. Being able to blow away gto and start fresh

Means removing all Git tags that were created by GTO. Don't touch anything else, e.g. Git commits that were created to modify artifacts.yaml

  1. Having a history or being able to get a list of commands that will generate the current gto state

Rn there is this command

$ gto history
╒═════════════════════╤════════════╤══════════════╤═══════════╤═════════╤══════════╤══════════════════╕
│ timestamp           │ artifact   │ event        │ version   │ stage   │ commit   │ ref              │
╞═════════════════════╪════════════╪══════════════╪═══════════╪═════════╪══════════╪══════════════════╡
│ 2022-11-27 08:16:38 │ churn      │ assignment   │ v3.1.1    │ dev     │ 59278da  │ churn#dev#5      │
│ 2022-11-27 08:16:38 │ churn      │ registration │ v3.1.1    │ -       │ 59278da  │ churn@v3.1.1     │
...

We can improve it, e.g. implement something like:

$ gto history --commands
...
gto register churn --version v3.1.1
gto assign churn --version v3.1.1 --stage dev