wire is a tool to deploy nixos systems wire.forall.systems/
nix nixos
0

Configure Feed

Select the types of activity you want to include in your feed.

Tags

v1.4.0
4398c61d marshmallow

v1.4.0

In this release garnix has been replaced with our own binary cache as garnix has shutdown.
This is a breaking change to your configuration if you previously
used garnix to download wire.

Please read https://wire.forall.systems/guides/installation.html#binary-cache
for the up to date details!

- `--print-build-logs` / `-L` argument.
- `nix copy` & `nix build` operations are now manually implemented through a native
rust nix daemon client if `--experimental-nix-client` is passed.
- Node `target` liveliness is now determined directly by initiating a nix daemon
handshake if `--experimental-nix-client` is passed.
- Node evaluations are now cached between wire invocations in flake hives,
invalidating old caches with a connection to the local nix daemon.
- Parsing the output generated from `makeHive` now supports reading the schema version in semver
format alongside the previous integer-based system. Currently, it still reports `1` to maintain
backwards compatibility with v1.3.0.
- A list of nodes that are currently deploying, failed, or waiting on a specific
step are displayed below the status bar.

- Changed public cache to `https://cache.forall.systems`, as noted above.
- The Evaluate step is now only scheduled when the `.drv` output is actually
required. This means that when building locally the Build step can construct
the nix attribute directly skipping the Evaluate step.
- The pre-activation key step is now scheduled after the evaluation step. The
rationale for this is that while iterating on evaluation errors it was often quite
annoying to repeatedly enter your password for key deployment.
- Ipv6 addresses are now displayed in a nicer format in "Authenticate for ..."
prompts.
- Build logs from `-L` are now properly traced and logged alongside the build
job name.
- Internal representation of Nix store paths now use `snix`'s `StorePath`
data type.
- Flake evaluation caching now use `snix`'s `StorePath` native digests and name field
as primary keys instead of full sqlite `text`.
- Wire's cache is now deleted and recreated if migrations fail.
- No longer panics on key agent env var not found.
- Building & Pushing derivation outputs now explicitly operate on the `^out`
output instead of incorrectly pushing all outputs (`^*`). This results in a
roughly 12% speed increase in benchmarking.
- Unknown fields in the hive schema are now ignored rather than rejected.
- Cache database now uses `SqliteJournalMode::Wal` & `SqliteSynchronous::Normal`.
- Attempting to reconnect to a rebooting node will now wait far longer before
giving up.
- Internally, Step store path outputs are now passed between steps via handles
instead of mutable state.

- Use `AssertPathExists` instead of conditional path existence checks for key services.
- Built paths printed to stdout being clobbered with the status bar.
- Not re-exporting `outputs.makeHive` under `outputs.lib.makeHive`.
- Evaluating a flake hive attribute will now correctly use the `/nix/store` path returned from
`nix flake prefetch`, instead of the `--path` URI. This has a small speed gain
of about `1.07 ± 0.03` times faster in testing.

Artifacts

v1.3.0
e358237f marshmallow

### Added

- "Encrypting with Sops" documentation example.
- `--ssh-verbose` / `--sv` argument which increases verbosity of SSH commands.

### Changed

- Under the hood improvements to how status bar updates are handled internally.
- Cargo dependency updates.
- Switched (back) to the https://snix.dev/ `nix_compat` crate for internal nix
json log parsing.

### Fixed

- Status bar is cleaned every time after execution is completed.
- Fixed garnix docs links in documentation.
- Forces `bash` instead of remote user's potentially unsupported shell. This bug
was causing strange and hard to diagnose issues.
- Fixed a possible time-of-check to time-of-use bug while setting key permissions.
- `deployment.privilegeEscalationCommand` not being consistently applied.

Artifacts

first v1.0.0 prerelease

Artifacts