VCS support for commit args
I'm currently working on a few projects that utilize weavejester/codox, where I want to have the documentation generation part of the release process when I use lein release. I can achieve this rather easily using something along the lines of the following in my project.clj:
:release-tasks [["vcs" "assert-committed"]
["change" "version" "leiningen.release/bump-version" "release"]
["doc"]
["vcs" "commit"]
["vcs" "tag"]
["change" "version" "leiningen.release/bump-version"]
["vcs" "commit"]
["vcs" "push"]]
However, the issue I keep running into is that the ["vcs" "commit"] task only adds tracked files by utilizing the -a argument (https://github.com/technomancy/leiningen/blob/master/src/leiningen/vcs.clj#L68) and therefore doesn't catch newly created doc files for any added namespaces.
I propose the ability to pass your own args to the commit task, and if not provided just utilize the default behavior currently specified. I'd be happy to make this happen and submit a patch, just wanted to get some say on it before doing so.
If we change the signature of leiningen.vcs/commit, plugins may break. I know there are some people using Mercurial over Git as vcs, and their release task will then crash if they upgrade.
Would it be fine to defer this to 3.0? In the meantime, you can use lein-shell to resolve this without issues: You can do ["shell" "git" "commit" "more" "args"] and even ["shell" "git" "add" "my" "files"] as a preparation step, which doesn't seem too bad.
Edit: Oh, lein-shell is probably not able to dynamically add the version number yet, but what you want seems doable to do with a git add step.
That should do the trick for my current use case. Thanks!