I opened a few tickets for some good module ideas to write:
git and pip.
The git module should probably support checkouts using SSH protocol first, and to do this, we can make sure the command class already forwards SSH_AUTH_SOCK if set in the parent environment. In other words, the SSH keys of the push invocation should be usable and like magic, not have to be specified.
An option for extra flags can be provided to avoid creating too many options.
While it could extend from a generic Scm Type, I'm not sure that's actually important. It's clearer to see "Git()" in the policy than "Scm()"
Another easy idea is to add a pip module.
This can use the provider.copy_file() feature in the current code, so maybe the requirements file is the only thing we support. That keeps it super easy.
If no one wants to take either of these, I'm going to do them, I just wanted to share them as I think they are easy ideas that will get a lot of mileage.
In the coming push implementation, if you install remote dependencies instead of letting mitogen push them (like jinja2) they actually offer some additional speedups, so that will benefit everyone with the pip module.
git is of course used everywhere, but the most common use case is deploying your applications direct from source control (common for dynamic language apps if not so much compiled apps) so it's going to be one of the most used modules in opsmop for sure.