2023-12-16 05:49:25 +00:00
|
|
|
# Release 24.05 {#sec-release-24.05}
|
|
|
|
|
|
|
|
This is the current unstable branch and the information in this section
|
|
|
|
is therefore not final.
|
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
2024-01-05 23:22:27 +00:00
|
|
|
- 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!
|
|
|
|
|
2024-01-13 22:15:00 +00:00
|
|
|
- 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.
|
|
|
|
|
2024-01-23 21:59:26 +00:00
|
|
|
- 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.
|
|
|
|
|
2023-12-16 05:49:25 +00:00
|
|
|
## 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.
|
|
|
|
|
|
|
|
- Nothing, yet.
|