Boost logo

Boost :

Subject: [boost] [O/T git and workflows] A couple of questions
From: Brian Schrom (brian.schrom_at_[hidden])
Date: 2012-03-06 12:19:34


This is slightly off topic, but with recent (and future ;) ) Git
discussions, hopefully not too off topic...

If Boost were to adopt Git, I believe Gitolite
(https://github.com/sitaramc/gitolite,
http://sitaramc.github.com/gitolite/ -- docs) or something similar would
need to be used which provides some centralization features. Maybe github?

Gerrit (http://code.google.com/p/gerrit/) is primarily a code review
tool, though provides some centralized support.

git flow (https://github.com/nvie/gitflow) has some nice wrappers
for branch management. This looks especially appealing for gently
introducing people to git. It provides structure and reduces the number
of commands.

My question is what the workflow, tools, and experience people have with
combining all of these tools. I think this community will need
something along these lines if it is to transition to Git anyway, so
maybe this will get that part of the discussion started.

----
Just to keep the discussion on git going...
In my  "brain storming" world,  there is  the central boost  repo (which
currently exists), I clone it.  (When can we start submitting to github?
:) )
I use git flow locally for my  own branch management.  This allows me to
work on multiple features independently.
When a  feature is  completed locally,  I send  the patch  (possibly via
gerrit  ) and  that  patch sits  in the  maintainers  review queue.   If
accepted, the patch is applied and merged for the next release.
Largely, I believe this is what exists right now.  Admittedly, I've only
ever submitted  one patch to Boost.   That was an email  directly to the
library author.
What I want to understand is, if such tools were adopted, would it lower
the burden on library maintainers enough to justify the change?
Again, my perception of the way things currently are vs could be with git:
centralized subversion server.                    centralized git server
(gitolite?)
svn checkout trunk                                git clone developer
Use whatever local strategy for development       use git flow +
whatever local strategy for development
create patch and attach to TRAC ticket            git push to gerrit
server (for instance)
poke people on mailing list about patches         (poke people on
mailing list about pending reviews and such)
maintainer applies patch and pushes to server     An approved patch gets
pushed to centralized server.
 * Where  would build-bot/Jenkins  interact in  this process?   It seems
that there are  a few places...1) Want  to be able to  test local branch
during development,  2) then  test during the  patch review  and approve
process, and 3) finally test on the integrated branch.
 * Would the "better" localized development tools (git + git flow + more
direct patch submission) facilitate  more participation in the community
over the current  method? (my guess is not much,  though the people that
do  contribute  might  appreciate  the  improvements.   And  some  would
consider them not improvements and stop contributing?
 * Would the review process save the maintainer's enough time and effort
that they're more able to process more patches on a regular basis?

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk