[Twisted-Python] git repo maintenance

Duncan McGreggor duncan.mcgreggor at gmail.com
Sun Oct 21 14:57:03 EDT 2012

On Sun, Oct 21, 2012 at 11:30 AM,  <exarkun at twistedmatrix.com> wrote:
> On 05:43 pm, duncan.mcgreggor at gmail.com wrote:
>>On Oct 21, 2012, at 7:02 AM, Laurens Van Houtven <_ at lvh.cc> wrote:
>>>At what point did this change?
>>Not sure. I don't know the history of the github repo nor its uses. I
>>was certainly surprised with Glyph said that pull requests would be
> This has always been the case.  Anyone is free to contribute code in any
> way they want.  (Though, if you contribute code in some way that no one
> can understand, there may be a delay in the contribution being
> accepted.)
> The blocker for people using git for Twisted development has been that
> no one has wanted to do it badly enough to commit to maintaining the git
> mirror.

I want to use git instead of svn so badly that I can taste it.
Hopefully this provides the motivation necessary to maintain the repo

>>>ISTR the lack of interest in maintaining the Github account was pretty
>>>much a consequence of it seeming pretty pointless: ie it was still
>>>easier to just use SVN than to figure out where the parts work
> As mentioned above, I have a slightly different perspective on this. :)
>>>Will code review also be happening at a pull request level?
>>Here's what I envision...
>>1) a ticket is created on tm.com/trac for a feature, bug, etc.
>>2) the developer forks the github repo so they can work in their own
>>space, e.g., creating a branch for the new ticket
>>3) the ticket is updated with a link to the branch they created on
>>github (e.g., github.com/username/feature-name-1234).
>>4) when ready for review, the dev rebases against master (which will be
>>syncing with svn every 30 minutes or so), squashing all commits into
>>one and issues a pull request on github
>>5) the ticket is updated to review status
>>6) other devs take a look at the diff (git clone twisted repo, git pull
>>dev's branch), with review comments going in the trac ticket
>>7) dev iterates on feedback, rebasing on master every time
>>8) once approved, perform final rebase, and ask that your pull request
>>be merged on github
>>9) someone will then ensure that git master is merged into svn trunk
>>Note that this hasn't been fully tested yet, so one or more parts of
>>this worklfow may have to change...
> At some point *before* svn trunk is updated, Buildbot needs to be able
> to get the code so it can run tests on all our supported platforms.
> This is the actually important part of this email, you can ignore the
> rest if you want but this really needs to happen.

Excellent feedback -- thanks! This is the sort of thing I need in
order to plan this out sufficiently...

>>This would allow devs to do 100% of their iteration work in git or hg
>>(hg plays well with github, I hear), basically removing the process
>>itself as a barrier to contributions to Twisted.
>>Currently, my own biggest hurdle to resuming contributions to Twisted
>>is the pain of old tech. I've gotten so used to the luxuries of git,
>>hg, and bzr, that svn feels like walking for two days to pick up
>>something at a store, when I can just drive an hour and be there (and
>>not have to walk back home carrying lumber on my back). Everything else
>>I work on (on a daily basis) uses fast, more efficient code repos and
>>more efficient workflows. If forced to use things that slow me down,
>>I'll just pass and do something that quite honestly is a lot more fun.
> While I'm sympathetic to toolchain woes, I can't help but wonder if
> you're being really honest here (with yourself, at least).  Running "svn
> diff" may make you feel bad inside, because svn isn't the latest cool
> toy, but a *hurdle*?  It's just difficult to understand.

Well, I viewed git and github as the hipster's latest cool toy for a
long time, but once I was force to use it, I was converted. The time I
spent wrestling with tool chains and workflows all but disappeared. I
never even thought about it anymore. That's the ideal user interface
with any tool, as far as I'm concerned. When you can use it to be
efficient and don't even think about the tool, where it's just an
extension of your natural thought process, that's a tool that has been
built correctly. Sadly, that's the opposite experience I have with
svn-based branch management :-/


More information about the Twisted-Python mailing list