devenv devlog: Processes are now tasks
Building on the task runner, devenv now exposes all processes as tasks named devenv:processes:<name>.
Now you can run tasks before or after a process runs - addressing a frequently requested feature for orchestrating the startup sequence.
Execute setup tasks before the process starts
Section titled “Execute setup tasks before the process starts”{ processes.backend = { exec = "cargo run --release"; };
tasks."db:migrate" = { exec = "diesel migration run"; before = [ "devenv:processes:backend" ]; };}When you run devenv up or the individual process task, migrations run first.
Run cleanup after the process stops
Section titled “Run cleanup after the process stops”{ processes.app = { exec = "node server.js"; };
tasks."app:cleanup" = { exec = '' rm -f ./server.pid rm -rf ./tmp/* ''; after = [ "devenv:processes:app" ]; };}Implementation
Section titled “Implementation”Under the hood, process-compose now runs processes through devenv-tasks run --mode all devenv:processes:<name> instead of executing them directly. This preserves all existing process functionality while adding task capabilities.
The --mode all flag ensures that both before and after tasks are executed, maintaining the expected lifecycle behavior.
What’s next?
Section titled “What’s next?”Future work on process dependencies (#2037) will also address native health check support (process-compose#371), eliminating the need for manual polling scripts.
Domen

