Xqt submitted this change.

View Change

Approvals: Xqt: Verified; Looks good to me, approved
[doc] convert phab task references into a link

- use sphinx.ext.extlinks to convert :phab: role into a link to a
Phabricator task
- connect pywikibot_fix_phab_tasks to sphinx to convert Phabricator
tasks T\d{5,6} inside code documentation to that :phab: role
- add pywikibot_fix_phab_tasks app
- change some documentation to use :phab: role
- also use sphinx.ext.autosectionlabel that every label becomes a reference
- remove sphinx.ext.coverage which is not uses as I can see

Bug: T286364
Change-Id: Idfbabc1694592d93d8b344915623ad2dc6a5417e
---
M HISTORY.rst
M ROADMAP.rst
M docs/api_ref/pywikibot.config.rst
M docs/conf.py
M docs/faq.rst
M docs/global_options.rst
M docs/glossary.rst
M docs/installation.rst
M docs/licenses.rst
M scripts/CHANGELOG.md
M tox.ini
11 files changed, 576 insertions(+), 569 deletions(-)

diff --git a/HISTORY.rst b/HISTORY.rst
index aee8aaf..b1c3e5f 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -10,11 +10,11 @@

* i18n updates for date.py
* Add number transliteration of 'lo', 'ml', 'pa', 'te' to NON_LATIN_DIGITS
-* Detect range blocks with Page.is_blocked() method (T301282)
+* Detect range blocks with Page.is_blocked() method (:phab:`T301282`)
* to_latin_digits() function was added to textlib as counterpart of to_local_digits() function
* api.Request.submit now handles search-title-disabled and search-text-disabled API Errors
* A show_diff parameter was added to Page.put() and Page.change_category()
-* Allow categories when saving IndexPage (T299806)
+* Allow categories when saving IndexPage (:phab:`T299806`)
* Add a new function case_escape to textlib
* Support inheritance of the __STATICREDIRECT__
* Avoid non-deteministic behavior in removeDisableParts
@@ -22,57 +22,57 @@
* Synchronize Page.linkedPages() parameters with Site.pagelinks() parameters
* Scripts hash bang was changed from python to python3
* i18n.bundles(), i18n.known_languages and i18n._get_bundle() functions were added
-* Raise ConnectionError immediately if urllib3.NewConnectionError occurs (T297994, 298859)
-* Make pywikibot messages available with site package (T57109, T275981)
+* Raise ConnectionError immediately if urllib3.NewConnectionError occurs (:phab:`T297994`, :phab:`T298859`)
+* Make pywikibot messages available with site package (:phab:`T57109`, :phab:`T275981`)
* Add support for API:Redirects
* Enable shell script with Pywikibot site package
-* Enable generate_user_files.py and generate_family_file with site-package (T107629)
+* Enable generate_user_files.py and generate_family_file with site-package (:phab:`T107629`)
* Add support for Python 3.11
-* Pywikibot supports PyPy 3 (T101592)
-* A new method User.is_locked() was added to determine whether the user is currently locked globally (T249392)
-* A new method APISite.is_locked() was added to determine whether a given user or user id is locked globally (T249392)
-* APISite.get_globaluserinfo() method was added to retrieve globaluserinfo for any user or user id (T163629)
+* Pywikibot supports PyPy 3 (:phab:`T101592`)
+* A new method User.is_locked() was added to determine whether the user is currently locked globally (:phab:`T249392`)
+* A new method APISite.is_locked() was added to determine whether a given user or user id is locked globally (:phab:`T249392`)
+* APISite.get_globaluserinfo() method was added to retrieve globaluserinfo for any user or user id (:phab:`T163629`)
* APISite.globaluserinfo attribute may be deleted to force reload
* APISite.is_blocked() method has a force parameter to reload that info
* Allow family files in base_dir by default
-* Make pwb wrapper script a pywikibot entry point for scripts (T139143, T270480)
-* Enable -version and --version with pwb wrapper or code entry point (T101828)
-* Add `title_delimiter_and_aliases` attribute to family files to support WikiHow family (T294761)
+* Make pwb wrapper script a pywikibot entry point for scripts (:phab:`T139143`, :phab:`T270480`)
+* Enable -version and --version with pwb wrapper or code entry point (:phab:`T101828`)
+* Add `title_delimiter_and_aliases` attribute to family files to support WikiHow family (:phab:`T294761`)
* BaseBot has a public collections.Counter for reading, writing and skipping a page
-* Upload: Retry upload if 'copyuploadbaddomain' API error occurs (T294825)
+* Upload: Retry upload if 'copyuploadbaddomain' API error occurs (:phab:`T294825`)
* Update invisible characters from unicodedata 14.0.0
* Add support for Wikimedia OCR engine with proofreadpage
-* Rewrite tools.intersect_generators which makes it running up to 10'000 times faster. (T85623, T293276)
-* The cached output functionality from compat release was re-implemented (T151727, T73646, T74942, T132135, T144698, T196039, T280466)
+* Rewrite tools.intersect_generators which makes it running up to 10'000 times faster. (:phab:`T85623`, :phab:`T293276`)
+* The cached output functionality from compat release was re-implemented (:phab:`T151727`, :phab:`T73646`, :phab:`T74942`, :phab:`T132135`, :phab:`T144698`, :phab:`T196039`, :phab:`T280466`)
* L10N updates
-* Adjust groupsize within pagegenerators.PreloadingGenerator (T291770)
-* New "maxlimit" property was added to APISite (T291770)
+* Adjust groupsize within pagegenerators.PreloadingGenerator (:phab:`T291770`)
+* New "maxlimit" property was added to APISite (:phab:`T291770`)

Bugfixes
~~~~~~~~

-* Don't raise an exception if BlockEntry initializer found a hidden title (T78152)
-* Fix KeyError in create_warnings_list (T301610)
-* Enable similar script call of pwb.py on toolforge (T298846)
-* Remove question mark character from forbidden file name characters (T93482)
-* Enable -interwiki option with pagegenerators (T57099)
-* Don't assert login result (T298761)
-* Allow title placeholder $1 in the middle of an url (T111513, T298078)
-* Don't create a Site object if pywikibot is not fully imported (T298384)
-* Use page.site.data_repository when creating a _WbDataPage (T296985)
-* Fix mysql AttributeError for sock.close() on toolforge (T216741)
-* Only search user_script_paths inside config.base_dir (T296204)
-* pywikibot.argv has been fixed for pwb.py wrapper if called with global args (T254435)
-* Only ignore FileExistsError when creating the api cache (T295924)
-* Only handle query limit if query module is limited (T294836)
-* Upload: Only set filekey/offset for files with names (T294916)
-* Make site parameter of textlib.replace_links() mandatory (T294649)
-* Raise a generic ServerError if the http status code is unofficial (T293208)
+* Don't raise an exception if BlockEntry initializer found a hidden title (:phab:`T78152`)
+* Fix KeyError in create_warnings_list (:phab:`T301610`)
+* Enable similar script call of pwb.py on toolforge (:phab:`T298846`)
+* Remove question mark character from forbidden file name characters (:phab:`T93482`)
+* Enable -interwiki option with pagegenerators (:phab:`T57099`)
+* Don't assert login result (:phab:`T298761`)
+* Allow title placeholder $1 in the middle of an url (:phab:`T111513`, :phab:`T298078`)
+* Don't create a Site object if pywikibot is not fully imported (:phab:`T298384`)
+* Use page.site.data_repository when creating a _WbDataPage (:phab:`T296985`)
+* Fix mysql AttributeError for sock.close() on toolforge (:phab:`T216741`)
+* Only search user_script_paths inside config.base_dir (:phab:`T296204`)
+* pywikibot.argv has been fixed for pwb.py wrapper if called with global args (:phab:`T254435`)
+* Only ignore FileExistsError when creating the api cache (:phab:`T295924`)
+* Only handle query limit if query module is limited (:phab:`T294836`)
+* Upload: Only set filekey/offset for files with names (:phab:`T294916`)
+* Make site parameter of textlib.replace_links() mandatory (:phab:`T294649`)
+* Raise a generic ServerError if the http status code is unofficial (:phab:`T293208`)

Breaking changes
~~~~~~~~~~~~~~~~

-* Support of Python 3.5.0 - 3.5.2 has been dropped (T286867)
+* Support of Python 3.5.0 - 3.5.2 has been dropped (:phab:`T286867`)
* generate_user_files.py, generate_user_files.py, shell.py and version.py were moved to pywikibot/scripts and must be used with pwb wrapper script
* *See also Code cleanups below*

@@ -86,7 +86,7 @@
* showHelp() function was remove in favour of show_help
* CombinedPageGenerator pagegenerator was removed in favour of itertools.chain
* Remove deprecated echo.Notification.id
-* Remove APISite.newfiles() method (T168339)
+* Remove APISite.newfiles() method (:phab:`T168339`)
* Remove APISite.page_exists() method
* Raise a TypeError if BaseBot.init_page return None
* Remove private upload parameters in UploadRobot.upload_file(), FilePage.upload() and APISite.upload() methods
@@ -98,10 +98,10 @@
* Deprecated namespace and pageTitle parameter of CosmeticChangesToolkit were removed
* Remove deprecated BaseSite namespace shortcuts
* Remove deprecated Family.get_cr_templates method in favour of Site.category_redirects()
-* Remove deprecated Page.put_async() method (T193494)
+* Remove deprecated Page.put_async() method (:phab:`T193494`)
* Ignore baserevid parameter for several DataSite methods
* Remove deprecated preloaditempages method
-* Remove disable_ssl_certificate_validation kwargs in http functions in favour of verify parameter (T265206)
+* Remove disable_ssl_certificate_validation kwargs in http functions in favour of verify parameter (:phab:`T265206`)
* Deprecated PYWIKIBOT2 environment variables were removed
* version.ParseError was removed in favour of exceptions.VersionParseError
* specialbots.EditReplacement and specialbots.EditReplacementError were removed in favour of exceptions.EditReplacementError
@@ -118,8 +118,8 @@
* DuplicateFilterPageGenerator was replaced by tools.filter_unique
* ItemPage.concept_url method was replaced by ItemPage.concept_uri
* Outdated parameter names has been dropped
-* Deprecated pywikibot.Error exception were removed in favour of pywikibot.exceptions.Error classes (T280227)
-* Deprecated exception identifiers were removed (T280227)
+* Deprecated pywikibot.Error exception were removed in favour of pywikibot.exceptions.Error classes (:phab:`T280227`)
+* Deprecated exception identifiers were removed (:phab:`T280227`)
* Deprecated date.FormatDate class was removed in favour of date.format_date function
* language_by_size property of wowwiki Family was removed in favour of codes attribute
* availableOptions was removed in favour of available_options
@@ -160,15 +160,15 @@
-----
*28 October 2021*

-* L10N updates (T292423, T294526, T294527)
+* L10N updates (:phab:`T292423`, :phab:`T294526`, :phab:`T294527`)


6.6.1
-----
*21 September 2021*

-* Fix for removed action API token parameters of MediaWiki 1.37 (T291202)
-* APISite.validate_tokens() no longer replaces outdated tokens (T291202)
+* Fix for removed action API token parameters of MediaWiki 1.37 (:phab:`T291202`)
+* APISite.validate_tokens() no longer replaces outdated tokens (:phab:`T291202`)
* L10N updates


@@ -176,8 +176,8 @@
-----
*15 September 2021*

-* Drop piprop from meta=proofreadinfo API call (T290585)
-* Remove use_2to3 with setup.py (T290451)
+* Drop piprop from meta=proofreadinfo API call (:phab:`T290585`)
+* Remove use_2to3 with setup.py (:phab:`T290451`)
* Unify WbRepresentation's abstract method signature
* L10N updates

@@ -186,18 +186,18 @@
-----
*05 August 2021*

-* Add support for jvwikisource (T286247)
+* Add support for jvwikisource (:phab:`T286247`)
* Handle missingtitle error code when deleting
-* Check for outdated setuptools in pwb.py wrapper (T286980)
+* Check for outdated setuptools in pwb.py wrapper (:phab:`T286980`)
* Remove traceback for original exception for known API error codes
* Unused strm parameter of init_handlers was removed
-* Ignore throttle.pid if a Site object cannot be created (T286848)
-* Explicitly return an empty string with OutputProxyOption.out property (T286403)
-* Explicitly return None from ContextOption.result() (T286403)
-* Add support for Lingua Libre family (T286303)
+* Ignore throttle.pid if a Site object cannot be created (:phab:`T286848`)
+* Explicitly return an empty string with OutputProxyOption.out property (:phab:`T286403`)
+* Explicitly return None from ContextOption.result() (:phab:`T286403`)
+* Add support for Lingua Libre family (:phab:`T286303`)
* Catch invalid titles in Category.isCategoryRedirect()
* L10N updates
-* Provide structured data on Commons (T213904, T223820)
+* Provide structured data on Commons (:phab:`T213904`, :phab:`T223820`)


6.4.0
@@ -206,25 +206,25 @@

* Add support for dagwiki, shiwiki and banwikisource
* Fix and clean up DataSite.get_property_by_name
-* Update handling of abusefilter-{disallow,warning} codes (T285317)
-* Fix terminal_interface_base.input_list_choice (T285597)
+* Update handling of abusefilter-{disallow,warning} codes (:phab:`T285317`)
+* Fix terminal_interface_base.input_list_choice (:phab:`T285597`)
* Fix ItemPage.fromPage call
* Use \*iterables instead of genlist in intersect_generators
* Use a sentinel variable to determine the end of an iterable in roundrobin_generators
-* Require setuptools 20.8.1 (T284297)
+* Require setuptools 20.8.1 (:phab:`T284297`)
* Add setter and deleter for summary_parameters of AutomaticTWSummaryBot
* L10N updates
* Add update_options attribute to BaseBot class to update available_options
-* Clear put_queue when canceling page save (T284396)
-* Add -url option to pagegenerators (T239436)
-* Add add_text function to textlib (T284388)
-* Require setuptools >= 49.4.0 (T284297)
+* Clear put_queue when canceling page save (:phab:`T284396`)
+* Add -url option to pagegenerators (:phab:`T239436`)
+* Add add_text function to textlib (:phab:`T284388`)
+* Require setuptools >= 49.4.0 (:phab:`T284297`)
* Require wikitextparser>=0.47.5
-* Allow images to upload locally even they exist in the shared repository (T267535)
-* Show a warning if pywikibot.__version__ is behind scripts.__version__ (T282766)
-* Handle <ce>/<chem> tags as <math> aliases within textlib.replaceExcept() (T283990)
-* Expand simulate query response for wikibase support (T76694)
-* Double the wait time if ratelimit exceeded (T270912)
+* Allow images to upload locally even they exist in the shared repository (:phab:`T267535`)
+* Show a warning if pywikibot.__version__ is behind scripts.__version__ (:phab:`T282766`)
+* Handle <ce>/<chem> tags as <math> aliases within textlib.replaceExcept() (:phab:`T283990`)
+* Expand simulate query response for wikibase support (:phab:`T76694`)
+* Double the wait time if ratelimit exceeded (:phab:`T270912`)
* Deprecated extract_templates_and_params_mwpfh and extract_templates_and_params_regex functions were removed


