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