Crates.io | checklist |
lib.rs | checklist |
version | 0.3.0 |
source | src |
created_at | 2019-08-08 21:38:44.015665 |
updated_at | 2020-07-09 13:05:54.596845 |
description | A program to run through a checklist of manual and automated processes. |
homepage | |
repository | https://github.com/wickedchicken/checklist |
max_upload_size | |
id | 155139 |
size | 58,397 |
a checklist app to run through processes
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.