@@ -232,12 +232,12 @@
-----
*31 May 2021*

-* Check bot/nobots templates for cosmetic_changes hook (T283989)
-* Remove outdated opt._option which is already dropped (T284005)
+* Check bot/nobots templates for cosmetic_changes hook (:phab:`T283989`)
+* Remove outdated opt._option which is already dropped (:phab:`T284005`)
* Use IntEnum with cosmetic_changes CANCEL
-* Remove lru_cahce from botMayEdit method and fix it's logic (T283957)
-* DataSite.createNewItemFromPage() method was removed in favour of ImagePage.fromPage() (T98663)
-* mwparserfromhell or wikitextparser MediaWiki markup parser is mandatory (T106763)
+* Remove lru_cahce from botMayEdit method and fix it's logic (:phab:`T283957`)
+* DataSite.createNewItemFromPage() method was removed in favour of ImagePage.fromPage() (:phab:`T98663`)
+* mwparserfromhell or wikitextparser MediaWiki markup parser is mandatory (:phab:`T106763`)


6.2.0
@@ -247,23 +247,23 @@
Improvements and Bugfixes
~~~~~~~~~~~~~~~~~~~~~~~~~

-* Use different logfiles for multiple processes of the same script (T56685)
+* Use different logfiles for multiple processes of the same script (:phab:`T56685`)
* throttle.pip will be reused as soon as possbile
* terminal_interface_base.TerminalHandler is subclassed from logging.StreamHandler
-* Fix iterating of SizedKeyCollection (T282865)
+* Fix iterating of SizedKeyCollection (:phab:`T282865`)
* An abstract base user interface module was added
-* APISite method pagelanglinks() may skip links with empty titles (T223157)
+* APISite method pagelanglinks() may skip links with empty titles (:phab:`T223157`)
* Fix Page.getDeletedRevision() method which always returned an empty list
-* Async chunked uploads are supported (T129216, T133443)
-* A new InvalidPageError will be raised if a Page has no version history (T280043)
+* Async chunked uploads are supported (:phab:`T129216`, :phab:`T133443`)
+* A new InvalidPageError will be raised if a Page has no version history (:phab:`T280043`)
* L10N updates
-* Fix __getattr__ for WikibaseEntity (T281389)
-* Handle abusefilter-{disallow,warning} codes (T85656)
+* Fix __getattr__ for WikibaseEntity (:phab:`T281389`)
+* Handle abusefilter-{disallow,warning} codes (:phab:`T85656`)

Code cleanups
~~~~~~~~~~~~~

-* MultipleSitesBot.site attribute was removed (T283209)
+* MultipleSitesBot.site attribute was removed (:phab:`T283209`)
* Deprecated BaseSite.category_namespaces() method was removed
* i18n.twntranslate() function was removed in favour of twtranslate()
* siteinfo must be used as a dictionary ad cannot be called anymore
@@ -277,12 +277,12 @@
* Rename _MultiTemplateMatchBuilder to MultiTemplateMatchBuilder
* User.name() method was removed in favour of User.username property
* BasePage.getLatestEditors() method was removed in favour of contributors() or revisions()
-* pagenenerators.handleArg() method was renamed to handle_arg() (T271437)
+* pagenenerators.handleArg() method was renamed to handle_arg() (:phab:`T271437`)
* CategoryGenerator, FileGenerator, ImageGenerator and ReferringPageGenerator pagegenerator functions were removed
-* Family.ignore_certificate_error() method was removed in favour of verify_SSL_certificate (T265205)
+* Family.ignore_certificate_error() method was removed in favour of verify_SSL_certificate (:phab:`T265205`)
* tools.is_IP was renamed to is_ip_address due to PEP8
* config2.py was renamed to config.py
-* Exceptions were renamed having a suffix "Error" due to PEP8 (T280227)
+* Exceptions were renamed having a suffix "Error" due to PEP8 (:phab:`T280227`)


6.1.0
@@ -292,23 +292,23 @@
Improvements and Bugfixes
~~~~~~~~~~~~~~~~~~~~~~~~~

-* proofreadpage: search for "new" class after purge (T280357)
+* proofreadpage: search for "new" class after purge (:phab:`T280357`)
* Enable different types with BaseBot.treat()
-* Context manager depends on pymysql version, not Python release (T279753)
-* Bugfix for Site.interwiki_prefix() (T188179)
-* Exclude expressions from parsed template in mwparserfromhell (T71384)
+* Context manager depends on pymysql version, not Python release (:phab:`T279753`)
+* Bugfix for Site.interwiki_prefix() (:phab:`T188179`)
+* Exclude expressions from parsed template in mwparserfromhell (:phab:`T71384`)
* Provide an object representation for DequeGenerator
-* Allow deleting any subclass of BasePage by title (T278659)
-* Add support for API:Revisiondelete with Site.deleterevs() method (T276726)
+* Allow deleting any subclass of BasePage by title (:phab:`T278659`)
+* Add support for API:Revisiondelete with Site.deleterevs() method (:phab:`T276726`)
* L10N updates
-* Family files can be collected from a zip folder (T278076)
+* Family files can be collected from a zip folder (:phab:`T278076`)

Dependencies
~~~~~~~~~~~~

-* **mwparserfromhell** or **wikitextparser** are strictly recommended (T106763)
-* Require **Pillow**>=8.1.1 due to vulnerability found (T278743)
-* TkDialog of GUI userinterface requires **Python 3.6+** (T278743)
+* **mwparserfromhell** or **wikitextparser** are strictly recommended (:phab:`T106763`)
+* Require **Pillow**>=8.1.1 due to vulnerability found (:phab:`T278743`)
+* TkDialog of GUI userinterface requires **Python 3.6+** (:phab:`T278743`)
* Enable textlib.extract_templates_and_params with **wikitextparser** package
* Add support for **PyMySQL** 1.0.0+

@@ -318,7 +318,7 @@
* APISite.resolvemagicwords(), BaseSite.ns_index() and remove BaseSite.getNamespaceIndex() were removed
* Deprecated MoveEntry.new_ns() and new_title() methods were removed
* Unused NoSuchSite and PageNotSaved exception were removed
-* Unused BadTitle exception was removed (T267768)
+* Unused BadTitle exception was removed (:phab:`T267768`)
* getSite() function was removed in favour of Site() constructor
* Page.fileUrl() was removed in favour of Page.get_file_url()
* Deprecated getuserinfo and getglobaluserinfo Site methods were removed
@@ -328,7 +328,7 @@
-----
*20 March 2021*

-* Add support for taywiki, trvwiki and mnwwiktionary (T275838, T276128, T276250)
+* Add support for taywiki, trvwiki and mnwwiktionary (:phab:`T275838`, :phab:`T276128`, :phab:`T276250`)


6.0.0
@@ -338,74 +338,74 @@
Breaking changes
~~~~~~~~~~~~~~~~

-* interwiki_graph module was removed (T223826)
+* interwiki_graph module was removed (:phab:`T223826`)
* Require setuptools >= 20.2 due to PEP 440
-* Support of MediaWiki < 1.23 has been dropped (T268979)
+* Support of MediaWiki < 1.23 has been dropped (:phab:`T268979`)
* APISite.loadimageinfo will no longer return any content
-* Return requests.Response with http.request() instead of plain text (T265206)
+* Return requests.Response with http.request() instead of plain text (:phab:`T265206`)
* config.db_hostname has been renamed to db_hostname_format

Code cleanups
~~~~~~~~~~~~~

-* tools.PY2 was removed (T213287)
+* tools.PY2 was removed (:phab:`T213287`)
* Site.language() method was removed in favour of Site.lang property
* Deprecated Page.getMovedTarget() method was removed in favour of moved_target()
* Remove deprecated Wikibase.lastrevid attribute
-* config settings of archived scripts were removed (T223826)
-* Drop startsort/endsort parameter for site.categorymembers method (T74101)
-* Deprecated data attribute of http.fetch() result has been dropped (T265206)
+* config settings of archived scripts were removed (:phab:`T223826`)
+* Drop startsort/endsort parameter for site.categorymembers method (:phab:`T74101`)
+* Deprecated data attribute of http.fetch() result has been dropped (:phab:`T265206`)
* toStdout parameter of pywikibot.output() has been dropped
* Deprecated Site.getToken() and Site.case was removed
-* Deprecated Family.known_families dict was removed (T89451)
+* Deprecated Family.known_families dict was removed (:phab:`T89451`)
* Deprecated DataSite.get_* methods was removed
* Deprecated LogEntryFactory.logtypes classproperty was removed
-* Unused comms.threadedhttp module was removed; threadedhttp.HttpRequest was already replaced with requests.Response (T265206)
+* Unused comms.threadedhttp module was removed; threadedhttp.HttpRequest was already replaced with requests.Response (:phab:`T265206`)

Other changes
~~~~~~~~~~~~~

-* Raise a SiteDefinitionError if api request response is Non-JSON and site is AutoFamily (T272911)
-* Support deleting and undeleting specific file versions (T276725)
+* Raise a SiteDefinitionError if api request response is Non-JSON and site is AutoFamily (:phab:`T272911`)
+* Support deleting and undeleting specific file versions (:phab:`T276725`)
* Only add bot option generator if the bot class have it already
-* Raise a RuntimeError if pagegenerators -namespace option is provided too late (T276916)
-* Check for LookupError exception in http._decide_encoding (T276715)
-* Re-enable setting private family files (T270949)
+* Raise a RuntimeError if pagegenerators -namespace option is provided too late (:phab:`T276916`)
+* Check for LookupError exception in http._decide_encoding (:phab:`T276715`)
+* Re-enable setting private family files (:phab:`T270949`)
* Move the hardcoded namespace identifiers to an IntEnum
* Buffer 'pageprops' in api.QueryGenerator
* Ensure that BaseBot.generator is a Generator
-* Add additional info into log if 'messagecode' is missing during login (T261061, T269503)
-* Use hardcoded messages if i18n system is not available (T275981)
+* Add additional info into log if 'messagecode' is missing during login (:phab:`T261061`, :phab:`T269503`)
+* Use hardcoded messages if i18n system is not available (:phab:`T275981`)
* Move wikibase data structures to page/_collections.py
* L10N updates
-* Add support for altwiki (T271984)
-* Add support for mniwiki and mniwiktionary (T273467, T273462)
-* Don't use mime parameter as boolean in api.Request (T274723)
-* textlib.removeDisabledPart is able to remove templates (T274138)
-* Create a SiteLink with __getitem__ method and implement lazy load (T273386, T245809, T238471, T226157)
-* Fix date.formats['MonthName'] behaviour (T273573)
+* Add support for altwiki (:phab:`T271984`)
+* Add support for mniwiki and mniwiktionary (:phab:`T273467`, :phab:`T273462`)
+* Don't use mime parameter as boolean in api.Request (:phab:`T274723`)
+* textlib.removeDisabledPart is able to remove templates (:phab:`T274138`)
+* Create a SiteLink with __getitem__ method and implement lazy load (:phab:`T273386`, :phab:`T245809`, :phab:`T238471`, :phab:`T226157`)
+* Fix date.formats['MonthName'] behaviour (:phab:`T273573`)
* Implement pagegenerators.handle_args() to process all options at once
-* Add enabled_options, disabled_options to GeneratorFactory (T271320)
+* Add enabled_options, disabled_options to GeneratorFactory (:phab:`T271320`)
* Move interwiki() interwiki_prefix() and local_interwiki() methods from BaseSite to APISite
-* Add requests.Response.headers to log when an API error occurs (T272325)
+* Add requests.Response.headers to log when an API error occurs (:phab:`T272325`)


5.6.0
-----
*24 January 2021*

-* Use string instead of Path-like object with "open" function in UploadRobot for Python 3.5 compatibility (T272345)
-* Add support for trwikivoyage (T271263)
-* UI.input_list_choice() has been improved (T272237)
+* Use string instead of Path-like object with "open" function in UploadRobot for Python 3.5 compatibility (:phab:`T272345`)
+* Add support for trwikivoyage (:phab:`T271263`)
+* UI.input_list_choice() has been improved (:phab:`T272237`)
* Global handleArgs() function was removed in favour of handle_args
* Deprecated originPage and foundIn property has been removed in interwiki_graph.py
* ParamInfo modules, prefixes, query_modules_with_limits properties and module_attribute_map() method was removed
* Allow querying alldeletedrevisions with APISite.alldeletedrevisions() and User.deleted_contributions()
-* data attribute of http.fetch() response is deprecated (T265206)
-* Positional arguments of page.Revision aren't supported any longer (T259428)
-* pagenenerators.handleArg() method was renamed to handle_arg() (T271437)
+* data attribute of http.fetch() response is deprecated (:phab:`T265206`)
+* Positional arguments of page.Revision aren't supported any longer (:phab:`T259428`)
+* pagenenerators.handleArg() method was renamed to handle_arg() (:phab:`T271437`)
* Page methods deprecated for 6 years were removed
-* Create a Site with AutoFamily if a family isn't predefined (T249087)
+* Create a Site with AutoFamily if a family isn't predefined (:phab:`T249087`)
* L10N updates


@@ -413,11 +413,11 @@
-----
*12 January 2021*

-* Add support for niawiki, bclwikt, diqwikt, niawikt (T270416, T270282, T270278, T270412)
-* Delete page using pageid instead of title (T57072)
-* version.getversion_svn_setuptools function was removed (T270393)
+* Add support for niawiki, bclwikt, diqwikt, niawikt (:phab:`T270416`, :phab:`T270282`, :phab:`T270278`, :phab:`T270412`)
+* Delete page using pageid instead of title (:phab:`T57072`)
+* version.getversion_svn_setuptools function was removed (:phab:`T270393`)
* Add support for "musical notation" data type to wikibase
-* -grepnot filter option was added to pagegenerators module (T219281)
+* -grepnot filter option was added to pagegenerators module (:phab:`T219281`)
* L10N updates


