Description
Maybe not a high priority, thought it would be worth noting another possible UX/DX opportunity.
As much as the current workflow and API to declare environments using devenv is great, I feel that a nice counterpart for devenv init
could be a devenv scaffold
command where you might even have some auto-suggest/completion working with it
The end result would be something like what we have in the examples folder of the devenv project where the devenv.yaml and devenv.nix config is declared based on the scaffold request.
It would only be for a starting point to further work with - but it could be a nice opinionated way to provide a starting position for the devenv.nix that goes beyond the empty slate start currently provided by devenv init
.
Thinking out loud here, the naming conventions for the scaffolding options could closely align with the existing schema. However, if an auto-suggest feature were integrated into the terminal, it could significantly enhance usability.
For example, the command might look like this:
devenv scaffold languages.python venv pkgs.pip languages.rust cargo services.postgres
Or even continuing with the same devenv init
command, but parse it for additional options.
devenv init languages.python venv pkgs.pip languages.rust cargo services.postgres
I think the scaffolding idea aligns with the thinking behind devenv - that it would reduce some friction from a DX perspective in setting up environments.