Git/Conversion/Timeline

December 2011

edit
  • Preliminary test conversions early in month Yes Done, December 5ish
  • Git workflow architecture review Yes Done, December 19
  • Agree on implementation strategies regarding remaining development process questions, e.g. how to handle multi-repo commits Yes Done as of 1 Feb

January 2012

edit
  • CI tests and linting get run when a developer chooses to push to the stage between their branch and the mainline branch (see Ideal Workflow Document and Git-review) (still in progess as of 9 March -- Antoine is working on this. right now, only happens on the master)

February 2012

edit
  • Finish code review on trunk (progress at Code Review stats and MediaWiki 1.19/Revision report) Code review backlog went back up at the end of the month.
  • Cut 1.19 release branch - Yes Done, Branched at r110996 on 9th February, 2012
  • Ask people to stop creating new extensions in Subversion now - Yes Done, 11 Feb
  • Communicate to larger community about migration
    • techblog post - Yes Done, 15 February 2012
  • Make Gerrit behave like we want it to -- TODO [in progress, see March]
    • work on permissions Yes Done as of March 9th
    • work on hooks - Yes Done as of March 30th
  • Training documentation and interactive training
    • Update Git/Workflow Yes Done
    • Video training. Set up a test repo, tell 3 people to submit patches simultaneously, walk them through that, then walk them through reviewing it Yes Done

March 2012

edit

(Chad Horohoe unavailable March 10th-19th; Antoine Musso is his backup.)

  • Finish up specific Git management scripts / changes
    • to support WMF workflow Yes Done
      • stage git-based tree on fenari Yes Done
      • update documentation Yes Done
    • i18n updates Bug 34137 Yes Done This is nearly complete by March 30th. l10n updates can be pushed from translatewiki, finishing the auto-approval process.
      • Automate the translators' process as much as possible--it currently takes about 20mins/day for Raymond to do and that's a huge timesink. Chad to follow up. This has to be ready before ANY migration of core to git starts.
  • MediaWiki 1.19RC1 release from Subversion. [Week of 5 March] Yes Done
    • Code review stats goal by end-of-week: 20 new on phase3, 100 new on phase3+extensions WMF deploys. Yes Done (late)
  • 2 weeks before migration of MediaWiki core, start communicating about cutover date -- give date & links to all the documentation with the 3 most frequently asked questions [Week of 5 March]
  • Keep Extension:ExtensionDistributor working. See bugzilla:27812. [In progress - Sam]
  • MediaWiki 1.19.0 release from Subversion Git. [Week of 12 March]
    • MediaWiki 1.19.0beta2 release from git Yes Done March 22nd.
    • Code review stats goal by end-of-week: as close to zero as possible in phase3+extensions WMF deploys. Yes Done
  • Mass-create Gerrit accounts from the SVN users whose USERINFO has an email address in it, and tell them via wikitech-l that they should just go to the password reset page on labsconsole to start logging in. [Ryan, March 12th] Yes Done
  • Make Gerrit behave like we want it to -- [[labsconsole:Gerrit bugs that matter|TODO] (better TODO to come)
    • Making permissions right Yes Done
      • Allow anyone to create a gerrit account without needing human intervention from a gatekeeper [in discussion]
    • Making hooks correct Yes Done
  • Documentation and training
    • Chad to update the code review guides, with help from Guillaume, before the migration of core. This will include:
  • Git migration -- core & extensions [scheduled for Wednesday, March 21] Yes Done
    • Make trunk/phase3 & trunk/extensions read-only Yes Done
  • do deauth of SVN as a pre-commit hook to output an informative error message in case someone tries to commit to MW core -- "Subversion is dead, we have moved to git, read Git/Conversion"
    • pre-commit hooks are in puppet, when someone does this (probably Chad)
    • Right now it's a hard de-auth in authz
  • Get native packages on Windows and Mac for git-review since it's so much easier and better than the manual commit messages hook process. See bugzilla:35145. N Not done

April 2012 + mysterious future

edit
  • Git migration -- ANYTHING ELSE
  • Possibly 1.20wmf1 (first mini deployment untethered to release schedule, first of many...1.20wmf2, 1.20wmf3, etc) from git. Yes Done
  • Move towards git-based development and release process Yes Done
  • First deployment from git mainline development branch Yes Done
  • Move towards continuous integration via git, goalpost: weekly deployment
  • MediaWiki 1.20, first deployment and release from git mainline development branch [Targeted for October currently]
  • Unsorted "blockers"

June - July 2012

edit

Evaluation of Git/Gerrit workflow and consideration of alternative tools/workflows.

Goal: Determine whether we need to undertake a significant round of Git/Gerrit improvements, or whether there are major deficiencies in the Git/Gerrit workflow that would justify switching to a different review tool/process.

Alternative open source review tools:

Things about Gerrit we like:

  • We've got core unit tests running prior to any human review
  • We have (imperfect) e-mail notification about changes
  • We can push changes to a specific reviewer
  • Patch sets allow gradual improvement of a change prior to merge
  • Frequent releases of Gerrit itself and active dev community

Things about Gerrit we dislike:

Workflows to consider:

  • Short-lived bug/feature branches (e.g. "bug/36987")
  • Long-lived feature branches (e.g. Wikidata)
  • Well-maintained, regularly pushed extensions (e.g. MobileFrontend)
  • Cross-project maintenance and development (e.g. i18n/l10n updates and fixes)
  • Security-sensitive or access-restricted code (e.g. ops production changes)
  • Complex third party extension development without significant WMF implications (e.g. Semantic MediaWiki)