@@ -425,13 +425,13 @@
-----
*2 January 2021*

-* Re-enable reading user-config.py from site package (T270941)
+* Re-enable reading user-config.py from site package (:phab:`T270941`)
* LoginManager.getCookie() was renamed to login_to_site()
-* Deprecation warning for MediaWiki < 1.23 (T268979)
+* Deprecation warning for MediaWiki < 1.23 (:phab:`T268979`)
* Add backports to support some Python 3.9 changes
-* Desupported shared_image_repository() and nocapitalize() methods were removed (T89451)
+* Desupported shared_image_repository() and nocapitalize() methods were removed (:phab:`T89451`)
* pywikibot.cookie_jar was removed in favour of pywikibot.comms.http.cookie_jar
-* Align http.fetch() params with requests and rename 'disable_ssl_certificate_validation' to 'verify' (T265206)
+* Align http.fetch() params with requests and rename 'disable_ssl_certificate_validation' to 'verify' (:phab:`T265206`)
* Deprecated compat BasePage.getRestrictions() method was removed
* Outdated Site.recentchanges() parameters has been dropped
* site.LoginStatus has been removed in favour of login.LoginStatus
@@ -442,20 +442,20 @@
-----
*19 December 2020*

-* Allow using pywikibot as site-package without user-config.py (T270474)
+* Allow using pywikibot as site-package without user-config.py (:phab:`T270474`)
* Python 3.10 is supported
-* Fix AutoFamily scriptpath() call (T270370)
-* Add support for skrwiki, skrwiktionary, eowikivoyage, wawikisource, madwiki (T268414, T268460, T269429, T269434, T269442)
+* Fix AutoFamily scriptpath() call (:phab:`T270370`)
+* Add support for skrwiki, skrwiktionary, eowikivoyage, wawikisource, madwiki (:phab:`T268414`, :phab:`T268460`, :phab:`T269429`, :phab:`T269434`, :phab:`T269442`)
* wikistats methods fetch, raw_cached, csv, xml has been removed
* PageRelatedError.getPage() has been removed in favour of PageRelatedError.page
* DataSite.get_item() method has been removed
-* global put_throttle option may be given as float (T269741)
+* global put_throttle option may be given as float (:phab:`T269741`)
* Property.getType() method has been removed
-* Family.server_time() method was removed; it is still available from Site object (T89451)
-* All HttpRequest parameters except of charset has been dropped (T265206)
-* A lot of methods and properties of HttpRequest are deprecared in favour of requests.Resonse attributes (T265206)
-* Method and properties of HttpRequest are delegated to requests.Response object (T265206)
-* comms.threadedhttp.HttpRequest.raw was replaced by HttpRequest.content property (T265206)
+* Family.server_time() method was removed; it is still available from Site object (:phab:`T89451`)
+* All HttpRequest parameters except of charset has been dropped (:phab:`T265206`)
+* A lot of methods and properties of HttpRequest are deprecared in favour of requests.Resonse attributes (:phab:`T265206`)
+* Method and properties of HttpRequest are delegated to requests.Response object (:phab:`T265206`)
+* comms.threadedhttp.HttpRequest.raw was replaced by HttpRequest.content property (:phab:`T265206`)
* Desupported version.getfileversion() has been removed
* site parameter of comms.http.requests() function is mandatory and cannot be omitted
* date.MakeParameter() function has been removed
@@ -467,40 +467,40 @@
-----
*10 December 2020*

-* Remove deprecated args for Page.protect() (T227610)
+* Remove deprecated args for Page.protect() (:phab:`T227610`)
* Move BaseSite its own site/_basesite.py file
* Improve toJSON() methods in page.__init__.py
-* _is_wikibase_error_retryable rewritten (T48535, 268645)
+* _is_wikibase_error_retryable rewritten (:phab:`T48535`, 268645)
* Replace FrozenDict with frozenmap
* WikiStats table may be sorted by any key
* Retrieve month names from mediawiki_messages when required
* Move Namespace and NamespacesDict to site/_namespace.py file
-* Fix TypeError in api.LoginManager (T268445)
+* Fix TypeError in api.LoginManager (:phab:`T268445`)
* Add repr() method to BaseDataDict and ClaimCollection
* Define availableOptions as deprecated property
-* Do not strip all whitespaces from Link.title (T197642)
+* Do not strip all whitespaces from Link.title (:phab:`T197642`)
* Introduce a common BaseDataDict as parent for LanguageDict and AliasesDict
-* Replaced PageNotSaved by PageSaveRelatedError (T267821)
+* Replaced PageNotSaved by PageSaveRelatedError (:phab:`T267821`)
* Add -site option as -family -lang shortcut
-* Enable APISite.exturlusage() with default parameters (T266989)
+* Enable APISite.exturlusage() with default parameters (:phab:`T266989`)
* Update tools._unidata._category_cf from Unicode version 13.0.0
* Move TokenWallet to site/_tokenwallet.py file
-* Fix import of httplib after release of requests 2.25 (T267762)
-* user keyword parameter can be passed to Site.rollbackpage() (T106646)
-* Check for {{bots}}/{{nobots}} templates in Page.text setter (T262136, T267770)
+* Fix import of httplib after release of requests 2.25 (:phab:`T267762`)
+* user keyword parameter can be passed to Site.rollbackpage() (:phab:`T106646`)
+* Check for {{bots}}/{{nobots}} templates in Page.text setter (:phab:`T262136`, :phab:`T267770`)
* Remove deprecated UserBlocked exception and Page.contributingUsers()
* Add support for some 'wbset' actions in DataSite
-* Fix UploadRobot site attribute (T267573)
-* Ignore UnicodeDecodeError on input (T258143)
-* Replace 'source' exception regex with 'syntaxhighlight' (T257899)
-* Fix get_known_families() for wikipedia_family (T267196)
+* Fix UploadRobot site attribute (:phab:`T267573`)
+* Ignore UnicodeDecodeError on input (:phab:`T258143`)
+* Replace 'source' exception regex with 'syntaxhighlight' (:phab:`T257899`)
+* Fix get_known_families() for wikipedia_family (:phab:`T267196`)
* Move _InterwikiMap class to site/_interwikimap.py
* instantiate a CosmeticChangesToolkit by passing a page
* Create a Site from sitename
* pywikibot.Site() parameters "interface" and "url" must be keyworded
-* Lookup the code parameter in xdict first (T255917)
-* Remove interwiki_forwarded_from list from family files (T104125)
-* Rewrite Revision class; each data can be accessed either by key or as an attribute (T102735, T259428)
+* Lookup the code parameter in xdict first (:phab:`T255917`)
+* Remove interwiki_forwarded_from list from family files (:phab:`T104125`)
+* Rewrite Revision class; each data can be accessed either by key or as an attribute (:phab:`T102735`, :phab:`T259428`)
* L10N-Updates


@@ -509,23 +509,23 @@

*1 November 2020*

-* Avoid conflicts between site and possible site keyword in api.Request.create_simple() (T262926)
+* Avoid conflicts between site and possible site keyword in api.Request.create_simple() (:phab:`T262926`)
* Remove wrong param of rvision() call in Page.latest_revision_id
-* Do not raise Exception in Page.get_best_claim() but follow redirect (T265839)
+* Do not raise Exception in Page.get_best_claim() but follow redirect (:phab:`T265839`)
* xml-support of wikistats will be dropped
* Remove deprecated mime_params in api.Request()
* cleanup interwiki_graph.py and replace deprecated originPage by origin in Subjects
-* Upload a file that ends with the '\r' byte (T132676)
-* Fix incorrect server time (T266084)
+* Upload a file that ends with the '\r' byte (:phab:`T132676`)
+* Fix incorrect server time (:phab:`T266084`)
* L10N-Updates
-* Support Namespace packages in version.py (T265946)
-* Server414Error was added to pywikibot (T266000)
+* Support Namespace packages in version.py (:phab:`T265946`)
+* Server414Error was added to pywikibot (:phab:`T266000`)
* Deprecated editor.command() method was removed
* comms.PywikibotCookieJar and comms.mode_check_decorator were deleted
* Remove deprecated tools classes Stringtypes and UnicodeType
* Remove deprecated tools function open_compressed and signature and UnicodeType class
-* Fix http_tests.LiveFakeUserAgentTestCase (T265842)
-* HttpRequest properties were renamed to request.Response identifiers (T265206)
+* Fix http_tests.LiveFakeUserAgentTestCase (:phab:`T265842`)
+* HttpRequest properties were renamed to request.Response identifiers (:phab:`T265206`)


5.0.0
@@ -533,47 +533,47 @@

*19 October 2020*

-* Add support for smn-wiki (T264962)
+* Add support for smn-wiki (:phab:`T264962`)
* callback parameter of comms.http.fetch() is desupported
* Fix api.APIError() calls for Flow and Thanks extension
-* edit, move, create, upload, unprotect and prompt parameters of Page.protect() are deprecated (T227610)
-* Accept only valid names in generate_family_file.py (T265328, T265353)
+* edit, move, create, upload, unprotect and prompt parameters of Page.protect() are deprecated (:phab:`T227610`)
+* Accept only valid names in generate_family_file.py (:phab:`T265328`, :phab:`T265353`)
* New plural.plural_rule() function returns a rule for a given language
-* Replace deprecated urllib.request.URLopener with http.fetch (T255575)
-* OptionHandler/BaseBot options are accessable as OptionHandler.opt attributes or keyword item (see also T264721)
+* Replace deprecated urllib.request.URLopener with http.fetch (:phab:`T255575`)
+* OptionHandler/BaseBot options are accessable as OptionHandler.opt attributes or keyword item (see also :phab:`T264721`)
* pywikibot.setAction() function was removed
* A namedtuple is the result of textlib.extract_sections()
-* Prevent circular imports in config2.py and http.py (T264500)
+* Prevent circular imports in config2.py and http.py (:phab:`T264500`)
* version.get_module_version() is deprecated and gives no meaningfull result
-* Fix version.get_module_filename() and update log lines (T264235)
-* Re-enable printing log header (T264235)
-* Fix result of tools.intersect_generators() (T263947)
+* Fix version.get_module_filename() and update log lines (:phab:`T264235`)
+* Re-enable printing log header (:phab:`T264235`)
+* Fix result of tools.intersect_generators() (:phab:`T263947`)
* Only show _GLOBAL_HELP options if explicitly wanted
* Deprecated Family.version() methods were removed
* Unused parameters of page methods like forceReload, insite, throttle, step was removed
-* Raise RuntimeError instead of AttributeError for old wikis (T263951)
+* Raise RuntimeError instead of AttributeError for old wikis (:phab:`T263951`)
* Deprecated script options were removed
-* lyricwiki_family was removed (T245439)
+* lyricwiki_family was removed (:phab:`T245439`)
* RecentChangesPageGenerator parameters has been synced with APISite.recentchanges
* APISite.recentchanges accepts keyword parameters only
* LoginStatus enum class was moved from site to login.py
* WbRepresentation derives from abstract base class abc.ABC
* Update characters in the Cf category to Unicode version 12.1.0
-* Update __all__ variable in pywikibot (T122879)
-* Use api.APIGenerator through site._generator (T129013)
-* Support of MediaWiki releases below 1.19 has been dropped (T245350)
-* Page.get_best_claim () retrieves preferred Claim of a property referring to the given page (T175207)
-* Check whether _putthead is current_thread() to join() (T263331)
+* Update __all__ variable in pywikibot (:phab:`T122879`)
+* Use api.APIGenerator through site._generator (:phab:`T129013`)
+* Support of MediaWiki releases below 1.19 has been dropped (:phab:`T245350`)
+* Page.get_best_claim () retrieves preferred Claim of a property referring to the given page (:phab:`T175207`)
+* Check whether _putthead is current_thread() to join() (:phab:`T263331`)
* Add BasePage.has_deleted_revisions() method
* Allow querying deleted revs without the deletedhistory right
-* Use ignore_discard for login cookie container (T261066)
-* Siteinfo.get() loads data via API instead from cache if expiry parameter is True (T260490)
-* Move latest revision id handling to WikibaseEntity (T233406)
-* Load wikibase entities when necessary (T245809)
-* Fix path for stable release in version.getversion() (T262558)
+* Use ignore_discard for login cookie container (:phab:`T261066`)
+* Siteinfo.get() loads data via API instead from cache if expiry parameter is True (:phab:`T260490`)
+* Move latest revision id handling to WikibaseEntity (:phab:`T233406`)
+* Load wikibase entities when necessary (:phab:`T245809`)
+* Fix path for stable release in version.getversion() (:phab:`T262558`)
* "since" parameter in EventStreams given as Timestamp or MediaWiki timestamp string has been fixed
* Methods deprecated for 6 years or longer were removed
-* Page.getVersionHistory and Page.fullVersionHistory() methods were removed (T136513, T151110)
+* Page.getVersionHistory and Page.fullVersionHistory() methods were removed (:phab:`T136513`, :phab:`T151110`)
* Allow multiple types of contributors parameter given for Page.revision_count()
* Deprecated tools.UnicodeMixin and tools.IteratorNextMixin has been removed
* Localisation updates
@@ -584,9 +584,9 @@

*2 September 2020*

-* Don't check for valid Family/Site if running generate_user_files.py (T261771)
-* Remove socket_timeout fix in config2.py introduced with T103069
-* Prevent huge traceback from underlying python libraries (T253236)
+* Don't check for valid Family/Site if running generate_user_files.py (:phab:`T261771`)
+* Remove socket_timeout fix in config2.py introduced with :phab:`T103069`
+* Prevent huge traceback from underlying python libraries (:phab:`T253236`)
* Localisation updates


@@ -595,14 +595,14 @@

*28 August 2020*

-* Add support for ja.wikivoyage (T261450)
-* Only run cosmetic changes on wikitext pages (T260489)
-* Leave a script gracefully for wrong -lang and -family option (T259756)
-* Change meaning of BasePage.text (T260472)
+* Add support for ja.wikivoyage (:phab:`T261450`)
+* Only run cosmetic changes on wikitext pages (:phab:`T260489`)
+* Leave a script gracefully for wrong -lang and -family option (:phab:`T259756`)
+* Change meaning of BasePage.text (:phab:`T260472`)
* site/family methods code2encodings() and code2encoding() has been removed in favour of encoding()/encodings() methods
* Site.getExpandedString() method was removed in favour of expand_text
* Site.Family() function was removed in favour of Family.load() method
-* Add wikispore family (T260049)
+* Add wikispore family (:phab:`T260049`)


4.1.1
@@ -620,10 +620,10 @@
*16 August 2020*

