Release Notes
Release 0.5.0 (2026/09/22)
This is a long overdue release more than 3 years after 0.4.0!
Colmena has moved from zhaofengli/colmena to nix-community/colmena
after a discussion with the original author.
The current maintainers are
@stepbrobd,
@NickCao, and
@zhaofengli.
This will be the last release with x86_64-darwin support, 0.6.0 will be tagged shortly after 0.5.0.
- ssh: fix substitution when using experimental
nix copy(#156) - fix: allow nodeSpecialArgs to override name and nodes (#155)
- chore: dead link (#172)
- Switch to clap derive (#169)
- Set exit code > 0 when colmena exec fails (#191)
- Support adding extra ssh options on node configurations (#197)
- make eval.nix more convnient to use for non-flake user (#199)
- lib.mdDoc has been deprecated since 24.05 (#222)
- Fix describe_node_list remaining nodes special case (#224)
- Add direct flake evaluation support (#228)
- Exclude more paths from colmena.src to reduce rebuilds (#238)
- .github/build: Update macOS runner, add aarch64-darwin (#242)
- README.md: Fix badge branch (#247)
- resolve TempDir paths before passing them to the flake bin (#233)
- progress: Detect tty with std::io::IsTerminal, remove atty (#248)
- flake: fix patch for nix-eval-jobs (#256)
- Add meta.mainProgram (#267)
- Enable direct flake evaluation by default (#279)
- README.md: Update flake example for direct flake evaluation (#280)
- Improve help message readability (#261)
- Make nix_flags_with_builders call nix_flags (#265)
- fix(nix-eval-jobs): silence warning when overriding version without src (#289)
- fix: Chown correct path for pre-activation keys (#291)
- chore: Format most Nix files with nixfmt-rfc-style (#283)
- refactor: Migrate to tracing (#284)
- Emit logs to stderr (#300)
- Don’t use patched version of nix-eval-jobs if version >= 2.30.0 (#306)
- .github: Harmonize common setup, pin dependencies with commit hash (#308)
- deployment: Fix typo that broke –eval-node-limit=0 (#311)
- fix: replace deprecated pkgs.system with pkgs.stdenv.hostPlatform.system (#316)
- ci: fix “no space left on device” (#342)
- {cargo,flake}: bump deps (#341)
- ci: init dependabot (#347)
- treewide: address clippy and deadcode warns (#345)
- ci: use dependabot groups to prevent prs spams (#357)
- .git-blame-ignore-revs: init (#358)
- ssh: Put extra_ssh_options before internal options (#364)
- treewide: run nix fmt (#362)
- formatter: fix ci and find repo root with git (#375)
- hive: fix
--evaluator streamingnoop (#340) - cargo: drop atty (#377)
- hive/tests: pin nixpkgs system in tests (#378)
- Loosen deployment.keys username/group validation regex (#380)
- treewide: cleanup (#381)
- treewide: drop legacy code paths and refactor how CLI flags are passed (#379)
Release 0.4.0 (2023/05/14)
- Flake evaluation is now actually pure by default. To enable impure expressions, pass
--impure. --rebootis added to trigger a reboot and wait for the node to come back up.- The target user is no longer explicitly set when
deployment.targetUseris null (#91). - In
apply-local, we now only escalate privileges during activation (#85). - Impure overlays are no longer imported by default if a path is specified in
meta.nixpkgs(#39) - GC roots are now created right after the builds are complete, as opposed to after activation.
- The
meta.allowApplyAlloption has been added. If set to false, deployments without a node filter (--on) are disallowed (#95). - The
--no-substitutesoption under theapplysubcommand has been renamed to--no-substitute(#59). - The
meta.nodeSpecialArgsoption has been added. It allows specifying node-specificspecialArgspassed to NixOS modules (#100). - The
replsubcommand has been added. It allows you to start an interactive REPL with access to the complete node configurations. - The default goal for
colmena applyis nowbootif--rebootis specified, andswitchotherwise (#113). - Post-activation keys are now uploaded after the reboot if
--rebootis specified (#113). - Flake-enabled deployments now use the new SSH store protocol (
ssh-ng://).
Release 0.3.2 (2022/09/29)
- Fixed: Key services were using the deprecated
inotifyToolsalias removed fromnixos-unstable(NixOS/nixpkgs#192681).
Release 0.3.1 (2022/08/18)
- Fixed: Streaming evaluation fails for node names containing periods (#92)
- Fixed: Streaming evaluation fails in non-flake deployments with relative paths (#107)
- Fixed:
colmena apply-localreturning non-zero exit code when successful (#111)
Release 0.3.0 (2022/04/27)
- Remote builds are now supported (#33).
- Streaming evaluation powered by nix-eval-jobs is now available as an experimental feature (
--evaluator streaming). - Colmena can now run on macOS to deploy to NixOS hosts using remote building.
- It’s now possible to configure output colorization via the CLI and environment variables. Colmena follows the clicolors standard.
- A systemd unit (
${name}-key.service) is now created for each secret file deployed usingdeployment.keys(#48). - Node enumeration is now faster if you do not filter against tags with
--on @tag-name. - The main deployment logic has been rewritten to be cleaner and easier to follow.
- There are now end-to-end tests to ensure that the development branch is actually functional as a whole at all times.
Release 0.2.2 (2022/03/08)
This bugfix release fixes NixOS detection so apply-local works with the latest changes in nixos-unstable (#63). Additionally, --no-keys was fixed in apply-local.
Release 0.2.1 (2022/01/26)
This bugfix release fixes the issue (#50) where sandboxed documentation builds fail when using the unstable Nixpkgs channel.
Release 0.2.0 (2021/11/18)
This is release 0.2.0, the first stable release of Colmena!
Colmena is a simple, stateless NixOS deployment tool modeled after NixOps and morph, built from the ground up to support parallel deployments.
This release contains the following features:
- Node Tagging
- Local Deployment
- Secrets
- Ad Hoc Evaluation
- Nix Flakes Support
- Parallelism
We now have a User Manual at https://colmena.cli.rs/0.2 containing tutorials, sample configurations as well as a complete listing of supported deployment options.