nh icon indicating copy to clipboard operation
nh copied to clipboard

nh roadmap

Open NotAShelf opened this issue 5 months ago • 4 comments

Hey all! With nh 4.2.0 on the horizon I'd like to outline future goals of nh. As such I am creating this roadmap to keep track of features I'd like to work on the future and give nh users a place to request new features. This issue will be regularly updated as per user requests and based on maintainers' discretion on what to add next.

Close Future

Before 4.2.0

  • [x] There are still a few bugs remaining in NH that need fixing. Recent PRs have managed to mostly address those, but it'd be great to close outstanding issue reports before 4.2
  • [x] Alternative privilege escalation utilities (https://github.com/nix-community/nh/pull/92)

After 4.2.0

  • [ ] NixOS VM tests & snapshot tests
  • [ ] Benchmarks with Criterion or similar
  • [ ] Implement nh home info and nh darwin info commands similar to nh os info for displaying relevant generations
  • [ ] nh os edit to open flake/configuration directory with $EDITOR. This is a part of the feature-parity section, but it's an easy task so I'd like to get it out of my way when I get the chance.
  • [ ] An offline search implementation, perhaps even a search TUI featuring something like rippkgs.

I think one of the first issues we'd like to focus on is feaure-parity with nixos-rebuild and the new nixos-rebuild-ng. I don't believe the latter is very different, but worth considering nevertheless if we strive for mass adoption of nh

  • nixos-rebuild
    • [x] switch
    • [x] boot
    • [x] test
    • [x] build
    • [ ] dry-build
    • [ ] dry-activate
    • [ ] edit
    • [ ] build-image
    • [x] build-vm (#208)
    • [x] build-vm-with-bootloader (#208)
    • [x] --upgrade (flakes)
    • [ ] --upgrade (channels)
    • [x] --install-bootloader
    • [x] --no-build-nix, --fast (only this is supported)
    • [x] --rollback https://github.com/nix-community/nh/pull/265
    • [x] --builders (via passthrough of options)
    • [ ] --profile-name
    • [x] --build-host, --target-host #276
      • [ ] --use-substitutes, --use-remote-sudo (nh as a deployment tool)
    • [x] --flake
    • [ ] -I nixos-config=...

Distant Future

While not exactly a priority, there are some features I'd like to implement to extend nh's position to something beyond just a structured bash script. Namely I want to consolidate relevant NixOS-adjecent tooling into nh as subcommands.

Critical

  • [ ] nh {os,home,darwin} generate-config to replace nixos-generate-config and similar HM/Nix-Darwin counterparts (are there any? Can we use flake templates instead here?)
  • [ ] nh os enter to replace nixos-enter

NotAShelf avatar Jul 16 '25 19:07 NotAShelf

@NotAShelf I've set you as the admin of the repo, let me know if it was configured properly.

viperML avatar Jul 18 '25 13:07 viperML

Seeems to have worked, thanks. Are you quitting working on nh entirely?

NotAShelf avatar Jul 18 '25 13:07 NotAShelf

I see myself doing some PR for a minor feature, but NH as I envisioned it years ago is feature complete. For this reason I think it would be better to put someone else in the spotlight :shipit:

viperML avatar Jul 22 '25 08:07 viperML

Thanks for the work everyone! I hope to be able to use it for deployment in the near future! I already use to test changes in merge requests!

ahoneybun avatar Jul 29 '25 14:07 ahoneybun