* Enable Pywikibot for Python 3.9
-* APISite.loadpageinfo does not discard changes to page content when information was not loaded (T260472)
+* APISite.loadpageinfo does not discard changes to page content when information was not loaded (:phab:`T260472`)
* tools.UnicodeType and tools.signature are deprecated
* BaseBot.stop() method is deprecated in favour of BaseBot.generator.close()
-* Escape bot password correctly (T259488)
+* Escape bot password correctly (:phab:`T259488`)
* Bugfixes and improvements
* Localisation updates

@@ -633,14 +633,14 @@

*4 August 2020*

-* Read correct object in SiteLinkCollection.normalizeData (T259426)
+* Read correct object in SiteLinkCollection.normalizeData (:phab:`T259426`)
* tools.count and tools classes Counter, OrderedDict and ContextManagerWrapper were removed
* Deprecate UnicodeMixin and IteratorNextMixin
* Restrict site module interface
* EventStreams "since" parameter settings has been fixed
* Unsupported debug and uploadByUrl parameters of UploadRobot were removed
* Unported compat decode parameter of Page.title() has been removed
-* Wikihow family file was added (T249814)
+* Wikihow family file was added (:phab:`T249814`)
* Improve performance of CosmeticChangesToolkit.translateMagicWords
* Prohibit positional arguments with Page.title()
* Functions dealing with stars list were removed
@@ -648,27 +648,26 @@
* LogEntry became a UserDict; all content can be accessed by its key
* URLs for new toolforge.org domain were updated
* pywikibot.__release__ was deprecated
-* Use one central point for framework version (T106121, T171886, T197936, T253719)
-* rvtoken parameter of Site.loadrevisions() and Page.revisions() has been dropped (T74763)
+* Use one central point for framework version (:phab:`T106121`, :phab:`T171886`, :phab:`T197936`, :phab:`T253719`)
+* rvtoken parameter of Site.loadrevisions() and Page.revisions() has been dropped (:phab:`T74763`)
* getFilesFromAnHash and getImagesFromAnHash Site methods have been removed
* Site and Page methods deprecated for 10 years or longer have been removed
-* Support for Python 2 and 3.4 has been dropped (T213287, T239542)
+* Support for Python 2 and 3.4 has been dropped (:phab:`T213287`, :phab:`T239542`)
* Bugfixes and improvements
* Localisation updates

-.. _python2:

3.0.20200703
------------

-* Page.botMayEdit() method was improved (T253709)
-* PageNotFound, SpamfilterError, UserActionRefuse exceptions were removed (T253681)
-* tools.ip submodule has been removed (T243171)
+* Page.botMayEdit() method was improved (:phab:`T253709`)
+* PageNotFound, SpamfilterError, UserActionRefuse exceptions were removed (:phab:`T253681`)
+* tools.ip submodule has been removed (:phab:`T243171`)
* Wait in BaseBot.exit() until asynchronous saving pages are completed
-* Solve IndexError when showing an empty diff with a non-zero context (T252724)
+* Solve IndexError when showing an empty diff with a non-zero context (:phab:`T252724`)
* linktrails were added or updated for a lot of sites
-* Resolve namespaces with underlines (T252940)
-* Fix getversion_svn for Python 3.6+ (T253617, T132292)
+* Resolve namespaces with underlines (:phab:`T252940`)
+* Fix getversion_svn for Python 3.6+ (:phab:`T253617`, :phab:`T132292`)
* Bugfixes and improvements
* Localisation updates

@@ -676,14 +675,14 @@
3.0.20200609
------------

-* Fix page_can_be_edited for MediaWiki < 1.23 (T254623)
+* Fix page_can_be_edited for MediaWiki < 1.23 (:phab:`T254623`)
* Show global options with pwb.py -help
* Usage of SkipPageError with BaseBot has been removed
-* Throttle requests after ratelimits exceeded (T253180)
-* Make Pywikibot daemon logs unexecutable (T253472)
+* Throttle requests after ratelimits exceeded (:phab:`T253180`)
+* Make Pywikibot daemon logs unexecutable (:phab:`T253472`)
* Check for missing generator after BaseBot.setup() call
-* Do not change usernames when creating a Site (T253127)
-* pagegenerators: handle protocols in -weblink (T251308, T251310)
+* Do not change usernames when creating a Site (:phab:`T253127`)
+* pagegenerators: handle protocols in -weblink (:phab:`T251308`, :phab:`T251310`)
* Bugfixes and improvements
* Localisation updates

@@ -691,183 +690,183 @@
3.0.20200508
------------

-* Unify and extend formats for setting sitelinks (T225863, T251512)
-* Do not return a random i18n.translation() result (T220099)
-* tools.ip_regexp has been removed (T174482)
-* Page.getVersionHistory and Page.fullVersionHistory() methods has been desupported (T136513, T151110)
-* Update wikimediachapter_family (T250802)
-* Raise SpamblacklistError with spamblacklist APIError (T249436)
-* SpamfilterError was renamed to SpamblacklistError (T249436)
-* Do not removeUselessSpaces inside source/syntaxhighlight tags (T250469)
-* Restrict Pillow to 6.2.2+ (T249911)
-* Fix PetScan generator language and project (T249704)
-* test_family has been removed (T228375, T228300)
+* Unify and extend formats for setting sitelinks (:phab:`T225863`, :phab:`T251512`)
+* Do not return a random i18n.translation() result (:phab:`T220099`)
+* tools.ip_regexp has been removed (:phab:`T174482`)
+* Page.getVersionHistory and Page.fullVersionHistory() methods has been desupported (:phab:`T136513`, :phab:`T151110`)
+* Update wikimediachapter_family (:phab:`T250802`)
+* Raise SpamblacklistError with spamblacklist APIError (:phab:`T249436`)
+* SpamfilterError was renamed to SpamblacklistError (:phab:`T249436`)
+* Do not removeUselessSpaces inside source/syntaxhighlight tags (:phab:`T250469`)
+* Restrict Pillow to 6.2.2+ (:phab:`T249911`)
+* Fix PetScan generator language and project (:phab:`T249704`)
+* test_family has been removed (:phab:`T228375`, :phab:`T228300`)
* Bugfixes and improvements
* Localisation updates

3.0.20200405
------------

-* Fix regression of combining sys.path in pwb.py wrapper (T249427)
-* Site and Page methods deprecated for 10 years or longer are desupported and may be removed (T106121)
+* Fix regression of combining sys.path in pwb.py wrapper (:phab:`T249427`)
+* Site and Page methods deprecated for 10 years or longer are desupported and may be removed (:phab:`T106121`)
* Usage of SkipPageError with BaseBot is desupported and may be removed
-* Ignore InvalidTitle in textlib.replace_links() (T122091)
+* Ignore InvalidTitle in textlib.replace_links() (:phab:`T122091`)
* Raise ServerError also if connection to PetScan timeouts
-* pagegenerators.py no longer supports 'oursql' or 'MySQLdb'. It now solely supports PyMySQL (T243154, T89976)
+* pagegenerators.py no longer supports 'oursql' or 'MySQLdb'. It now solely supports PyMySQL (:phab:`T243154`, :phab:`T89976`)
* Disfunctional Family.versionnumber() method was removed
-* Refactor login functionality (T137805, T224712, T248767, T248768, T248945)
+* Refactor login functionality (:phab:`T137805`, :phab:`T224712`, :phab:`T248767`, :phab:`T248768`, :phab:`T248945`)
* Bugfixes and improvements
* Localisation updates

3.0.20200326
------------
* site.py and page.py files were moved to their own folders and will be split in the future
-* Refactor data attributes of Wikibase entities (T233406)
+* Refactor data attributes of Wikibase entities (:phab:`T233406`)
* Functions dealing with stars list are desupported and may be removed
-* Use path's stem of script filename within pwb.py wrapper (T248372)
-* Disfunctional cgi_interface.py was removed (T248292, T248250, T193978)
-* Fix logout on MW < 1.24 (T214009)
-* Fixed TypeError in getFileVersionHistoryTable method (T248266)
-* Outdated secure connection overrides were removed (T247668)
+* Use path's stem of script filename within pwb.py wrapper (:phab:`T248372`)
+* Disfunctional cgi_interface.py was removed (:phab:`T248292`, :phab:`T248250`, :phab:`T193978`)
+* Fix logout on MW < 1.24 (:phab:`T214009`)
+* Fixed TypeError in getFileVersionHistoryTable method (:phab:`T248266`)
+* Outdated secure connection overrides were removed (:phab:`T247668`)
* Check for all modules which are needed by a script within pwb.py wrapper
* Check for all modules which are mandatory within pwb.py wrapper script
-* Enable -help option with similar search of pwb.py (T241217)
-* compat module has been removed (T183085)
+* Enable -help option with similar search of pwb.py (:phab:`T241217`)
+* compat module has been removed (:phab:`T183085`)
* Category.copyTo and Category.copyAndKeep methods have been removed
-* Site.page_restrictions() does no longer raise NoPage (T214286)
-* Use site.userinfo getter instead of site._userinfo within api (T243794)
-* Fix endprefix parameter in Category.articles() (T247201)
-* Fix search for changed claims when saving entity (T246359)
-* backports.py has been removed (T244664)
-* Site.has_api method has been removed (T106121)
+* Site.page_restrictions() does no longer raise NoPage (:phab:`T214286`)
+* Use site.userinfo getter instead of site._userinfo within api (:phab:`T243794`)
+* Fix endprefix parameter in Category.articles() (:phab:`T247201`)
+* Fix search for changed claims when saving entity (:phab:`T246359`)
+* backports.py has been removed (:phab:`T244664`)
+* Site.has_api method has been removed (:phab:`T106121`)
* Bugfixes and improvements
* Localisation updates

3.0.20200306
------------

