3 KiB
Release 24.05
The 24.05 release branch became stable in May, 2024.
Highlights
This release has the following notable changes:
-
The
.release
file in the Home Manager project root has been removed. Please use therelease.json
file instead. -
The {command}
home-manager uninstall
command has been reworked to, hopefully, be more robust. The new implementation makes use of a new Boolean configuration option uninstall that can also be used in a pure Nix Flake setup.Specifically, if you are using a Flake only installation, then you can clean up a Home Manager installation by adding
uninstall = true;
to your existing configuration and then build and activate. This will override any other configuration and cause, for example, the removal of all managed files.
Please be very careful when enabling this option since activating the built configuration will not only remove the managed files but all Home Manager state from your user environment. This includes removing all your historic Home Manager generations!
-
The use of
$DRY_RUN_CMD
and$DRY_RUN_NULL
in activation script blocks is now deprecated. Instead use the new shell function {command}run
. In most cases it is sufficient to replace$DRY_RUN_CMD
by {command}run
. For example, if your configuration currently containshome.activation.reportChanges = config.lib.dag.entryAnywhere '' if [[ -v oldGenPath ]]; then $DRY_RUN_CMD nix store diff-closures $oldGenPath $newGenPath fi '';
then you are now encouraged to change to
home.activation.reportChanges = config.lib.dag.entryAnywhere '' if [[ -v oldGenPath ]]; then run nix store diff-closures $oldGenPath $newGenPath fi '';
See the description of home.activation for more. The deprecated variables will continue to work for now but their use may in the future trigger a warning message and eventually they may be removed entirely.
-
Similarly, the use of
$VERBOSE_ECHO
in activation script blocks is deprecated. Instead use the new shell function {command}verboseEcho
. That is,home.activation.doThing = config.lib.dag.entryAnywhere '' $VERBOSE_ECHO "Doing the thing" ''
should now be expressed
home.activation.doThing = config.lib.dag.entryAnywhere '' verboseEcho "Doing the thing" ''
See the description of home.activation for more. The deprecated variable will continue to work for now but its use may in the future trigger a warning message and eventually it may be removed entirely.
State Version Changes
The state version in this release includes the changes below. These
changes are only active if the home.stateVersion
option is set to
"24.05" or later.
- There was no state version change in this release.