#processes #automated #fail #manual #applications #run #yaml

bin+lib checklist

A program to run through a checklist of manual and automated processes

4 releases

0.3.0 Jul 9, 2020
0.2.4 Jan 12, 2020
0.2.3 Aug 8, 2019
0.2.2 Aug 8, 2019

#2104 in Database interfaces

Apache-2.0

20KB
336 lines

checklist

a checklist app to run through processes

Build Status Dependabot Status

This is an application designed to help you go through repeatable processes. checklist will run through whatever .checklist.yml is in the current directory. Right now, there only one checklist used and that is called 'committing.'

---
schema_version: 2
committing:
  automated:
    - git log origin/master..HEAD --oneline | grep -v WIP  # abort if WIP comment is seen
    - cargo test
  manual:
    - checked that the version number has been bumped
    - checked that the schema version number has been bumped

This will run git log [...] and cargo test automatically, exiting if they fail. It will then ask you if you're performed the other two tasks. Note that the automated tasks are passed to the shell using duct_sh, meaning they can use piping and anything else your shell (either /bin/sh or cmd.exe) supports. Of particular note: in the example above, the # is interpreted as a comment by YAML itself, stripped before the command is passed to the shell.

The spirit of checklist is that some checks are too crude to be on CI, and other checks require a human brain to perform. We should still document and run these, not letting the perfect be the enemy of the good.

It is recommended to put .checklist.yml in your .gitignore or .git/info/exclude, and treat them as personal and not repository files. You may want to use a program like gnu stow to keep these files in source control, but in their own repository. There are several tutorials on how to do this.

The advantage of keeping .checklist files to yourself is you can put whatever hacky scripts or hints to yourself that you need. It should live inside an ecosystem of code review and proper CI, not take the place of one or the other.

Dependencies

~9–19MB
~275K SLoC