Requests for comment/Deprecate pywikibot-compat

Request for comment (RFC)
Deprecate pywikibot-compat
Component General
Creation date
Author(s) Ricordisamoa
Document status implemented
See Phabricator.

This task has been moved to Phabricator: phab:T99365.

Old content[edit]


Currently, the Pywikibot framework is split in two branches: 'core' (formerly 'rewrite') has full API support and is much more up-to-date with new MediaWiki features, while 'compat' (formerly 'trunk') is old and largely based on screen-scraping. I know of many bot-operators and developers that ported their scripts to the core branch. When I (Ricordisamoa) switched to 'core' (not much after that I started developing my bot, actually) I felt at first confused – also because of the annoying lack of documentation, for both core and compat – but then I understood that the old version was much more messy.


I am working on several bugfixes for core, along with a couple major changes (support for Flow and editing of multiple Wikibase claims at once) but I know that no one will take care of backporting them to compat. MediaWiki and its extensions are evolving fast, and we cannot keep two different bot frameworks up-to-date. Also, the documentation does not always tell them apart, and this is raising issues with less-experienced operators.

Some others are also working to make the framework compatible with Python 3 (bugzilla:58053), and again: why two versions?


Now, I am proposing to declare 'compat' officially deprecated in favor of 'core' and give notice of this on mail:pywikipedia-l and mail:pywikipedia-announce. Of course, we will have to solve bugzilla:55880 before.
We could even port some of the screen-scraping techniques to core, if API access is a problem for someone. But we should definitely keep them in a separate file.

See also[edit]


year compat core remarks
2010 767 261
2011 759 319
2012 738 371
2013 1030 863
2014 278 1418
2015 105 1231
2016 13 365
It is impossible to keep both branches synchronized on the same level porting and backporting features, classes, methods and scripts from one to the other. I'll port all my scripts from compat to core in the next months (I hope this will be weeks ;) and I am willing to support other people as much as possible to convert their scripts. But I personally will reduce developing compat in future and have core in focus.  @xqt 13:34, 20 May 2014 (UTC)Reply[reply]