Skip to content

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

@aguschin

Description

@aguschin

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions