Release 0.5.3
* Fix another case where sd-switch attempts to start a unit with
`RefuseManualStart=yes`.
Release 0.5.2
* Improve calculation of when units should be restarted.
* Fix a bunch of Clippy warnings.
* Units that contain `RefuseManualStart=yes` or `RefuseManualStop=yes`
are now handled better during switch. Specifically, sd-switch will
honor the request and not attempt to start or stop the unit,
respectively.
Release 0.5.1
* Unconditionally start deactivated units that are present in the new
generation. Before the unit would not be started if the units were
identical.
* Handle invalid old or new directory more gracefully.
* Various test improvements.
Release 0.5.0
* Fix bug that caused the systemctl backend to always issue stop
commands to the user systemd service.
* Improve handling of inactive units that are in the target directory.
Specifically, we now avoid starting unmanaged targets and instead
directly start the new units.
* Various minor code improvements.
Release 0.4.0
* Switched from the Rust dbus library to zbus, a native implementation
of the D-Bus protocol.
* The default timeout for systemd operations is now 2 minutes,
previously it was indefinite.
* The sd-switch Nix Flake is now based on the
[Crane](https://github.com/ipetkov/crane) Nix library.
* Use `/run/user/$UID/bus` as D-Bus session socket, if it exists. This
is unfortunately necessary since it seems quite common for people to
have (at least) two D-Bus user sessions available. Fortunately,
systemd seems pretty consistent in where it expects the socket to be
so we check there first.
* Use the `systemctl` command as a fallback if a D-Bus connection to
systemd cannot be established.
* Support system services. Controlled by providing a command line
option `--system` or `--user`, respectively. If none is provided,
then `--user` is assumed.
* Attempt to switch even when systemd is in a degraded state. The list
of failed services is printed to standard error when this occurs.
Release 0.3.0
* Bump anyhow to 1.0.71.
* Bump dbus to 0.9.7.
* Bump rust-ini to 0.19.0.
* Migrate project to sourcehut.
* Turn repository into a Nix Flake.