Hello all!

Addshore last night merged the patch[1] that is the first major step towards
Multi-Content-Revisions[2]: it completely guts the Revision class and turns it
into a thin proxy for the new RevisionStore service. The new code is now live
on beta.

This is our second attempt: The first one, on December 18th, thoroughly
corrupted the beta database. It took us some time and a lot of help from Aaron
and especially Roan to figure out what was happening. A detailed post-mortem by
Roan can be found at [3].

Anyway - this stage of MCR development introduces the new multi-revision capable
interface for revision storage (and blob storage) [4]. It does not yet introduce
the new database schema, that will be the next step [5][6]. While doing the
refactoring, I tried to keep the structure of the existing code mostly intact,
just moving functionality out of Revision into the new classes, most importantly
RevisionRecord, RevisionStore, and BlobStore.

Beware that with the next deployment (due January 2nd) the live sites will start
using the new code. Please keep an eye out for any strangeness regarding
revision handling. Adam greatly improved test coverage of the relevant code
(thanks Adam!), but it's always possible that we missed some edge case, maybe
something about archived revisions that were partially migrated from on old
schema or something similarly fun.

Exiting times!

Cheers
Daniel


[1] https://gerrit.wikimedia.org/r/#/c/399174/
[2] https://www.mediawiki.org/wiki/Requests_for_comment/Multi-Content_Revisions
[3] https://phabricator.wikimedia.org/T183252#3853749
[4] https://phabricator.wikimedia.org/T174025
[5] https://phabricator.wikimedia.org/T174024
[6] https://phabricator.wikimedia.org/T174030


-- 
Daniel Kinzler
Principal Platform Engineer

Wikimedia Deutschland
Gesellschaft zur Förderung Freien Wissens e.V.


_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to