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.87k stars 364 forks source link

Locking usability improvements #1470

Closed roberth closed 3 years ago

roberth commented 3 years ago

With remote state and locking, concurrent use of nixops commands has become impossible. This is bad when, for example, you want to nixops ssh while a nixops deploy is running.

This PR solves a couple of locking related problems by

More details are in the commit messages.

roberth commented 3 years ago

CI / mypy-ratchet (pull_request)

Ok, I've improved typing precision by quite a bit, but nixops.args is hopeless. It doesn't seem like we can avoid explicit Anys whenever we add add_arguments. They're just part of its signature and they're counted even if we don't make use of the Any-typed params. It's not a real problem. In fact this PR now improves typing precision.

roberth commented 3 years ago

cc @adisbladis, would you mind reviewing this?

roberth commented 3 years ago

This is sorely needed and has been up for review for nearly 3 months.