kaleidawave / ezno

A JavaScript compiler and TypeScript checker written in Rust with a focus on static analysis and runtime performance
https://kaleidawave.github.io/posts/introducing-ezno/
MIT License
2.3k stars 42 forks source link

add `bacon.toml` for easier new dev experience #143

Closed PatrickLaflamme closed 1 month ago

PatrickLaflamme commented 1 month ago

Proposal to use Bacon to make the standard operations of running the specification tests a little simpler during development.

How to use:

  1. install bacon with cargo install --locked bacon
  2. press 1 to run only the specification.md tests once.
  3. press 2 to run only the staging.md tests once.
  4. press 3 to run all tests once.
  5. press 4 to run only the specification.md tests and watch for changes.
  6. press 5 to run only the staging.md tests and watch for changes.
  7. press 6 to run all tests and watch for changes.

Bacon will watch for changes in the source sets and re-run the tests on change. This can help optimize the feedback cycle and accelerate development.

kaleidawave commented 1 month ago

Awesome, just looked into Bacon. Looks like it solves a problem of unifying the current jumble of scripts this project uses.

Few questions before I merge

Other than that looks great, thanks for introducing me to it (hadn't heard of it before). Also might add some more scripts that I use to it later.

PatrickLaflamme commented 1 month ago

added some details in the CONTRIBUTING.md file. Also created some jobs that don't watch for changes. If you want to re-run, just press the hotkey to trigger a run again.

I find it particularly useful in my IDE to have a terminal open running the spec tests, and then as I make changes I can see how my changes affect the test outcomes. Makes iterations SUPER fast.

kaleidawave commented 1 month ago

Thanks for adding documentation to contributing. Excited to try this!