leiningen icon indicating copy to clipboard operation
leiningen copied to clipboard

VCS support for commit args

Open JarredLHumphrey opened this issue 10 years ago • 2 comments

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.

JarredLHumphrey avatar Sep 22 '15 02:09 JarredLHumphrey

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.

hypirion avatar Sep 26 '15 23:09 hypirion

That should do the trick for my current use case. Thanks!

JarredLHumphrey avatar Sep 27 '15 00:09 JarredLHumphrey