On Sun, Apr 27, 2014 at 06:59:47PM +0200, Charlie Clark wrote: > Am .04.2014, 17:51 Uhr, schrieb pulkomandy <pulkomandy@xxxxxxxxx>: > > >I'll add that Gerrit also supports checking that the patch doesn't break > >the build, and could easily be combined with an automated coding style > >checker. > > That sounds very good especially in the absence of extensive test coverage. > > What do you do for static code analysis / code style check? Do you > have a pre-commit lint hook? This all happens post-commit. You push changes to Gerrit (instead of directly to trunk), and the bot picks them up there. I think we can have bot run whatever checks we want: style, build test, unit tests (if we have some), code anamysis, whatever. The result is reported on Gerrit. You can see an example of Gerrit running in the OpenOCD project: http://openocd.zylin.com/ They use Jenkins to submit build results there. Buildbot, which we use, seems to have some Gerrit integration as well: http://docs.buildbot.net/0.8.3/GerritStatusPush.html The checks are made on Gerrit, which is better than just rejecting the push upfront. This way, other people can see how your patch failed to build, and maybe take over it and try to fix it. Or you may get some hints on the issues from people reviewing it anyway. Doing these things at push time means the rejected changes will rot on the computer where the patch was initially written, and not get a chance of getting public. The fork + pull request model in github is somewhat similar, with a risk of changes getting forgotten in some random fork of the project. This is one issue our current Trac-based workflow doesn't have (but it has many others). I started a list of features, feel free to (fork and) complete it: https://gist.github.com/pulkomandy/11351327 -- Adrien/PulkoMandy