-* Fix mul Wikisource aliases (T242537, T241413)
-* Let Site('test', 'test) be equal to Site('test', 'wikipedia') (T228839)
-* Support of MediaWiki releases below 1.19 will be dropped (T245350)
+* Fix mul Wikisource aliases (:phab:`T242537`, :phab:`T241413`)
+* Let Site('test', 'test) be equal to Site('test', 'wikipedia') (:phab:`T228839`)
+* Support of MediaWiki releases below 1.19 will be dropped (:phab:`T245350`)
* Provide mediawiki_messages for foreign language codes
-* Use mw API IP/anon user detection (T245318)
-* Correctly choose primary coordinates in BasePage.coordinates() (T244963)
-* Rewrite APISite.page_can_be_edited (T244604)
-* compat module is deprecated for 5 years and will be removed in next release (T183085)
-* ipaddress module is required for Python 2 (T243171)
-* tools.ip will be dropped in favour of tools.is_IP (T243171)
+* Use mw API IP/anon user detection (:phab:`T245318`)
+* Correctly choose primary coordinates in BasePage.coordinates() (:phab:`T244963`)
+* Rewrite APISite.page_can_be_edited (:phab:`T244604`)
+* compat module is deprecated for 5 years and will be removed in next release (:phab:`T183085`)
+* ipaddress module is required for Python 2 (:phab:`T243171`)
+* tools.ip will be dropped in favour of tools.is_IP (:phab:`T243171`)
* tools.ip_regexp is deprecatd for 5 years and will be removed in next release
-* backports.py will be removed in next release (T244664)
-* stdnum package is required for ISBN scripts and cosmetic_changes (T132919, T144288, T241141)
-* preload urllib.quote() with Python 2 (T243710, T222623)
-* Drop isbn_hyphenate package due to outdated data (T243157)
-* Fix UnboundLocalError in ProofreadPage._ocr_callback (T243644)
+* backports.py will be removed in next release (:phab:`T244664`)
+* stdnum package is required for ISBN scripts and cosmetic_changes (:phab:`T132919`, :phab:`T144288`, :phab:`T241141`)
+* preload urllib.quote() with Python 2 (:phab:`T243710`, :phab:`T222623`)
+* Drop isbn_hyphenate package due to outdated data (:phab:`T243157`)
+* Fix UnboundLocalError in ProofreadPage._ocr_callback (:phab:`T243644`)
* Deprecate/remove sysop parameter in several methods and functions
-* Refactor Wikibase entity namespace handling (T160395)
+* Refactor Wikibase entity namespace handling (:phab:`T160395`)
* Site.has_api method will be removed in next release
* Category.copyTo and Category.copyAndKeep will be removed in next release
-* weblib module has been removed (T85001)
-* botirc module has been removed (T212632)
+* weblib module has been removed (:phab:`T85001`)
+* botirc module has been removed (:phab:`T212632`)
* Bugfixes and improvements
* Localisation updates

3.0.20200111
------------

-* Fix broken get_version() in setup.py (T198374)
+* Fix broken get_version() in setup.py (:phab:`T198374`)
* Rewrite site.log_page/site.unlock_page implementation
-* Require requests 2.20.1 (T241934)
+* Require requests 2.20.1 (:phab:`T241934`)
* Make bot.suggest_help a function
-* Fix gui settings for Python 3.7.4+ (T241216)
-* Better api error message handling (T235500)
-* Ensure that required props exists as Page attribute (T237497)
-* Refactor data loading for WikibaseEntities (T233406)
-* replaceCategoryInPlace: Allow LRM and RLM at the end of the old_cat title (T240084)
-* Support for Python 3.4 will be dropped (T239542)
-* Derive LoginStatus from IntEnum (T213287, T239533)
-* enum34 package is mandatory for Python 2.7 (T213287)
-* call LoginManager with keyword arguments (T237501)
-* Enable Pywikibot for Python 3.8 (T238637)
-* Derive BaseLink from tools.UnicodeMixin (T223894)
-* Make _flush aware of _putthread ongoing tasks (T147178)
-* Add family file for foundation wiki (T237888)
-* Fix generate_family_file.py for private wikis (T235768)
+* Fix gui settings for Python 3.7.4+ (:phab:`T241216`)
+* Better api error message handling (:phab:`T235500`)
+* Ensure that required props exists as Page attribute (:phab:`T237497`)
+* Refactor data loading for WikibaseEntities (:phab:`T233406`)
+* replaceCategoryInPlace: Allow LRM and RLM at the end of the old_cat title (:phab:`T240084`)
+* Support for Python 3.4 will be dropped (:phab:`T239542`)
+* Derive LoginStatus from IntEnum (:phab:`T213287`, :phab:`T239533`)
+* enum34 package is mandatory for Python 2.7 (:phab:`T213287`)
+* call LoginManager with keyword arguments (:phab:`T237501`)
+* Enable Pywikibot for Python 3.8 (:phab:`T238637`)
+* Derive BaseLink from tools.UnicodeMixin (:phab:`T223894`)
+* Make _flush aware of _putthread ongoing tasks (:phab:`T147178`)
+* Add family file for foundation wiki (:phab:`T237888`)
+* Fix generate_family_file.py for private wikis (:phab:`T235768`)
* Add rank parameter to Claim initializer
-* Add current directory for similar script search (T217195)
+* Add current directory for similar script search (:phab:`T217195`)
* Release BaseSite.lock_page mutex during sleep
-* Implement deletedrevisions api call (T75370)
-* assert_valid_iter_params may raise AssertionError instead of pywikibot.Error (T233582)
-* Upcast getRedirectTarget result and return the appropriate page subclass (T233392)
-* Add ListGenerator for API:filearchive to site module (T230196)
-* Deprecate the ability to login with a secondary sysop account (T71283)
-* Enable global args with pwb.py wrapper script (T216825)
-* Add a new ConfigParserBot class to set options from the scripts.ini file (T223778)
-* Check a user's rights rather than group memberships; 'sysopnames' will be deprecated (T229293, T189126, T122705, T119335, T75545)
-* proofreadpage.py: fix footer detection (T230301)
-* Add allowusertalk to the User.block() options (T229288)
-* botirc module will be removed in next release (T212632)
-* weblib module will be removed in next release (T85001)
+* Implement deletedrevisions api call (:phab:`T75370`)
+* assert_valid_iter_params may raise AssertionError instead of pywikibot.Error (:phab:`T233582`)
+* Upcast getRedirectTarget result and return the appropriate page subclass (:phab:`T233392`)
+* Add ListGenerator for API:filearchive to site module (:phab:`T230196`)
+* Deprecate the ability to login with a secondary sysop account (:phab:`T71283`)
+* Enable global args with pwb.py wrapper script (:phab:`T216825`)
+* Add a new ConfigParserBot class to set options from the scripts.ini file (:phab:`T223778`)
+* Check a user's rights rather than group memberships; 'sysopnames' will be deprecated (:phab:`T229293`, :phab:`T189126`, :phab:`T122705`, :phab:`T119335`, :phab:`T75545`)
+* proofreadpage.py: fix footer detection (:phab:`T230301`)
+* Add allowusertalk to the User.block() options (:phab:`T229288`)
+* botirc module will be removed in next release (:phab:`T212632`)
+* weblib module will be removed in next release (:phab:`T85001`)
* Bugfixes and improvements
* Localisation updates

3.0.20190722
------------

-* Increase the throttling delay if maxlag >> retry-after (T210606)
-* deprecate test_family: Site('test', 'test'), use wikipedia_family: Site('test', 'wikipedia') instead (T228375, T228300)
+* Increase the throttling delay if maxlag >> retry-after (:phab:`T210606`)
+* deprecate test_family: Site('test', 'test'), use wikipedia_family: Site('test', 'wikipedia') instead (:phab:`T228375`, :phab:`T228300`)
* Add "user_agent_description" option in config.py
-* APISite.fromDBName works for all known dbnames (T225590, 225723, 226960)
+* APISite.fromDBName works for all known dbnames (:phab:`T225590`, 225723, 226960)
* remove the unimplemented "proxy" variable in config.py
-* Make Family.langs property more robust (T226934)
+* Make Family.langs property more robust (:phab:`T226934`)
* Remove strategy family
-* Handle closed_wikis as read-only (T74674)
+* Handle closed_wikis as read-only (:phab:`T74674`)
* TokenWallet: login automatically
-* Add closed_wikis to Family.langs property (T225413)
-* Redirect 'mo' site code to 'ro' and remove interwiki_replacement_overrides (T225417, T89451)
-* Add support for badges on Wikibase item sitelinks through a SiteLink object instead plain str (T128202)
+* Add closed_wikis to Family.langs property (:phab:`T225413`)
+* Redirect 'mo' site code to 'ro' and remove interwiki_replacement_overrides (:phab:`T225417`, :phab:`T89451`)
+* Add support for badges on Wikibase item sitelinks through a SiteLink object instead plain str (:phab:`T128202`)
* Remove login.showCaptchaWindow() method
* New parameter supplied in suggest_help function for missing dependencies
* Remove NonMWAPISite class
-* Introduce Claim.copy and prevent adding already saved claims (T220131)
-* Fix create_short_link method after MediaWiki changes (T223865)
+* Introduce Claim.copy and prevent adding already saved claims (:phab:`T220131`)
+* Fix create_short_link method after MediaWiki changes (:phab:`T223865`)
* Validate proofreadpage.IndexPage contents before saving it
-* Refactor Link and introduce BaseLink (T66457)
+* Refactor Link and introduce BaseLink (:phab:`T66457`)
* Count skipped pages in BaseBot class
-* 'actionthrottledtext' is a retryable wikibase error (T192912)
-* Clear tokens on logout(T222508)
-* Deprecation warning: support for Python 2 will be dropped (T213287)
+* 'actionthrottledtext' is a retryable wikibase error (:phab:`T192912`)
+* Clear tokens on logout(:phab:`T222508`)
+* Deprecation warning: support for Python 2 will be dropped (:phab:`T213287`)
* botirc.IRCBot has been dropped
-* Avoid using outdated browseragents (T222959)
-* textlib: avoid infinite execution of regex (T222671)
-* Add CSRF token in sitelogout() api call (T222508)
+* Avoid using outdated browseragents (:phab:`T222959`)
+* textlib: avoid infinite execution of regex (:phab:`T222671`)
+* Add CSRF token in sitelogout() api call (:phab:`T222508`)
* Refactor WikibasePage.get and overriding methods and improve documentation
* Improve title patterns of WikibasePage extensions
-* Add support for property creation (T160402)
+* Add support for property creation (:phab:`T160402`)
* Bugfixes and improvements
* Localisation updates

3.0.20190430
------------

-* Unicode literals are required for all scripts; the usage of ASCII bytes may fail (T219095)
-* Don't fail if the number of forms of a plural string is less than required (T99057, T219097)
-* Implement create_short_link Page method to use Extension:UrlShortener (T220876)
-* Remove wikia family file (T220921)
+* Unicode literals are required for all scripts; the usage of ASCII bytes may fail (:phab:`T219095`)
+* Don't fail if the number of forms of a plural string is less than required (:phab:`T99057`, :phab:`T219097`)
+* Implement create_short_link Page method to use Extension:UrlShortener (:phab:`T220876`)
+* Remove wikia family file (:phab:`T220921`)
* Remove deprecated ez_setup.py
-* Changed requirements for sseclient (T219024)
-* Set optional parameter namespace to None in site.logpages (T217664)
-* Add ability to display similar scripts when misspelled (T217195)
-* Check if QueryGenerator supports namespaces (T198452)
+* Changed requirements for sseclient (:phab:`T219024`)
+* Set optional parameter namespace to None in site.logpages (:phab:`T217664`)
+* Add ability to display similar scripts when misspelled (:phab:`T217195`)
+* Check if QueryGenerator supports namespaces (:phab:`T198452`)
* Bugfixes and improvements
* Localisation updates

3.0.20190301
------------
-* Fix version comparison (T164163)
+* Fix version comparison (:phab:`T164163`)
* Remove pre MediaWiki 1.14 code
-* Dropped support for Python 2.7.2 and 2.7.3 (T191192)
-* Fix header regex beginning with a comment (T209712)
-* Implement Claim.__eq__ (T76615)
+* Dropped support for Python 2.7.2 and 2.7.3 (:phab:`T191192`)
+* Fix header regex beginning with a comment (:phab:`T209712`)
+* Implement Claim.__eq__ (:phab:`T76615`)
* cleanup config2.py
* Add missing Wikibase API write actions
* Bugfixes and improvements
@@ -877,7 +876,7 @@
------------

* Support python version 3.7
-* pagegenerators.py: add -querypage parameter to yield pages provided by any special page (T214234)
+* pagegenerators.py: add -querypage parameter to yield pages provided by any special page (:phab:`T214234`)
* Fix comparison of str, bytes and int literal
* site.py: add generic self.querypage() to query SpecialPages
* echo.Notification has a new event_id property as integer
@@ -887,11 +886,11 @@
3.0.20190106
------------

-* Ensure "modules" parameter of ParamInfo._fetch is a set (T122763)
-* Support adding new claims with qualifiers and/or references (T112577, T170432)
+* Ensure "modules" parameter of ParamInfo._fetch is a set (:phab:`T122763`)
+* Support adding new claims with qualifiers and/or references (:phab:`T112577`, :phab:`T170432`)
* Support LZMA and XZ compression formats
-* Update correct-ar Typo corrections in fixes.py (T211492)
-* Enable MediaWiki timestamp with EventStreams (T212133)
+* Update correct-ar Typo corrections in fixes.py (:phab:`T211492`)
+* Enable MediaWiki timestamp with EventStreams (:phab:`T212133`)
* Convert Timestamp.fromtimestampformat() if year, month and day are given only
* tools.concat_options is deprecated
* Additional ListOption subclasses ShowingListOption, MultipleChoiceList, ShowingMultipleChoiceList
@@ -901,43 +900,43 @@
3.0.20181203
------------

-* Remove compat module references from autogenerated docs (T183085)
-* site.preloadpages: split pagelist in most max_ids elements (T209111)
+* Remove compat module references from autogenerated docs (:phab:`T183085`)
+* site.preloadpages: split pagelist in most max_ids elements (:phab:`T209111`)
* Disable empty sections in cosmetic_changes for user namespace
-* Prevent touch from re-creating pages (T193833)
-* New Page.title() parameter without_brackets; also used by titletranslate (T200399)
-* Security: require requests version 2.20.0 or later (T208296)
-* Check appropriate key in Site.messages (T163661)
-* Make sure the cookie file is created with the right permissions (T206387)
+* Prevent touch from re-creating pages (:phab:`T193833`)
+* New Page.title() parameter without_brackets; also used by titletranslate (:phab:`T200399`)
+* Security: require requests version 2.20.0 or later (:phab:`T208296`)
+* Check appropriate key in Site.messages (:phab:`T163661`)
+* Make sure the cookie file is created with the right permissions (:phab:`T206387`)
* pydot >= 1.2 is required for interwiki_graph
-* Move methods for simple claim adding/removing to WikibasePage (T113131)
-* Enable start timestamp for EventStreams (T205121)
-* Re-enable notifications (T205184)
-* Use FutureWarning for warnings intended for end users (T191192)
-* Provide new -wanted... page generators (T56557, T150222)
-* api.QueryGenerator: Handle slots during initialization (T200955, T205210)
+* Move methods for simple claim adding/removing to WikibasePage (:phab:`T113131`)
+* Enable start timestamp for EventStreams (:phab:`T205121`)
+* Re-enable notifications (:phab:`T205184`)
+* Use FutureWarning for warnings intended for end users (:phab:`T191192`)
+* Provide new -wanted... page generators (:phab:`T56557`, :phab:`T150222`)
+* api.QueryGenerator: Handle slots during initialization (:phab:`T200955`, :phab:`T205210`)
* Bugfixes and improvements
* Localisation updates

3.0.20180922
------------

-* Enable multiple streams for EventStreams (T205114)
-* Fix Wikibase aliases handling (T194512)
-* Remove cryptography support from python<=2.7.6 requirements (T203435)
-* textlib._tag_pattern: Do not mistake self-closing tags with start tag (T203568)
-* page.Link.langlinkUnsafe: Always set _namespace to a Namespace object (T203491)
+* Enable multiple streams for EventStreams (:phab:`T205114`)
+* Fix Wikibase aliases handling (:phab:`T194512`)
+* Remove cryptography support from python<=2.7.6 requirements (:phab:`T203435`)
+* textlib._tag_pattern: Do not mistake self-closing tags with start tag (:phab:`T203568`)
+* page.Link.langlinkUnsafe: Always set _namespace to a Namespace object (:phab:`T203491`)
* Enable Namespace.content for mw < 1.16
-* Allow terminating the bot generator by BaseBot.stop() method (T198801)
+* Allow terminating the bot generator by BaseBot.stop() method (:phab:`T198801`)
* Allow bot parameter in set_redirect_target
-* Do not show empty error messages (T203462)
-* Show the exception message in async mode (T203448)
-* Fix the extended user-config extraction regex (T145371)
-* Solve UnicodeDecodeError in site.getredirtarget (T126192)
+* Do not show empty error messages (:phab:`T203462`)
+* Show the exception message in async mode (:phab:`T203448`)
+* Fix the extended user-config extraction regex (:phab:`T145371`)
+* Solve UnicodeDecodeError in site.getredirtarget (:phab:`T126192`)
* Introduce a new APISite property: mw_version
* Improve hash method for BasePage and Link
-* Avoid applying two uniquifying filters (T199615)
-* Fix skipping of language links in CosmeticChangesToolkit.removeEmptySections (T202629)
+* Avoid applying two uniquifying filters (:phab:`T199615`)
+* Fix skipping of language links in CosmeticChangesToolkit.removeEmptySections (:phab:`T202629`)
* New mediawiki projects were provided
* Bugfixes and improvements
* Localisation updates
@@ -945,23 +944,23 @@
3.0.20180823
------------

-* Don't reset Bot._site to None if we have already a site object (T125046)
-* pywikibot.site.Siteinfo: Fix the bug in cache_time when loading a CachedRequest (T202227)
-* pagegenerators._handle_recentchanges: Do not request for reversed results (T199199)
-* Use a key for filter_unique where appropriate (T199615)
-* pywikibot.tools: Add exceptions for first_upper (T200357)
-* Fix usages of site.namespaces.NAMESPACE_NAME (T201969)
+* Don't reset Bot._site to None if we have already a site object (:phab:`T125046`)
+* pywikibot.site.Siteinfo: Fix the bug in cache_time when loading a CachedRequest (:phab:`T202227`)
+* pagegenerators._handle_recentchanges: Do not request for reversed results (:phab:`T199199`)
+* Use a key for filter_unique where appropriate (:phab:`T199615`)
+* pywikibot.tools: Add exceptions for first_upper (:phab:`T200357`)
+* Fix usages of site.namespaces.NAMESPACE_NAME (:phab:`T201969`)
* pywikibot/textlib.py: Fix header regex to allow comments
-* Use 'rvslots' when fetching revisions on MW 1.32+ (T200955)
-* Drop the '2' from PYWIKIBOT2_DIR, PYWIKIBOT2_DIR_PWB, and PYWIKIBOT2_NO_USER_CONFIG environment variables. The old names are now deprecated. The other PYWIKIBOT2_* variables which were used only for testing purposes have been renamed without deprecation. (T184674)
-* Introduce a timestamp in deprecated decorator (T106121)
-* textlib.extract_sections: Remove footer from the last section (T199751)
-* Don't let WikidataBot crash on save related errors (T199642)
-* Allow different projects to have different L10N entries (T198889)
-* remove color highlights before fill function (T196874)
-* Fix Portuguese file namespace translation in cc (T57242)
-* textlib._create_default_regexes: Avoid using inline flags (T195538)
-* Not everything after a language link is footer (T199539)
+* Use 'rvslots' when fetching revisions on MW 1.32+ (:phab:`T200955`)
+* Drop the '2' from PYWIKIBOT2_DIR, PYWIKIBOT2_DIR_PWB, and PYWIKIBOT2_NO_USER_CONFIG environment variables. The old names are now deprecated. The other PYWIKIBOT2_* variables which were used only for testing purposes have been renamed without deprecation. (:phab:`T184674`)
+* Introduce a timestamp in deprecated decorator (:phab:`T106121`)
+* textlib.extract_sections: Remove footer from the last section (:phab:`T199751`)
+* Don't let WikidataBot crash on save related errors (:phab:`T199642`)
+* Allow different projects to have different L10N entries (:phab:`T198889`)
+* remove color highlights before fill function (:phab:`T196874`)
+* Fix Portuguese file namespace translation in cc (:phab:`T57242`)
+* textlib._create_default_regexes: Avoid using inline flags (:phab:`T195538`)
+* Not everything after a language link is footer (:phab:`T199539`)
* code cleanups
* New mediawiki projects were provided
* Bugfixes and improvements
@@ -970,15 +969,15 @@
3.0.20180710
------------

-* Enable any LogEntry subclass for each logevent type (T199013)
-* Deprecated pagegenerators options -<logtype>log aren't supported any longer (T199013)
-* Open RotatingFileHandler with utf-8 encoding (T188231)
-* Fix occasional failure of TestLogentries due to hidden namespace (T197506)
-* Remove multiple empty sections at once in cosmetic_changes (T196324)
-* Fix stub template position by putting it above interwiki comment (T57034)
-* Fix handling of API continuation in PropertyGenerator (T196876)
-* Use PyMySql as pure-Python MySQL client library instead of oursql, deprecate MySQLdb (T89976, T142021)
-* Ensure that BaseBot.treat is always processing a Page object (T196562, T196813)
+* Enable any LogEntry subclass for each logevent type (:phab:`T199013`)
+* Deprecated pagegenerators options -<logtype>log aren't supported any longer (:phab:`T199013`)
+* Open RotatingFileHandler with utf-8 encoding (:phab:`T188231`)
+* Fix occasional failure of TestLogentries due to hidden namespace (:phab:`T197506`)
+* Remove multiple empty sections at once in cosmetic_changes (:phab:`T196324`)
+* Fix stub template position by putting it above interwiki comment (:phab:`T57034`)
+* Fix handling of API continuation in PropertyGenerator (:phab:`T196876`)
+* Use PyMySql as pure-Python MySQL client library instead of oursql, deprecate MySQLdb (:phab:`T89976`, :phab:`T142021`)
+* Ensure that BaseBot.treat is always processing a Page object (:phab:`T196562`, :phab:`T196813`)
* Update global bot settings
* New mediawiki projects were provided
* Bugfixes and improvements
@@ -994,26 +993,26 @@
* Family class is made a singleton class
* New rule 'startcolon' was introduced in textlib
* BaseBot has new methods setup and teardown
-* UploadBot got a filename prefix parameter (T170123)
-* cosmetic_changes is able to remove empty sections (T140570)
+* UploadBot got a filename prefix parameter (:phab:`T170123`)
+* cosmetic_changes is able to remove empty sections (:phab:`T140570`)
* Pywikibot is following PEP 396 versioning
* pagegenerators AllpagesPageGenerator, CombinedPageGenerator, UnconnectedPageGenerator are deprecated
* Some DayPageGenerator parameters has been renamed
-* unicodedata2, httpbin and Flask dependency was removed (T102461, T108068, T178864, T193383)
+* unicodedata2, httpbin and Flask dependency was removed (:phab:`T102461`, :phab:`T108068`, :phab:`T178864`, :phab:`T193383`)
* New projects were provided
* Bugfixes and improvements
* Documentation updates
-* Localisation updates (T194893)
+* Localisation updates (:phab:`T194893`)
* Translation updates

3.0.20180505
------------

* Enable makepath and datafilepath not to create the directory
-* Use API's retry-after value (T144023)
-* Provide startprefix parameter for Category.articles() (T74101, T143120)
-* Page.put_async() is marked as deprecated (T193494)
-* Deprecate requests-requirements.txt (T193476)
+* Use API's retry-after value (:phab:`T144023`)
+* Provide startprefix parameter for Category.articles() (:phab:`T74101`, :phab:`T143120`)
+* Page.put_async() is marked as deprecated (:phab:`T193494`)
+* Deprecate requests-requirements.txt (:phab:`T193476`)
* Bugfixes and improvements
* New mediawiki projects were provided
* Localisation updates
@@ -1021,9 +1020,9 @@
3.0.20180403
------------

-* Deprecation warning: support for Python 2.7.2 and 2.7.3 will be dropped (T191192)
-* Dropped support for Python 2.6 (T154771)
-* Dropped support for Python 3.3 (T184508)
+* Deprecation warning: support for Python 2.7.2 and 2.7.3 will be dropped (:phab:`T191192`)
+* Dropped support for Python 2.6 (:phab:`T154771`)
+* Dropped support for Python 3.3 (:phab:`T184508`)
* Bugfixes and improvements
* Localisation updates

@@ -1087,52 +1086,52 @@

Bugfixes
~~~~~~~~
-* Manage temporary readonly error (T154011)
-* Unbreak wbGeoShape and WbTabularData (T166362)
-* Clean up issue with _WbDataPage (T166362)
-* Re-enable xml for WikiStats with py2 (T165830)
-* Solve httplib.IncompleteRead exception in eventstreams (T168535)
-* Only force input_choise if self.always is given (T161483)
-* Add colon when replacing category and file weblink (T127745)
-* API Request: set uiprop only when ensuring 'userinfo' in meta (T169202)
-* Fix TestLazyLoginNotExistUsername test for Stewardwiki (T169458)
+* Manage temporary readonly error (:phab:`T154011`)
+* Unbreak wbGeoShape and WbTabularData (:phab:`T166362`)
+* Clean up issue with _WbDataPage (:phab:`T166362`)
+* Re-enable xml for WikiStats with py2 (:phab:`T165830`)
+* Solve httplib.IncompleteRead exception in eventstreams (:phab:`T168535`)
+* Only force input_choise if self.always is given (:phab:`T161483`)
+* Add colon when replacing category and file weblink (:phab:`T127745`)
+* API Request: set uiprop only when ensuring 'userinfo' in meta (:phab:`T169202`)
+* Fix TestLazyLoginNotExistUsername test for Stewardwiki (:phab:`T169458`)

Improvements
~~~~~~~~~~~~
-* Introduce the new WbUnknown data type for Wikibase (T165961)
+* Introduce the new WbUnknown data type for Wikibase (:phab:`T165961`)
* djvu.py: add replace_page() and delete_page()
* Build GeoShape and TabularData from shared base class
-* Remove non-breaking spaces when tidying up a link (T130818)
+* Remove non-breaking spaces when tidying up a link (:phab:`T130818`)
* Replace private mylang variables with mycode in generate_user_files.py
* FilePage: remove deprecated use of fileUrl
-* Make socket_timeout recalculation reusable (T166539)
-* FilePage.download(): add revision parameter to download arbitrary revision (T166939)
-* Make pywikibot.Error more precise (T166982)
-* Implement pywikibot support for adding thanks to normal revisions (T135409)
-* Implement server side event client EventStreams (T158943)
+* Make socket_timeout recalculation reusable (:phab:`T166539`)
+* FilePage.download(): add revision parameter to download arbitrary revision (:phab:`T166939`)
+* Make pywikibot.Error more precise (:phab:`T166982`)
+* Implement pywikibot support for adding thanks to normal revisions (:phab:`T135409`)
+* Implement server side event client EventStreams (:phab:`T158943`)
* new pagegenerators filter option -titleregexnot
-* Add exception for -namepace option (T167580)
+* Add exception for -namepace option (:phab:`T167580`)
* InteractiveReplace: Allow no replacements by default
* Encode default globe in family file
-* Add on to pywikibot support for thanking normal revisions (T135409)
-* Add log entry code for thanks log (T135413)
+* Add on to pywikibot support for thanking normal revisions (:phab:`T135409`)
+* Add log entry code for thanks log (:phab:`T135413`)
* Create superclass for log entries with user targets
* Use relative reference to class attribute
-* Allow pywikibot to authenticate against a private wiki (T153903)
-* Make WbRepresentations hashable (T167827)
+* Allow pywikibot to authenticate against a private wiki (:phab:`T153903`)
+* Make WbRepresentations hashable (:phab:`T167827`)

Updates
~~~~~~~
* Update linktails
* Update languages_by_size
* Update cross_allowed (global bot wikis group)
-* Add atjwiki to wikipedia family file (T168049)
+* Add atjwiki to wikipedia family file (:phab:`T168049`)
* remove closed sites from languages_by_size list
* Update category_redirect_templates for wikipedia and commons Family
* Update logevent type parameter list
-* Disable cleanUpSectionHeaders on jbo.wiktionary (T168399)
-* Add kbpwiki to wikipedia family file (T169216)
-* Remove anarchopedia family out of the framework (T167534)
+* Disable cleanUpSectionHeaders on jbo.wiktionary (:phab:`T168399`)
+* Add kbpwiki to wikipedia family file (:phab:`T169216`)
+* Remove anarchopedia family out of the framework (:phab:`T167534`)

3.0.20170521
------------
@@ -1143,49 +1142,49 @@

Bugfixes
~~~~~~~~
-* Increase the default socket_timeout to 75 seconds (T163635)
-* use repr() of exceptions to prevent UnicodeDecodeErrors (T120222)
-* Handle offset mismatches during chunked upload (T156402)
-* Correct _wbtypes equality comparison (T160282)
-* Re-enable getFileVersionHistoryTable() method (T162528)
-* Replaced the word 'async' with 'asynchronous' due to py3.7 (T106230)
-* Raise ImportError if no editor is available (T163632)
-* templatesWithParams: cache and standardise params (T113892)
-* getInternetArchiveURL: Retry http.fetch if there is a ConnectionError (T164208)
-* Remove wikidataquery from pywikibot (T162585)
+* Increase the default socket_timeout to 75 seconds (:phab:`T163635`)
+* use repr() of exceptions to prevent UnicodeDecodeErrors (:phab:`T120222`)
+* Handle offset mismatches during chunked upload (:phab:`T156402`)
+* Correct _wbtypes equality comparison (:phab:`T160282`)
+* Re-enable getFileVersionHistoryTable() method (:phab:`T162528`)
+* Replaced the word 'async' with 'asynchronous' due to py3.7 (:phab:`T106230`)
+* Raise ImportError if no editor is available (:phab:`T163632`)
+* templatesWithParams: cache and standardise params (:phab:`T113892`)
+* getInternetArchiveURL: Retry http.fetch if there is a ConnectionError (:phab:`T164208`)
+* Remove wikidataquery from pywikibot (:phab:`T162585`)

Improvements
~~~~~~~~~~~~
-* Introduce user_add_claim and allow asynchronous ItemPage.addClaim (T87493)
-* Enable private edit summary in specialbots (T162527)
+* Introduce user_add_claim and allow asynchronous ItemPage.addClaim (:phab:`T87493`)
+* Enable private edit summary in specialbots (:phab:`T162527`)
* Make a decorator for asynchronous methods
* Provide options by a separate handler class
-* Show a warning when a LogEntry type is not known (T135505)
+* Show a warning when a LogEntry type is not known (:phab:`T135505`)
* Add Wikibase Client extension requirement to APISite.unconnectedpages()
* Update content after editing entity
-* Make WbTime from Timestamp and vice versa (T131624)
-* Add support for geo-shape Wikibase data type (T161726)
-* Add async parameter to ItemPage.editEntity (T86074)
-* Make sparql use Site to access sparql endpoint and entity_url (T159956)
+* Make WbTime from Timestamp and vice versa (:phab:`T131624`)
+* Add support for geo-shape Wikibase data type (:phab:`T161726`)
+* Add async parameter to ItemPage.editEntity (:phab:`T86074`)
+* Make sparql use Site to access sparql endpoint and entity_url (:phab:`T159956`)
* timestripper: search wikilinks to reduce false matches
* Set Coordinate globe via item
* use extract_templates_and_params_regex_simple for template validation
* Add _items for WbMonolingualText
-* Allow date-versioned pypi releases from setup.py (T152907)
+* Allow date-versioned pypi releases from setup.py (:phab:`T152907`)
* Provide site to WbTime via WbTime.fromWikibase
-* Provide preloading via GeneratorFactory.getCombinedGenerator() (T135331)
-* Accept QuitKeyboardInterrupt in specialbots.Uploadbot (T163970)
-* Remove unnecessary description change message when uploading a file (T163108)
+* Provide preloading via GeneratorFactory.getCombinedGenerator() (:phab:`T135331`)
+* Accept QuitKeyboardInterrupt in specialbots.Uploadbot (:phab:`T163970`)
+* Remove unnecessary description change message when uploading a file (:phab:`T163108`)
* Add 'OptionHandler' to bot.__all__ tuple
* Use FilePage.upload inside UploadRobot
-* Add support for tabular-data Wikibase data type (T163981)
-* Get thumburl information in FilePage() (T137011)
+* Add support for tabular-data Wikibase data type (:phab:`T163981`)
+* Get thumburl information in FilePage() (:phab:`T137011`)

Updates
~~~~~~~
* Update languages_by_size in family files
* wikisource_family.py: Add "pa" to languages_by_size
-* Config2: limit the number of retries to 15 (T165898)
+* Config2: limit the number of retries to 15 (:phab:`T165898`)

3.0.20170403
------------
@@ -1196,25 +1195,25 @@

Bugfixes
~~~~~~~~
-* Use default summary when summary value does not contain a string (T160823)
-* Enable specialbots.py for PY3 (T161457)
-* Change tw(n)translate from Site.code to Site.lang dependency (T140624)
-* Do not use the "imp" module in Python 3 (T158640)
-* Make sure the order of parameters does not change (T161291)
-* Use pywikibot.tools.Counter instead of collections.Counter (T160620)
+* Use default summary when summary value does not contain a string (:phab:`T160823`)
+* Enable specialbots.py for PY3 (:phab:`T161457`)
+* Change tw(n)translate from Site.code to Site.lang dependency (:phab:`T140624`)
+* Do not use the "imp" module in Python 3 (:phab:`T158640`)
+* Make sure the order of parameters does not change (:phab:`T161291`)
+* Use pywikibot.tools.Counter instead of collections.Counter (:phab:`T160620`)
* Introduce a new site method page_from_repository()
-* Add pagelist tag for replaceExcept (T151940)
-* logging in python3 when deprecated_args decorator is used (T159077)
-* Avoid ResourceWarning using subprocess in python 3.6 (T159646)
-* load_pages_from_pageids: do not fail on empty string (T153592)
-* Add missing not-equal comparison for wbtypes (T158848)
-* textlib.getCategoryLinks catch invalid category title exceptions (T154309)
-* Fix html2unicode (T130925)
-* Ignore first letter case on 'first-letter' sites, obey it otherwise (T130917)
-* textlib.py: Limit catastrophic backtracking in FILE_LINK_REGEX (T148959)
-* FilePage.get_file_history(): Check for len(self._file_revisions) (T155740)
-* Fix for positional_arg behavior of GeneratorFactory (T155227)
-* Fix broken LDAP based login (T90149)
+* Add pagelist tag for replaceExcept (:phab:`T151940`)
+* logging in python3 when deprecated_args decorator is used (:phab:`T159077`)
+* Avoid ResourceWarning using subprocess in python 3.6 (:phab:`T159646`)
+* load_pages_from_pageids: do not fail on empty string (:phab:`T153592`)
+* Add missing not-equal comparison for wbtypes (:phab:`T158848`)
+* textlib.getCategoryLinks catch invalid category title exceptions (:phab:`T154309`)
+* Fix html2unicode (:phab:`T130925`)
+* Ignore first letter case on 'first-letter' sites, obey it otherwise (:phab:`T130917`)
+* textlib.py: Limit catastrophic backtracking in FILE_LINK_REGEX (:phab:`T148959`)
+* FilePage.get_file_history(): Check for len(self._file_revisions) (:phab:`T155740`)
+* Fix for positional_arg behavior of GeneratorFactory (:phab:`T155227`)
+* Fix broken LDAP based login (:phab:`T90149`)

Improvements
~~~~~~~~~~~~
@@ -1222,17 +1221,17 @@
* Renamed isImage and isCategory
* Add -property option to pagegenerators.py
* Add a new site method pages_with_property
-* Allow retrieval of unit as ItemPage for WbQuantity (T143594)
+* Allow retrieval of unit as ItemPage for WbQuantity (:phab:`T143594`)
* return result of userPut with put_current method
* Provide a new generator which yields a subclass of Page
* Implement FilePage.download()
* make general function to compute file sha
-* Support adding units to WbQuantity through ItemPage or entity url (T143594)
+* Support adding units to WbQuantity through ItemPage or entity url (:phab:`T143594`)
* Make PropertyPage.get() return a dictionary
* Add Wikibase Client extension requirement to APISite.unconnectedpages()
* Make Wikibase Property provide labels data
-* APISite.data_repository(): handle warning with re.match() (T156596)
-* GeneratorFactory: make getCategory respect self.site (T155687)
+* APISite.data_repository(): handle warning with re.match() (:phab:`T156596`)
+* GeneratorFactory: make getCategory respect self.site (:phab:`T155687`)
* Fix and improve default regexes

Updates
@@ -1248,7 +1247,7 @@
* self.doc_subpages for Meta-Wiki
* Updating Wikibooks projects which allows global bots
* Updated list of closed projects
-* Add 'Bilde' as a namespace alias for file namespace of nn Wikipedia (T154947)
+* Add 'Bilde' as a namespace alias for file namespace of nn Wikipedia (:phab:`T154947`)

2.0rc5
------
diff --git a/ROADMAP.rst b/ROADMAP.rst
index f9e86ae..d6f87bf 100644
--- a/ROADMAP.rst
+++ b/ROADMAP.rst
@@ -1,21 +1,21 @@
Current release changes
^^^^^^^^^^^^^^^^^^^^^^^

-* TextExtracts support was aded (T72682)
+* TextExtracts support was aded (:phab:`T72682`)
* Unused `get_redirect` parameter of Page.getOldVersion() has been dropped
* Provide BasePage.get_parsed_page() a public method
* Provide BuiltinNamespace.canonical_namespaces() with BuiltinNamespace IntEnum
* BuiltinNamespace got a canonical() method
-* Enable nested templates with MultiTemplateMatchBuilder (T110529)
+* Enable nested templates with MultiTemplateMatchBuilder (:phab:`T110529`)
* Introduce APISite.simple_request as a public method
* Provide an Uploader class to upload files
* Enable use of deletetalk parameter of the delete API
-* Fix contextlib redirection for terminal interfaces (T283808)
-* No longer use win32_unicode for Python 3.6+ (T281042, T283808, T303373)
+* Fix contextlib redirection for terminal interfaces (:phab:`T283808`)
+* No longer use win32_unicode for Python 3.6+ (:phab:`T281042`, :phab:`T283808`, :phab:`T303373`)
* L10N updates
* -cosmetic_changes (-cc) option allows to assign the value directly instead of toggle it
* distutils.util.strtobool() was implemented as tools.strtobool() due to :pep:`632`
-* The "in" operator always return whether the siteinfo contains the key even it is not cached (T302859)
+* The "in" operator always return whether the siteinfo contains the key even it is not cached (:phab:`T302859`)
* Siteinfo.clear() and Siteinfo.is_cached() methods were added

Deprecations
@@ -25,7 +25,7 @@
* 7.1.0: APISite._simple_request() will be removed in favour of APISite.simple_request()
* 7.0.0: The i18n identifier 'cosmetic_changes-append' will be removed in favour of 'pywikibot-cosmetic-changes'
* 7.0.0: User.isBlocked() method is renamed to is_blocked for consistency
-* 7.0.0: Require mysql >= 0.7.11 (T216741)
+* 7.0.0: Require mysql >= 0.7.11 (:phab:`T216741`)
* 7.0.0: Private BaseBot counters _treat_counter, _save_counter, _skip_counter will be removed in favour of collections.Counter counter attribute
* 7.0.0: A boolean watch parameter in Page.save() is deprecated and will be desupported
* 7.0.0: baserevid parameter of editSource(), editQualifier(), removeClaims(), removeSources(), remove_qualifiers() DataSite methods will be removed
diff --git a/docs/api_ref/pywikibot.config.rst b/docs/api_ref/pywikibot.config.rst
index 354229c..a4fe0fb 100644
--- a/docs/api_ref/pywikibot.config.rst
+++ b/docs/api_ref/pywikibot.config.rst
@@ -18,8 +18,6 @@
:end-before: # #############


-.. _user-interface-settings:
-
User Interface Settings
+++++++++++++++++++++++

@@ -41,9 +39,6 @@
:start-at: # ############# LOGFILE SETTINGS
:end-before: # #############

-
-.. _external-script-path-settings:
-
External Script Path Settings
+++++++++++++++++++++++++++++

diff --git a/docs/conf.py b/docs/conf.py
index 2a89d4f..6997f15 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -1,6 +1,6 @@
"""Configuration file for Sphinx."""
#
-# (C) Pywikibot team, 2014-2021
+# (C) Pywikibot team, 2014-2022
#
# Distributed under the terms of the MIT license.
#
@@ -50,12 +50,15 @@
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
-extensions = ['sphinx.ext.autodoc',
- 'sphinx.ext.todo',
- 'sphinx.ext.coverage',
- 'sphinx.ext.viewcode',
- 'sphinx.ext.autosummary',
- 'sphinx.ext.napoleon']
+extensions = [
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.autosectionlabel',
+ 'sphinx.ext.extlinks',
+ 'sphinx.ext.todo',
+ 'sphinx.ext.viewcode',
+ 'sphinx.ext.autosummary',
+ 'sphinx.ext.napoleon',
+]

# Allow lines like "Example:" to be followed by a code block
napoleon_use_admonition_for_examples = True
@@ -353,6 +356,10 @@
# Other settings
autodoc_typehints = 'description'

+extlinks = {
+ 'phab': ('https://phabricator.wikimedia.org/%s', '%s')
+}
+

TOKENS_WITH_PARAM = [
# sphinx
@@ -407,6 +414,15 @@
lines[:] = result[:] # assignment required in this way


+def pywikibot_fix_phab_tasks(app, what, name, obj, options, lines):
+ """Convert Phabricator tasks id to a link using sphinx.ext.extlinks."""
+ result = []
+ for line in lines:
+ line = re.sub(r'(T\d{5,6})', r':phab:`\1`', line)
+ result.append(line)
+ lines[:] = result[:]
+
+
def pywikibot_docstring_fixups(app, what, name, obj, options, lines):
"""Fixup docstrings."""
if what not in ('class', 'exception'):
@@ -510,6 +526,7 @@
def setup(app):
"""Implicit Sphinx extension hook."""
app.connect('autodoc-process-docstring', pywikibot_epytext_to_sphinx)
+ app.connect('autodoc-process-docstring', pywikibot_fix_phab_tasks)
app.connect('autodoc-process-docstring', pywikibot_docstring_fixups)
app.connect('autodoc-process-docstring', pywikibot_script_docstring_fixups)
app.connect('autodoc-skip-member', pywikibot_skip_members)
diff --git a/docs/faq.rst b/docs/faq.rst
index 0e6432e..a0f9555 100644
--- a/docs/faq.rst
+++ b/docs/faq.rst
@@ -23,7 +23,7 @@
**The bot cannot delete pages**
Your account needs delete rights on your wiki. If you have setup another
account in your user_config use ``-user``
- :ref:`global option <global options>` to change it.
+ :ref:`global options` to change it.
Maybe you have to login first.

**ERROR: Unable to execute script because no *generator* was defined.**
diff --git a/docs/global_options.rst b/docs/global_options.rst
index 9d3d921..57af62a 100644
--- a/docs/global_options.rst
+++ b/docs/global_options.rst
@@ -1,5 +1,3 @@
-.. _global options:
-
Global Options
--------------

diff --git a/docs/glossary.rst b/docs/glossary.rst
index 7361e7b..57dcc97 100644
--- a/docs/glossary.rst
+++ b/docs/glossary.rst
@@ -36,10 +36,9 @@
- the :mod:`pwb` wrapper script

python2
- A :term:`tag` for the last Pywikibot release :ref:`3.0.20200703<python2>`
- supporting Python 2 (Python 2.7.3 - 2.7.18). Ask for `Python 2 to
- 3 support <https://phabricator.wikimedia.org/T242120>`_ to
- convert your old scripts.
+ A :term:`tag` for the last Pywikibot release :ref:`3.0.20200703`
+ supporting Python 2 (Python 2.7.3 - 2.7.18). Ask for :phab:`Python 2 to
+ 3 support <T242120>` to convert your old scripts.

pywikibot
**Py**\ thon Media\ **Wiki Bot** Framework, a Python library and
diff --git a/docs/installation.rst b/docs/installation.rst
index 7cd30f2..1c7f6c3 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -38,6 +38,6 @@
.. seealso::
* :manpage:`i18n` Manual
* `MediaWiki Language Codes <https://www.mediawiki.org/wiki/Manual:Language#Language_code>`_
- * :ref:`User Interface Settings<user-interface-settings>`
+ * :ref:`User Interface Settings`
* :py:mod:`pywikibot.i18n`

diff --git a/docs/licenses.rst b/docs/licenses.rst
index e773820..1c56566 100644
--- a/docs/licenses.rst
+++ b/docs/licenses.rst
@@ -4,11 +4,10 @@
========

**The framework itself and this documentation** are available under the
-:ref:`MIT license <licenses-MIT>`; manual pages on mediawiki.org are
+:ref:`MIT license`; manual pages on mediawiki.org are
available under the `CC-BY-SA 3.0`_ license. The Pywikibot logo is
available under the `CC-BY-SA 4.0`_ license.

-.. _licenses-MIT:

MIT License
-----------
diff --git a/scripts/CHANGELOG.md b/scripts/CHANGELOG.md
index 43413ed..5c7082d 100644
--- a/scripts/CHANGELOG.md
+++ b/scripts/CHANGELOG.md
@@ -8,7 +8,7 @@
* -always option was enabled

### reflinks
-* Decode pdfinfo if it is bytes content (T303731)
+* Decode pdfinfo if it is bytes content (:phab:`:phab:`T303731``)


## 7.0.0
@@ -16,61 +16,61 @@

### general
* L10N updates
-* Provide ConfigParserBot for several scripts (T223778)
+* Provide ConfigParserBot for several scripts (:phab:`T223778`)

### add_text
-* Provide -create and -createonly options (T291354)
+* Provide -create and -createonly options (:phab:`T291354`)
* Deprecated function get_text() was removed in favour of Page.text and BaseBot.skip_page()
* Deprecated function put_text() was removed in favour of BaseBot.userPut() method
* Deprecated function add_text() were remove in favour of textlib.add_text()

### blockpageschecker
-* Use different edit comments when adding, changeing or removing templates (T291345)
-* Derive CheckerBot from ConfigParserBot (T57106)
-* Derive CheckerBot from CurrentPageBot (T196851, T171713)
+* Use different edit comments when adding, changeing or removing templates (:phab:`T291345`)
+* Derive CheckerBot from ConfigParserBot (:phab:`T57106`)
+* Derive CheckerBot from CurrentPageBot (:phab:`T196851`, :phab:`T171713`)

### category
* CleanBot was added which can be invoked by clean action option
* Recurse CategoryListifyRobot with depth
-* Show a warning if a pagegenerator option is not enabled (T298522)
+* Show a warning if a pagegenerator option is not enabled (:phab:`T298522`)
* Deprecated code parts were removed

### checkimages
-* Skip PageSaveRelatedError and ServerError when putting talk page (T302174)
+* Skip PageSaveRelatedError and ServerError when putting talk page (:phab:`T302174`)

### commonscat
-* Ignore InvalidTitleError in CommonscatBot.findCommonscatLink (T291783)
+* Ignore InvalidTitleError in CommonscatBot.findCommonscatLink (:phab:`T291783`)

### cosmetic_changes
-* Ignore InvalidTitleError in CosmeticChangesBot.treat_page (T293612)
+* Ignore InvalidTitleError in CosmeticChangesBot.treat_page (:phab:`T293612`)

### djvutext
-* pass site arg only once (T292367)
+* pass site arg only once (:phab:`T292367`)

### fixing_redirects
* Let only put_current show the message "No changes were needed"
-* Use concurrent.futures to retrieve redirect or moved targets (T298789)
-* Add an option to ignore solving moved targets (T298789)
+* Use concurrent.futures to retrieve redirect or moved targets (:phab:`T298789`)
+* Add an option to ignore solving moved targets (:phab:`T298789`)

### imagetransfer
-* Add support for chunked uploading (T300531)
+* Add support for chunked uploading (:phab:`T300531`)

### newitem
* Do not pass OtherPageSaveRelatedError silently

### pagefromfile
* Preload pages instead of reading them one by one before putting changes
-* Don't ask for confirmation by default (T291757)
+* Don't ask for confirmation by default (:phab:`T291757`)

### redirect
-* Use site.maxlimit to determine the highest limit to load (T299859)
+* Use site.maxlimit to determine the highest limit to load (:phab:`T299859`)

### replace
-* Enable default behaviour with -mysqlquery (T299306)
+* Enable default behaviour with -mysqlquery (:phab:`T299306`)
* Deprecated "acceptall" and "addedCat" parameters were replaced by "always" and "addcat"

### revertbot
-* Add support for translated dates/times (T102174)
+* Add support for translated dates/times (:phab:`T102174`)
* Deprecated "max" parameter was replaced by "total"

### solve_disambiguation
@@ -80,7 +80,7 @@
*Do not pass OtherPageSaveRelatedError silently

### unusedfiles
-* Use oldest_file_info.user as uploader (T301768)
+* Use oldest_file_info.user as uploader (:phab:`T301768`)


## 6.6.1
@@ -101,7 +101,7 @@
*05 August 2021*

### reflinks
-* Don't ignore identical references with newline in ref content (T286369)
+* Don't ignore identical references with newline in ref content (:phab:`T286369`)
* L10N updates


@@ -112,29 +112,29 @@
* show a warning if pywikibot.__version__ is behind scripts.__version__

### addtext
-* Deprecate get_text, put_text and add_text functions (T284388)
-* Use AutomaticTWSummaryBot and NoRedirectPageBot bot class instead of functions (T196851)
+* Deprecate get_text, put_text and add_text functions (:phab:`T284388`)
+* Use AutomaticTWSummaryBot and NoRedirectPageBot bot class instead of functions (:phab:`T196851`)

### blockpageschecker
* Script was unarchived

### commonscat
-* Enable multiple sites (T57083)
+* Enable multiple sites (:phab:`T57083`)
* Use new textlib.add_text function

### cosmetic_changes
-* set -ignore option to CANCEL.MATCH by default (T108446)
+* set -ignore option to CANCEL.MATCH by default (:phab:`T108446`)

### fixing_redirects
-* Add -overwrite option (T235219)
+* Add -overwrite option (:phab:`T235219`)

### imagetransfer
-* Skip pages which does not exist on source site (T284414)
+* Skip pages which does not exist on source site (:phab:`T284414`)
* Use roundrobin_generators to combine multiple template inclusions
-* Allow images existing in the shared repo (T267535)
+* Allow images existing in the shared repo (:phab:`T267535`)

### template
-* Do not try to initialze generator twice in TemplateRobot (T284534)
+* Do not try to initialze generator twice in TemplateRobot (:phab:`T284534`)

### update_script
* compat2core script was restored and renamed to update_script
@@ -166,22 +166,22 @@
* dry parameter of CategoryAddBot will be removed

### commonscat
-* Ignore InvalidTitleError (T267742)
-* exit checkCommonscatLink method if target name is empty (T282693)
+* Ignore InvalidTitleError (:phab:`T267742`)
+* exit checkCommonscatLink method if target name is empty (:phab:`T282693`)

### fixing_redirects
-* ValueError will be ignored (T283403, T111513)
-* InterwikiRedirectPageError will be ignored (T137754)
-* InvalidPageError will be ignored (T280043)
+* ValueError will be ignored (:phab:`T283403`, :phab:`T111513`)
+* InterwikiRedirectPageError will be ignored (:phab:`T137754`)
+* InvalidPageError will be ignored (:phab:`T280043`)

### reflinks
* Use consecutive reference numbers for autogenerated links

### replace
-* InvalidPageError will be ignored (T280043)
+* InvalidPageError will be ignored (:phab:`T280043`)

### upload
-* Support async chunked uploads (T129216)
+* Support async chunked uploads (:phab:`T129216`)


## 6.1.0
@@ -196,19 +196,19 @@
* watchlist.py was restored

### archivebot
-* PageArchiver.maxsize must be defined before load_config() (T277547)
+* PageArchiver.maxsize must be defined before load_config() (:phab:`T277547`)
* Time period must have a qualifier

### imagetransfer
-* Fix usage of -tofamily -tolang options (T279232)
+* Fix usage of -tofamily -tolang options (:phab:`T279232`)

### misspelling
* Use the new DisambiguationRobot interface and options

### reflinks
-* Catch urllib3.LocationParseError and skip link (T280356)
+* Catch urllib3.LocationParseError and skip link (:phab:`T280356`)
* L10N updates
-* Avoid dupliate reference names (T278040)
+* Avoid dupliate reference names (:phab:`T278040`)

### solve_disambiguation
* Keyword arguments are recommended if deriving the bot; opt option handler is used.
@@ -221,12 +221,12 @@
*15 March 2021*

### general
-* interwikidumps.py, cfd.py and featured.py scripts were deleted (T223826)
-* Long time unused scripts were archived (T223826). Ask to recover if needed.
+* interwikidumps.py, cfd.py and featured.py scripts were deleted (:phab:`T223826`)
+* Long time unused scripts were archived (:phab:`T223826`). Ask to recover if needed.
* pagegenerators.handle_args() is used in several scripts

### archivebot
-* Always take 'maxarticlesize' into account when saving (T276937)
+* Always take 'maxarticlesize' into account when saving (:phab:`T276937`)
* Remove deprecated parts

### category
@@ -236,16 +236,16 @@
* New script to wrap Commons file descriptions in language templates

### generate_family_file
-* Ignore ssl certificate validation (T265210)
+* Ignore ssl certificate validation (:phab:`T265210`)

### login
* update help string

### maintenance
-* Add a preload_sites.py script to preload site informations (T226157)
+* Add a preload_sites.py script to preload site informations (:phab:`T226157`)

### reflinks
-* Force pdf file to be closed (T276747)
+* Force pdf file to be closed (:phab:`T276747`)
* Fix http.fetch response data attribute
* Fix treat process flow

@@ -253,7 +253,7 @@
* Add replacement description to -summary message

### replicate_wiki
-* replace pages in all sites (T275291)
+* replace pages in all sites (:phab:`T275291`)

### solve_disambiguation
* Deprecated methods were removed
@@ -267,15 +267,15 @@
*24 January 2021*

### general
-* pagegenerators handleArg was renamed to handle_arg (T271437)
+* pagegenerators handleArg was renamed to handle_arg (:phab:`T271437`)
* i18n updates

### add_text
-* bugfix: str.join() expects an iterable not multiple args (T272223)
+* bugfix: str.join() expects an iterable not multiple args (:phab:`T272223`)

### redirect
-* pagegenerators -page option was implemented (T100643)
-* pagegenerators namespace filter was implemented (T234133, T271116)
+* pagegenerators -page option was implemented (:phab:`T100643`)
+* pagegenerators namespace filter was implemented (:phab:`T234133`, :phab:`T271116`)

## weblinkchecker
* Deprecated LinkChecker class was removed
@@ -292,7 +292,7 @@
* -except option was renamed to -grepnot from pagegenerators

### solve_disambiguation
-* ignore ValueError when parsing a Link object (T111513)
+* ignore ValueError when parsing a Link object (:phab:`T111513`)


## 5.4.0
@@ -322,8 +322,8 @@
*10 December 2020*

### general
-* Removed unsupported BadTitle Exception (T267768)
-* Replaced PageNotSaved by PageSaveRelatedError (T267821)
+* Removed unsupported BadTitle Exception (:phab:`T267768`)
+* Replaced PageNotSaved by PageSaveRelatedError (:phab:`T267821`)
* Update scripts to support Python 3.5+ only
* i18n updates
* L10N updates
@@ -332,17 +332,17 @@
* Make BasicBot example a ConfigParserBot to explain the usage

### clean_sandbox
-* Fix TypeError (T267717)
+* Fix TypeError (:phab:`T267717`)

### fixing_redirects
-* Ignore RuntimeError for missing 'redirects' in api response (T267567)
+* Ignore RuntimeError for missing 'redirects' in api response (:phab:`T267567`)

### imagetransfer
* Implement -tosite command and other improvements
-* Do not use UploadRobot.run() with imagetransfer (T267579)
+* Do not use UploadRobot.run() with imagetransfer (:phab:`T267579`)

### interwiki
-* Use textfile for interwiki dumps and enable -restore:all option (T74943, T213624)
+* Use textfile for interwiki dumps and enable -restore:all option (:phab:`T74943`, :phab:`T213624`)

### makecat
* Use input_choice for options
@@ -350,16 +350,16 @@
* Other improvements

### revertbot
-* Take rollbacktoken to revert (T250509)
+* Take rollbacktoken to revert (:phab:`T250509`)

### solve_disambiguation
* Write ignoring pages as a whole

### touch
-* Fix available_options and purge options (T268394)
+* Fix available_options and purge options (:phab:`T268394`)

### weblinkchecker
-* Fix AttributeError of HttpRequest (T269821)
+* Fix AttributeError of HttpRequest (:phab:`T269821`)


## 5.1.0
@@ -367,35 +367,35 @@

### general
* i18n updates
-* switch to new OptionHandler interface (T264721)
+* switch to new OptionHandler interface (:phab:`T264721`)

### change_pagelang
* New script was added

### download_dump
-* Make `dumpdate` param work when using the script in Toolforge (T266630)
+* Make `dumpdate` param work when using the script in Toolforge (:phab:`T266630`)

### imagetransfer
-* Remove outdated "followRedirects" parameter from imagelinks(); treat instead of run method (T266867, T196851, T171713)
+* Remove outdated "followRedirects" parameter from imagelinks(); treat instead of run method (:phab:`T266867`, :phab:`T196851`, :phab:`T171713`)

### interwiki
* Replace deprecated originPage by origin in Subjects

### misspelling
-* Enable misspelling.py for several sites using wikidata (T258859, T94681)
+* Enable misspelling.py for several sites using wikidata (:phab:`T258859`, :phab:`T94681`)

### noreferences
-* Rename NoReferencesBot.run to treat (T196851, T171713)
-* Use wikidata item instead of dropped MediaWiki message for default category (T266413)
+* Rename NoReferencesBot.run to treat (:phab:`T196851`, :phab:`T171713`)
+* Use wikidata item instead of dropped MediaWiki message for default category (:phab:`T266413`)

### reflinks
* Derive ReferencesRobot from ExistingPageBot and NoRedirectPageBot
* Use chardet to find a valid encoding (266862)
-* Rename ReferencesRobot.run to treat (T196851, T171713)
-* Ignore duplication replacements inside templates (T266411)
-* Fix edit summary (T265968)
-* Add Server414Error in and close file after reading (T266000)
-* Call ReferencesRobot.setup() (T265928)
+* Rename ReferencesRobot.run to treat (:phab:`T196851`, :phab:`T171713`)
+* Ignore duplication replacements inside templates (:phab:`T266411`)
+* Fix edit summary (:phab:`T265968`)
+* Add Server414Error in and close file after reading (:phab:`T266000`)
+* Call ReferencesRobot.setup() (:phab:`T265928`)

### welcome
* Replace _COLORS and _MSGS dicts by Enum
@@ -414,11 +414,11 @@
* Split initializer and put getting whitelist to its own method

### checkimages
-* Re-enable -sleep parameter (T264521)
+* Re-enable -sleep parameter (:phab:`T264521`)

### commonscat
-* get commons category from wikibase (T175207)
-* Adjust save counter (T262772)
+* get commons category from wikibase (:phab:`T175207`)
+* Adjust save counter (:phab:`T262772`)

### flickrripper
* Improve option handling
@@ -427,19 +427,19 @@
* Improvements were made

### imagetransfer
-* Do not encode str to bytes (T265257)
+* Do not encode str to bytes (:phab:`T265257`)

### match_images
* Improvements

### parser_function_count
-Porting parser_function_count.py from compat to core/scripts (T66878)
+Porting parser_function_count.py from compat to core/scripts (:phab:`T66878`)

### reflinks
-decode byte-like object meta_content.group() (T264575)
+decode byte-like object meta_content.group() (:phab:`T264575`)

### speedy_delete
-* port speedy_delete.py to core (T66880)
+* port speedy_delete.py to core (:phab:`T66880`)

### weblinkchecker
* Use ThreadList with weblinkchecker
@@ -480,7 +480,7 @@
* i18n updates

### download_dump
-* Move this script to script folder (T123885, T184033)
+* Move this script to script folder (:phab:`T123885`, :phab:`T184033`)

## replace
* Show a FutureWarning for deprecated doReplacements method
@@ -496,13 +496,13 @@
*4 August 2020*

### general
-* Remove Python 2 related code (T257399)
+* Remove Python 2 related code (:phab:`T257399`)
* i18n updates
* L10N updates

### archivebot
* Only mention archives where something was really archived
-* Reset counter when "era" changes (T215247)
+* Reset counter when "era" changes (:phab:`T215247`)
* Code improvements and cleanups
* Fix ShouldArchive type
* Refactor PageArchiver's main loop
@@ -510,7 +510,7 @@
* Fix str2size to allow space separators

### cfd
-* Script was archived and is no longer supported (T223826)
+* Script was archived and is no longer supported (:phab:`T223826`)

### delete
-* Use Dict in place of DefaultDict (T257770)
+* Use Dict in place of DefaultDict (:phab:`T257770`)
diff --git a/tox.ini b/tox.ini
index 4e33252..feaffcb 100644
--- a/tox.ini
+++ b/tox.ini
@@ -77,7 +77,7 @@
[testenv:doc]
commands =
sphinx-build -M html ./docs ./docs/_build
- rstcheck --recursive --report warning .
+ rstcheck --recursive --report warning --ignore-roles phab .
basepython = python3
deps =
-rrequirements.txt

To view, visit change 772029. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Idfbabc1694592d93d8b344915623ad2dc6a5417e
Gerrit-Change-Number: 772029
Gerrit-PatchSet: 6
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged