Requests for comment/Deprecate pywikibot-compat

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

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

Old contentEdit


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 alsoEdit


  • I'm definitely I favor of deprecating compat but at first we need to make a to-do list and see what needs to be done, You know there are lots of thing needs to be done about this deprecation that I think we need to make a separate page and talk about them at first. things like documentation about migrating self-written codes, documentation for bot operators, porting remained scripts, etc. Ladsgroup (talk) 18:55, 22 April 2014 (UTC)Reply[reply]
  • I agree, we need to do a work breakdown of what needs to be done before deprecating compat. Multichill (talk) 19:00, 22 April 2014 (UTC)Reply[reply]
    @Ladsgroup and Multichill: how about Manual:Pywikibot/2.0 and subpages? --Ricordisamoa 01:18, 2 May 2014 (UTC)Reply[reply]
    As a EN.WP bot editor when I started writing bots I looked at the established python framework for Wikipeida bots. I then tried to figure out what the difference was between compat and rewrite. Looking at the scripts that were available I determined the compat was the better choice. I express my vote against deprecating compat until all compat scripts ported over to rewrite, a migration guide is built, and documentation/examples are sufficient for the entirety of the classes/methods. Hasteur (talk) 00:38, 4 May 2014 (UTC)Reply[reply]
    An interesting thing would be *when* you compared both frameworks. core has progressed a lot since the git migration, and I know a lot of scripts were ported over by awesome GCI students. Also, this isn't a vote. Legoktm (talk) 05:40, 4 May 2014 (UTC)Reply[reply]
    September of last year. It is a vote on "Do we deprecate pywikibot-compat?" so yes, I think voting language is perfectly appropriate. Hasteur (talk) 19:25, 4 May 2014 (UTC)Reply[reply]
  • I updated Project:Pywikibot/2.0/Porting status, (not everything is totally correct though); lets get started on porting the stuff that hasn't been ported yet. Legoktm (talk) 06:52, 4 May 2014 (UTC)Reply[reply]
    I updated Manual:Pywikibot/Scripts some days ago and that list is uptodate.  @xqt 16:31, 4 May 2014 (UTC)Reply[reply]
  • I propose to declare compat as deprecated because it is already deprecated. More and developers including me are working for core and commits for compat are decreasing:
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]