With 0.4.0, we're feeling like the Determinate Nix Installer is ready for general usage.
It's pretty exciting and we invite you to enjoy a cupcake to celebrate with us! 🧁
As part of this step up in stability, we managed to re-enable deleting users on Macs. We originally disabled this feature because our test Macs were giving strange errors. Turns out, it's because we weren't logged in graphically, so even though our user had a secure token, they still couldn't remove users! For more details, check out #33.
We also got feedback from some users (thanks!) that the permission mode checking we added last version was too strict and in some places just plain wrong. Those should be fixed up and the errors related to them greatly improved.
This release also includes a diagnostic reporting tool, allowing adopters to report back the status of installs. This is handy if you're deploying Nix across an organization and want to catch problems with deployments. The reporter is configurable and can write small reports to files or URLs that look like this:
{
"version": "0.4.0",
"planner": "linux",
"configured_settings": [ "modify_profile" ],
"os_name": "Ubuntu",
"os_version": "22.04.1 LTS (Jammy Jellyfish)",
"triple": "x86_64-unknown-linux-gnu",
"action": "Install",
"status": "Failure",
"failure_variant": "Symlink"
}
If your organization starts using them, please let us know! We'd like to know more about how to make them useful. The default options of the installer drop a diagnostic to us to help us root out problems. Diagnostic reporting can always be disabled by adding --diagnostic-endpoint=
to the end of the install command.
We also fixed an issue with nix-shell -p
not working when it should have! We now add extra-nix-path = nixpkgs=flake:nixpkgs
to the nix.conf
.
Lastly, this release includes a number of minor "curing" functionality, meaning things like a /nix
folder already existing won't immediately cause an error. These items will still cleanly get removed on uninstall. It's intended that this functionality helps repair existing partial installs (from any source).
What's Next
Next release we plan to focus more on "curing". It's our hope we can offer users the ability to repair existing installs, complete previous partial install attempts, and offer users a chance to uninstall an existing (non nix-installer
created) install. As part of that we've been hacking on nix-config-parser
and it's been a lot of fun!
What's Changed
- Mac support note by @Hoverbear in #251
- Remove some bad merge code by @Hoverbear in #252
- Improve error message guidance by @Hoverbear in #258
- Don't specify chmod on synthetic.conf by @Hoverbear in #259
- Don't parallelize user creation by @Hoverbear in #260
- Add suggestion on --no-confirm flag by @lucperkins in #261
- Set the correct permissions on the zshenv by @Hoverbear in #257
- Enable deleting users and groups on Mac by @Hoverbear in #253
- Improve permissions checking when dealing with existing files by @cole-h in #267
- README: upgrade MacOS stability and note by @cole-h in #269
- Add diagnostics reporting by @Hoverbear in #264
- gitignore: ignore Nix result directories by @cole-h in #272
- Use extra-nix-path to resolve nix-shell -p not working by @Hoverbear in #270
- Prelease tidy and add is_ci to Diagnostics by @Hoverbear in #271
- Repair is_ci handling, sudo was erasing the variables by @Hoverbear in #274
Full Changelog: v0.3.0...v0.4.0