Manual:Pywikibot/Compat/obsolescence
Pywikibot compact est obsolète. Les utilisateurs de compat doivent migrer vers la version core.
Contexte
Pywikibot (auparavant Pywikipediabot) est apparu en 2002. En 2002, MediaWiki n'avait pas d'API, alors pywikibot utilisait la capture d'écran pour interagir avec MediaWiki. En 2007, une nouvelle branche (réécriture, maintenant dans le noyau) a été lancée à partir de zéro en utilisant l'API MediaWiki (alors nouvelle). Au fil des années, le noyau est devenu de plus en plus mature et de nombreux scripts ont étés portés sur cette nouvelle version. En 2013, "core" a dépassé "compat" en nombre de changements. En 2015, les développeurs de Pywikibot ont décidé de rendre obsolète la version "compat" de Pywikipot et d'arrêter le support de cette version (voir phab:T99365 et phab: T101214). MediaWiki 1.27 était la dernière version supportée par la branche compact (voir phab:T150613).
Utiliser les scripts
Si vous utilisez les scripts Pywikibot vous pouvez simplement installer Pywikibot core. La plupart des scripts ont étés portés sur cette nouvelle version. La version core de Pywikibot utilise un wrapper pour exécuter ces scripts. Si vous utilisez des scripts classiques tels que redirect.py, vous pouvez facilement les utiliser avec core en les lançant avec pwb.py. Par exemple :
$ python pwb.py redirect # au lieu de python redirect.py
Migrer le code
Si vous avez écrit des scripts basés sur compat, il existe une conversion dans le noyau qui vous aide à migrer. Et il existe un script qui porte automatiquement vers le noyau vos scripts rendus compatibles.
Si vous avez des problèmes pour migrer vos scripts, vous pouvez demander de l'aide à la communauté.
Problèmes connus
pywikibot.Site().dbName()
n'ajoute pas le suffixe '_p', donc en cas d'utilisation d'une librairie MySQL pour se connecter aux bases de données des Labs WMF, vous devez ajouter un '_p' manuellement à la fin du nom de la base de données. Par exemple :
mysqldb.connect("testwiki.labsdb", db = pywikibot.Site().dbName() + "_p", user = config.db_username, passwd = config.db_password)
Problèmes bloquants ?
Si vous rencontrez des problèmes bloquants vous empêchant d'utiliser vos scripts avec core, merci de rapporter les bogues via un ticket sur Phabricator (s'il n'existe déjà pas) en le mentionnant dans phab:T99365.