Heya all, I've been working on an automation support library, with a focus on good user experience.
Repository: GitHub - azriel91/choochoo: Automation that starts where it stops.
Demo video:
In short, the library's input is a task graph, and its requires the developer to define various logic for a task. With these defined, it executes the logic (concurrently if possible). If one runs the same command twice, it should be idempotent where possible -- i.e. if the task graph fails at step 6 of 10, it should quickly skip past steps 1 to 5 on the next execution.
This is intended to help write deployment automation that provides good user experience -- I created it out of different kinds of frustration:
- Needing to restart from scratch when noticing a small error, when most of the previous execution could be re-used.
- Difficulty in knowing progress / estimated time to completion.
- Information overload through excessive logging.
- Existing automation tooling errors were not understandable, or require investigation to find values that should have been included in the error.
If you'd like to help work on the library, I would be quite happy and grateful.