Git/Conversion/Timeline
< Git | Conversion
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. |
December 2011
edit- Preliminary test conversions early in month Done, December 5ish
- Git workflow architecture review Done, December 19
- Agree on implementation strategies regarding remaining development process questions, e.g. how to handle multi-repo commits 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
editFinish 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 - Done, Branched at r110996 on 9th February, 2012
- Ask people to stop creating new extensions in Subversion now - Done, 11 Feb
- Communicate to larger community about migration
- techblog post - Done, 15 February 2012
- Make Gerrit behave like we want it to -- TODO [in progress, see March]
- work on permissions Done as of March 9th
- work on hooks - Done as of March 30th
- Training documentation and interactive training
- Update Git/Workflow 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 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 Done
- stage git-based tree on fenari Done
- update documentation Done
- i18n updates Bug 34137 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 coreto git starts.
- 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
- to support WMF workflow Done
- MediaWiki 1.19RC1 release from Subversion. [Week of 5 March] Done
- Code review stats goal by end-of-week: 20 new on phase3, 100 new on phase3+extensions WMF deploys. 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]
- wikitech-l, mediawiki-l [ongoing]
- add !gitconversion to mw-bot Done
- Keep Extension:ExtensionDistributor working. See bugzilla:27812. [In progress - Sam]
- MediaWiki 1.19.0 release from
SubversionGit. [Week of 12 March]- MediaWiki 1.19.0beta2 release from git Done March 22nd.
- Code review stats goal by end-of-week: as close to zero as possible in phase3+extensions WMF deploys. 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] Done
- Make Gerrit behave like we want it to -- [[labsconsole:Gerrit bugs that matter|TODO] (better TODO to come)
- Making permissions right Done
- Allow anyone to create a gerrit account without needing human intervention from a gatekeeper [in discussion]
- Making hooks correct Done
- Making permissions right Done
- Documentation and training
- Chad to update the code review guides, with help from Guillaume, before the migration of core. This will include:
- docs on how current SVN committers can link their LDAP accounts, get passwords put on them, and thus get gerrit accounts (currently on labs, need improvement)
- Create a page where people can request Gerrit accounts [Sumana, March 13th]: Done labsconsole:Help talk:Access
- procedure for adding and removing people from gerrit project owner groups, including for WMF deployment branch and WMF master Done When/how we'll add, remove people from Gerrit project owner groups, Git/Gerrit project ownership
- 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] Done
- Make trunk/phase3 & trunk/extensions read-only 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. Not done
April 2012 + mysterious future
edit- Git migration -- ANYTHING ELSE
- Make paths read-only on case-by-case basis.
- Ongoing, slow process.
- change links on mediawiki.org
- Developer Hub
- How to become a MediaWiki hacker Done
- Commit access Done
- Writing an extension for deployment Done
- More documentation updating. Ask Guillaume for help.
- Code review page is a high priority.
- get out-of-date git template & stick it on every page that mentions Subversion, including Subversion
- Possibly 1.20wmf1 (first mini deployment untethered to release schedule, first of many...1.20wmf2, 1.20wmf3, etc) from git. Done
- Move towards git-based development and release process Done
- First deployment from git mainline development branch Done
- Move towards continuous integration via git, goalpost: weekly deployment
- Jenkins (QUnit/PHPUnit tests) on git branches
- bugzilla:34141
- MediaWiki 1.20, first deployment and release from git mainline development branch [Targeted for October currently]
- Unsorted "blockers"
June - July 2012
editEvaluation 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:
- ReviewBoard (example use by Khan Academy)
- Phabricator (developed initially by Facebook and now community-maintained, example use by Phabricator project ; see also Phabricator)
- Gitorious (developed by Gitorious AS and used to host Gitorious.org; has cross-repo merge request functionality similar to GitHub's pull request feature; example merge request list for StatusNet).
- GitLab (developed by ???, positions itself as open source alternative to GitHub and seems to target a similar feature set -- a bit more active than Gitorious, but does not seem to self-host yet; code on GitHub. Ruby on Rails with a dependency on Gitolite, which is written in Perl :-)
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)