Skip to content
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5a40f5e
systemctl hints
NotAShelf Nov 12, 2025
2b665ee
Merge branch 'master' into nh-feature-parity
NotAShelf Nov 12, 2025
057b61e
Merge branch 'master' into nh-feature-parity
NotAShelf Nov 17, 2025
bbcd0b5
Merge branch 'master' into nh-feature-parity
NotAShelf Nov 19, 2025
4500360
Merge branch 'master' into nh-feature-parity
NotAShelf Nov 22, 2025
1e0b395
nixos: defer to Eyre for error wrapping
NotAShelf Nov 22, 2025
a20657b
interface: distinguish between rebuild-only and rebuild-and-activate …
NotAShelf Nov 22, 2025
8e41d84
docs: update CHANGELOG
NotAShelf Nov 22, 2025
f8b4094
docs: update README; reorder sections and rewrite attributions
NotAShelf Nov 22, 2025
673bca5
chore: format manifest with Taplo
NotAShelf Nov 22, 2025
817e4b2
nh: remove completion generation from main CLI
NotAShelf Nov 22, 2025
c4ef484
meta: move shell completion generation to cargo-xtask
NotAShelf Nov 23, 2025
c7e367a
nixos: move BuildVm to no-activate group
NotAShelf Nov 23, 2025
59e580f
nix: simplify postInstall
NotAShelf Nov 23, 2025
c354ce0
xtask: format with Taplo
NotAShelf Nov 23, 2025
32d12a9
docs: fix typo in README
NotAShelf Nov 23, 2025
a73e4bc
xtask: improve error handling and remove dead code
NotAShelf Nov 23, 2025
c3df836
docs: update changelogs
NotAShelf Nov 23, 2025
90abbfa
nix: fix completion output dir
NotAShelf Nov 23, 2025
a70b03e
nixos: derive label for error `Test` & `Switch` variants
NotAShelf Nov 23, 2025
e0ec54f
xtask: replace manual error handling with proper `Result` propagation
NotAShelf Nov 23, 2025
9f1dedd
darwin: fix command names in errors and directory names
NotAShelf Nov 23, 2025
d80f165
nixos: show activation logs only when `--show-systemctl-hints` is passed
NotAShelf Nov 23, 2025
aa80793
nix: get rid of `installShellFiles` helper; use plain `cp`
NotAShelf Nov 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Rust
target
gen*
!generations.rs
/comp
/man

# Nix
.direnv
Expand Down
22 changes: 18 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# NH Changelog

<!--
This is the Nh changelog. It aims to describe changes that occurred within the
This is the NH changelog. It aims to describe changes that occurred within the
codebase, to the extent that concerns *both users and contributors*. If you are
a contributor, please add your changes under the "Unreleased" section as tags
will be created at the discretion of maintainers. If your changes fix an
Expand All @@ -18,7 +18,6 @@ functionality, under the "Removed" section.

### Changed

- `nh completions` now supports [nushell](https://www.nushell.sh/)
- `nh os info` now hides empty columns.
- `nh os info` now support `--fields` to select which field(s) to display; also
add a per-generation "Closure Size" coloumn.
Expand All @@ -37,11 +36,26 @@ functionality, under the "Removed" section.
different.
- `nh os info` now hides empty fields by default, they can be explicitly shown
via the `--fields` flag.
- `nh completions` now supports [nushell](https://www.nushell.sh/)
- `nh os switch` now accepts a `--show-systemctl-hints` flag that displays
failing systemd units at the end of the rebuild log. This flag can be used to
replicate the activation behaviour from `nixos-rebuild` where failing units
are displayed at the end.
- NH also allows making this the global default by setting
`NH_SHOW_SYSTEMCTL_HINTS`. This is useful if you miss the behaviour from
`nixos-rebuild` where this is default without a way of suppressing those.

### Fixed

- Fixed the whitespace splitting of self-elevated commands so spaces inside quotes
don't get separated.
- Fixed the whitespace splitting of self-elevated commands so spaces inside
quotes don't get separated.

### Removed

- Shell completion generation has been moved OUT of the main NH CLI, and is now
done via `cargo-xtask` in the packaging step. The `nh completions` command is
now fully deprecated and shell completion can be done with
`cargo xtask completions` or `cargo xtask dist`.

## 4.2.0

Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 2 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,11 @@ anstyle = "1.0.13"
chrono = "0.4.42"
clap.workspace = true
clap-verbosity-flag = { version = "3.0.4", features = [ "tracing" ], default-features = false }
clap_complete = "4.5.61"
clap_complete_nushell = "4.5.10"
color-eyre = { default-features = false, features = [ "track-caller" ], version = "0.6.5" }
dix = "1.3.0"
elasticsearch-dsl = "0.4.24"
hostname = "0.4.1"
hotpath = { version = "0.6", optional = true }
hotpath = { version = "0.6.0", optional = true }
humantime = "2.3.0"
inquire = { default-features = false, version = "0.9.1", features = [ "crossterm" ] }
nix = { default-features = false, features = [ "fs", "user" ], version = "0.30.1" }
Expand Down Expand Up @@ -90,6 +88,7 @@ style = { level = "warn", priority = -1 }
# enable those to keep our sanity.
absolute_paths = "allow"
arbitrary_source_item_ordering = "allow"
enum_variant_names = "allow"
implicit_return = "allow"
missing_docs_in_private_items = "allow"
non_ascii_literal = "allow"
Expand All @@ -102,7 +101,6 @@ std_instead_of_core = "allow"
too_long_first_doc_paragraph = "allow"
too_many_lines = "allow"
unused_trait_names = "allow"
enum_variant_names = "allow"

# In the honor of a recent Cloudflare regression
# Let's get rid of them, what the hell
Expand Down
Loading