Page MenuHomePhabricator

Revise and move PageSplitTester to Core
Open, MediumPublic

Description

Wikibase is not an appropriate repository for a generic page split tester. This task tracks the effort to move the code from Wikibase to Core and also a few minor improvements:

  • A rename should be considered. Perhaps PageSplitter / PageSplitterTest? This might remove some ambiguity around whether PageSplitTester is for unit tests or production code but may decrease grep visibility for A/B or split test code.
  • Make the bucket order either more explicit or irrelevant. I had to carefully note the order used for config patches and calculate the page_random values for that given order.
  • Add documentation and examples (some of this lives in the tests), clarify what’s the same and what differs from client A/B tests, clarify that bucket assignments are monotonic.
  • Remove wikibase-debug reporting for PageRandomLookup. There don't seem to be any reports of bad values.
  • Revise PageRandomLookupTest to use an actual database instead of a mock.

Questions

Is there a nicer way for PageSplitTester users to obtain page_random than to manually use PageRandomLookup?

Acceptance criteria

  • No PageSplitTester / PageSplitTesterTest or PageRandomLookup / PageRandomLookupTest code, configuration, or strings in Wikibase
  • PageSplitTester (or whatever it's now called) exists in Core and can be used by any extension
  • Bucket order specified by the config is as clear and safe as possible
  • Documentation is revised and added where needed
  • PageRandomLookup doesn't report bad values
  • PageRandomLookupTest tests using a real database like other tests in MediaWiki