| 19 Aug 2023 |
Zhaofeng Li | In reply to @khalilsantana:matrix.org But I mean, say if I add some new package to my config.nix, that will be built locally (deployment machine) and then the artefacts copied to the remote targets. But can I somehow fetch whatever package upgrades needed for existing hosts, build them once and share them across hosts using colmena (I seems like no?) This is what currently happens. When you deploy a new config, Colmena won't copy paths that already exist on the remote host. | 19:24:38 |
Zhaofeng Li | For example, you edit networking.hostName, the new system profile closure is mostly identical to the old one except for a few paths | 19:25:59 |
Zhaofeng Li | * For example, when you only edit networking.hostName, the new system profile closure is mostly identical to the old one except for a few paths | 19:26:11 |
Zhaofeng Li | The same applies to just adding new packages. Or are you asking about something else? | 19:26:55 |
@khalilsantana:matrix.org | My question is centered around package versions rather than anything else. Say all my hosts have foo-bar-v1.0, then at a later point the nixos-channel provides foo-bar-v2.0, since the config.nix didn't change I don't think colmena will fetch & apply the new binaries to the remote hosts, correct? | 19:29:07 |
@khalilsantana:matrix.org | Or does a colmena apply also applies package upgrades, not only installs/uninstalls? | 19:29:50 |
Zhaofeng Li | Nix works fundamentally differently from other package managers. The package versions are decided when you evaluate the expression, and for Colmena everything is evaluated locally on the host you are deploying from | 19:31:33 |
Zhaofeng Li | so with channels, it will follow whatever you have on the machine running colmena | 19:31:59 |
@khalilsantana:matrix.org | Pretty neat! So I guess I don't need to do anything special, just run an apply once in a while | 19:33:55 |