devenv 1.8: Progress TUI, SecretSpec Integration, Listing Tasks, and Smaller Containers
devenv 1.8 fixes a couple of annoying regressions since the 1.7 release, but also includes several new features:
- Progress TUI with async core
- SecretSpec integration for declarative secrets management
- Task improvements with task listing
- CLI improvements with package options support
- Smaller containers with 67% smaller images
Progress TUI
We've rewritten our tracing integration to improve reporting on what devenv is doing.
More importantly, devenv is now fully asynchronous under the hood, enabling parallel execution of operations. This means faster performance in scenarios where multiple independent tasks can run simultaneously.
The new progress interface provides real-time feedback on what devenv is doing:
We're continuing to improve visibility into Nix operations to give you even better insights into the build process.
SecretSpec Integration
We've integrated SecretSpec, a new standard for declarative secrets management that separates secret declaration from provisioning.
This allows teams to define what secrets applications need while letting each developer, CI system, and production environment provide them from their preferred secure provider.
Learn more in Announcing SecretSpec Declarative Secrets Management.
Task improvements
Listing tasks
The devenv tasks list
command now groups tasks by namespace, providing a cleaner and more organized view:
$ devenv tasks list
backend:
└── lint (has status check)
└── test
└── build (watches: src/backend/**/*.py)
deploy:
└── production
docs:
└── generate (watches: docs/**/*.md)
└── publish
frontend:
└── lint
└── test (has status check)
└── build
Running multi-level tasks
You can now run tasks at any level in the hierarchy. By default, tasks run in single mode (only the specified task):
# Run only frontend:build (default single mode)
$ devenv tasks run frontend:build
Running tasks frontend:build
Succeeded frontend:build 5ms
1 Succeeded 5.75ms
# Run frontend:build with all its dependencies (before mode)
$ devenv tasks run frontend:build --mode before
Running tasks frontend:build
Succeeded frontend:lint 4ms
Succeeded frontend:test 10ms
Succeeded frontend:build 4ms
3 Succeeded 20.36ms
# Run frontend:build and all tasks that depend on it (after mode)
$ devenv tasks run frontend:build --mode after
Running tasks frontend:build
Succeeded frontend:build 5ms
Succeeded deploy:production 5ms
2 Succeeded 11.44ms
CLI improvements
Package options support
The CLI now supports specifying single packages via the --option
flag (#1988). This allows for more flexible package configuration directly from the command line:
Container optimizations
The CI container ghcr.io/cachix/devenv/devenv:v1.8 has been reduced (uncompressed) from 1,278 MB in v1.7 to 414 MB in v1.8—that's a reduction of over 860 MB (67% smaller!).
This makes devenv container much faster to pull and more efficient in CI/CD pipelines.
Thank You
Join our Discord community to share your experiences and help shape devenv's future!
Domen