NixOS / nixops

NixOps is a tool for deploying to NixOS machines in a network or cloud.
https://nixos.org/nixops
GNU Lesser General Public License v3.0
1.86k stars 365 forks source link

Noun-verb CLI #1487

Open roberth opened 2 years ago

roberth commented 2 years ago

The nixops command is a bit chaotic.

Some suggestions:

list -> deployment list create -> deployment create modify --name -> deployment rename rename -> resource rename set-args -> deployment set-arguments delete -> deployment delete destroy --include x -> resource destroy x destroy -> deployment destroy deploy -> deployment switch deploy --include x -> resource switch deploy --dry-run -> deployment build --dry-run deploy --test -> deployment activate deploy --boot -> deployment switch-for-boot deploy --plan -> deployment plan

Some top-level commands are ok when they're frequently used or for the purpose of backward compatibility.

nixops ssh = nixops resource ssh nixops deploy =~ nixops deployment switch nixops create = nixops deployment create but deprecated

Plan:

  1. Do not delay NixOps 2 release. (just to be clear)
  2. Add nouns
    • implementation
    • docs
    • tests!
  3. Get feedback
  4. Release
  5. Get feedback
  6. Repeat
  7. Deprecate some commands and give good suggestions