Declarative feedback loop manager
Go to file
2022-05-26 23:05:59 +01:00
.github trying to set up CI 2022-05-26 12:08:09 +02:00
feedback Add missing pure 2022-05-26 23:05:59 +01:00
nix Make safe-coloured-text-terminfo optional 2022-05-24 01:32:56 +02:00
.envrc use nix-shell for faster feedback loop 2022-03-06 12:48:52 +01:00
.gitignore Initial commit 2022-03-05 15:12:28 +01:00
.hlint.yaml Also listen for stdin events 2022-03-08 21:25:50 +01:00
ci.nix build the shell on ci as well 2022-05-26 11:59:39 +02:00
default.nix Initial commit 2022-03-05 15:12:28 +01:00
feedback.yaml Show descriptions of feedback loopswhen feedback is run without arguments 2022-03-16 14:15:42 +01:00
LICENSE Chose a license, fixes #1 2022-03-12 12:32:15 +01:00
README.md readme cleanup 2022-03-11 20:07:26 +01:00
shell.nix build the shell on ci as well 2022-05-26 11:59:39 +02:00
stack.yaml Make safe-coloured-text-terminfo optional 2022-05-24 01:32:56 +02:00
TODO.smos todos 2022-05-03 23:34:06 +02:00

Feedback loop

A general purpose tool to set up good feedback loops and share them with your team.

Features

Run feedback loops

Use the feedback command to set up a feedback loop for your work.

For example, if you are working on a nix build, you might use this feedback loop:

feedback -- nix-build --no-out-link

Declarative feedback loops

You can declare feedback loops in the feedback.yaml configuration file to share them with your team. For example, this gives you a ci.nix-based feedback loop:

loops:
  ci: nix-build ci.nix --no-out-link

Then you can just run this command, and not have to remember the full incantation:

feedback ci

To see the full reference of options of the configuration file, run feedback --help.

CI Integration

When sharing feedback loops with team members, it is important that no one breaks another's workflow. You can use feedback-test to test out the feedback loops in a one-shot manner, so you can check that they still work on CI. See feedback-test --help for more details.

Comparison with other tools

feedback steeloverseer watchexec entr
Indication of command starting ✔️ ✔️ C C
Indication of time ✔️ C C C
Clear screen between feedback ✔️ C C C
Gitignore-aware ✔️ ✖️ ✔️
Named feedback loops ✔️ ✖️
Configurable feedback loops ✔️ ✔️
Cancelling previous runs that aren't done yet ✔️ ✔️ ✔️
Long-form flags for every option ✔️ ✔️ ✔️
CI integration ✔️ C C C
Indication of how long the loop took ✔️ C C C
Shell integration (Commands with pipes "just work") ✔️ ✔️ ✔️ C
Declare Env vars for configured loops ✔️ C C C
Declare working directory for configured loops ✔️ C C C
Arbitrary "files to watch" filters ✔️ ✔️ ✔️ C
Stdin-based "files to watch' filters ✔️ C C ✔️
  • ✔️: Supported
  • C: Possible but you have to write some code yourself
  • 🚧: Under development
  • ✖️: Not supported
  • ?: I don't know.