mirror of
https://github.com/nix-community/home-manager.git
synced 2024-12-14 11:57:55 +00:00
91 lines
3 KiB
Markdown
91 lines
3 KiB
Markdown
# Release 24.05 {#sec-release-24.05}
|
|
|
|
The 24.05 release branch became stable in May, 2024.
|
|
|
|
## Highlights {#sec-release-24.05-highlights}
|
|
|
|
This release has the following notable changes:
|
|
|
|
- The `.release` file in the Home Manager project root has been
|
|
removed. Please use the `release.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](#opt-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
|
|
|
|
``` nix
|
|
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 contains
|
|
|
|
```nix
|
|
home.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
|
|
|
|
```nix
|
|
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](#opt-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,
|
|
|
|
```nix
|
|
home.activation.doThing = config.lib.dag.entryAnywhere ''
|
|
$VERBOSE_ECHO "Doing the thing"
|
|
''
|
|
```
|
|
|
|
should now be expressed
|
|
|
|
```nix
|
|
home.activation.doThing = config.lib.dag.entryAnywhere ''
|
|
verboseEcho "Doing the thing"
|
|
''
|
|
```
|
|
|
|
See the description of [home.activation](#opt-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 {#sec-release-24.05-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.
|