Choo Choo: Automation Support Library (early development)

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.

3 Likes