[vtk-developers] VTK code review / testing / integration workflow

Ben Boeckel ben.boeckel at kitware.com
Wed Aug 27 10:20:07 EDT 2014


On Wed, Aug 27, 2014 at 09:32:40 -0400, Chris Harris wrote:
>   • The development process should be enforced and supported by the review tool
>     rather than people and documents. No one wants to be the  ‘enforcer’ and
>     documents often go unread.

Agreed.

>   • GitHub/GitLab PR workflow works well with projects that have a ‘benevolent
>     dictator’ and relatively small teams, I’m not sure it scales so well when
>     you have a larger number of people with merge access where more
>     coordination is necessary.

The Rust repository juggles lots of incoming branches, but has a single
bot do all of the merges based on comments from "blessed" contributors.

>   • As well as indicating approval, it is just as important to be able indicate
>     that you don’t want something to be merged, for example a work in progress
>     branch or you don’t agree with how something should be implemented. The
>     likes of GitHub/GitLab tend to have an all or nothing approach here, if I
>     have merge privileges I can merge any PR in the project and no one can stop
>     me short of removing my privileges.

I've usually put WIP in my topic names for works-in-progress that I'd
like comments on before I dig a hole too deep on some feature. If
maintainers pull it while it still has that tag then they're not really
doing their job, IMO. If we had a mergebot, then it could just refuse
anything with and active "WIP" tag (however it ends up being specified).

>   • In my opinion no one should have push access to master, all merging should
>     be done automatically. My understanding with GitHub/GitLab is if you can
>     merge in the UI you can push to master. I have been in projects where
>     developers have push to master by mistake, it happens.

+1

>   • Long running topic with lots of commits should be the exception rather than
>     the rule. Topics that have a lot of commits are hard to review, in my
>     opinion these could be treated differently as the usefulness of the review
>     tool breaks down here. For VTK the mean number of changes in a topic: 1.88
>     and the median number of changes in a topic: 1. This to me indicates that
>     topic branch support is a nice to have rather than a necessity.

Sure, the majority are single-commits, but there's no way that all
branches belong in just one commit and that those branches are treated
as second-rate citizens in review. I view it as an absolute necessity to
support multi-commit branches gracefully. In fact, it is the larger
branches that need *more* review tool support and ease-of-use than the
small branches because they are already inherently hard to review.

One thing I *really* want is a "full branch diff" view from the tool so
that I can see the branch in its entirety. When I need to do this now, I
pull from Gerrit, but it's a pain because getting the commits from there
is unnecessarily complex (the ref names it uses aren't fetched by
default).

>   • I feel that as a part of the open source community we should be using open
>     source tools where possible. So I would add being open source as a nice to
>     have.

+1

>   • Finally I think supporting PR from GitHub is important, it's a familiar
>     workflow for many developers. However, this doesn't mean that GitHub has to
>     be our review tool. Integration is possible with other tools, for example
>     Gerrit has a GitHub plugin. I have contributed to projects that use SVN
>     through GitHub PRs :-)

A bot could pull PRs into whatever we end up using automatically with
the web hooks Github provides.

--Ben



More information about the vtk-developers mailing list