v0.5.0
This release includes some more work towards supporting installing over existing installations (see #126 for more information on our curing effort). Specifically, an existing /etc/nix/nix.conf
file will no longer be a hard error1 and will instead be merged with the settings that we desire.
It also fixes a few bugs, like a typo in a permissions check (checking a file had a mode of 664
instead of 644
), a macOS installation bug that affected some setups (see #295 and #298 for more information), and explicitly erroring on WSL1 as unsupported.
If you rely on us as a library, the change that will impact you the most is that we made all of our error enum
s #[non_exhaustive]
, so that adding new variants in the future won't require a new major version.
The diagnostics report also saw a slight rework to be somewhat more useful in actually diagnosing issues. A diagnostic report now looks like this:
{
"version": "0.5.0",
"planner": "linux",
"configured_settings": [
"modify_profile"
],
"os_name": "Ubuntu",
"os_version": "22.04.1 LTS (Jammy Jellyfish)",
"triple": "x86_64-unknown-linux-musl",
"is_ci": false,
"action": "Install",
"status": "Failure",
"failure_chain": [
"Action(\"configure_nix\")",
"Child(\"place_nix_configuration\")",
"Child(\"create_directory\")",
"CreateDirectory(\"/etc/nix\")"
]
}
What's Changed
- Describe Diagnostics by @grahamc in #276
- Use 0o644 for files, not 0o664 by @cole-h in #278
- Update default nix_package_url to Nix 2.13.3 by @cole-h in #279
- Add newline to end of plan json output by @cole-h in #283
- Use
launchctl load -w
on macOS by @cole-h in #298 - Detect WSL1 and error by @cole-h in #297
- Make errors non-exhaustive by @cole-h in #299
- Add more failure context / Improve error structure by @Hoverbear in #296
- Update some dependencies by @Hoverbear in #303
- Integrate nix-config-parser by @cole-h in #263
Full Changelog: v0.4.0...v0.5.0
-
Currently, only
experimental-features
will be merged (please file an issue if you would like to see other options supported!); any other conflict between our desired settings and an existingnix.conf
will still cause an error. In other words, if the setting is not one that we are trying to set (see the list here: https://github.com/DeterminateSystems/nix-installer/blob/v0.5.0/src/action/common/place_nix_configuration.rs#L32-L45), it will be seamlessly merged into the resultingnix.conf
file. ↩