jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1009719?usp=email )
Change subject: [9.1] Prepare next release ......................................................................
[9.1] Prepare next release
Change-Id: Idc5c83c906205b0521bc7412918634254afe93f0 --- M .appveyor.yml M HISTORY.rst M ROADMAP.rst M pywikibot/__metadata__.py M scripts/__init__.py 5 files changed, 106 insertions(+), 91 deletions(-)
Approvals: jenkins-bot: Verified Xqt: Looks good to me, approved
diff --git a/.appveyor.yml b/.appveyor.yml index 7ec6f33..cf2b780 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,7 +1,7 @@ image: Visual Studio 2022 clone_depth: 50 skip_tags: true -version: 9.0.{build} +version: 9.1.{build} environment:
PYWIKIBOT_DIR: "%appdata%\Pywikibot" diff --git a/HISTORY.rst b/HISTORY.rst index 94482fd..2104ff9 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,6 +1,98 @@ Release history ===============
+9.0.0 +----- +*08 March 2024* + +Improvements +^^^^^^^^^^^^ + +* Python 3.13 is supported +* Update :mod:`tools`._unidata._category_cf from Unicodedata version 15.1.0 +* :meth:`Timestamp.nowutc()<pywikibot.time.Timestamp.nowutc>` and + :meth:`Timestamp.utcnow()<pywikibot.time.Timestamp.utcnow>` were added (:phab:`T337748`) +* Remove content parameter of :meth:`proofreadpage.IndexPage.page_gen` method. (:phab:`T358635`) +* Backport ``itertools.batched`` from Python 3.13 to :func:`backports.batched` +* A copy button was added to the sphinx documentation. +* Make :attr:`languages_by_size<family.WikimediaFamily.languages_by_size>` dynamic (:phab:`T78396`). The property is + only available for :class:`family.WikimediaFamily` families. The ``wikimedia_sites.py`` maintenance script was + removed. +* Add :func:`config.base_dir<config.get_base_dir>` to scripts search path with :mod:`pwb` wrapper (:phab:`T324287`) +* :meth:`pywikibot.WbTime.equal_instant` was added (:phab:`T325248`) +* ``revisions`` parameter of :class:`xmlreader.XmlDump` was introduced to specify parsing method + (:phab:`T340804`) +* Pass global -nolog argument into bot script from wrapper (:phab:`T328900`) +* Add :meth:`site.APISite.ratelimit()<pywikibot.site._apisite.APISite.ratelimit>` method + and :class:`tools.collections.RateLimit` NamedTuple (:phab:`T304808`) +* L10N and i18n updates +* Add :class:`pagegenerators.PagePilePageGenerator` (:phab:`T353086`) + +Bugfixes +^^^^^^^^ + +* :meth:`Timestamp.now()<pywikibot.time.Timestamp.now>` and + :meth:`Timestamp.fromtimestamp()<pywikibot.time.Timestamp.fromtimestamp>` also returns a + :class:`Timestamp<pywikibot.time.Timestamp>` object with Python 3.7 +* Populate :class:`pywikibot.MediaInfo`._content with expected attributes when loaded (:phab:`T357608`) +* Raise :exc:`exceptions.APIError` if the same error comes twice within :meth:`data.api.Request.submit` loop + (:phab:`T357870`) +* Only delegate :mod:`site` methods to public :class:`family.Family` methods which have *code* as first parameter. +* Use ``str`` instead of ``repr`` for several messages with :class:`family.Family` objects (:phab:`T356782`) +* Add ``hy`` to special languages in :class:`textlib.TimeStripper` (:phab:`T356175`) +* Pass login token when using ``action=login`` (:phab:`T309898`) +* Detect range blocks with :meth:`pywikibot.User.is_blocked` (:phab:`T301282`) +* Use only ``end`` tags in ElementTree.iterparse in :mod:`xmlreader` module (:phab:`T354095`) +* Suppress error in :meth:`cosmetic_changes.CosmeticChangesToolkit.cleanUpLinks` (:phab:`T337045`) +* :func:`pywikibot.input_choice` validates *default* parameter (:phab:`T353097`) +* Remove typing imports from user-config.py file (:phab:`T352965`) + +Breaking changes and code cleanups +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +* Cache directory was renamed from ``apicache-py3`` to ``apicache`` due to timestamp changes. (:phab:`T337748`) + **Warning:** Do not use Pywikibot 9+ together with Pywikibot 3.0.20181203 and below. +* Raise ``TypeError`` instead of ``AttributeError`` in :meth:`Site.randompages() + <pywikibot.site._generators.GeneratorsMixin.randompages>` if *redirects* parameter is invalid. +* A RuntimeError will be raised if a :class:`family.Family` subclass has an ``__init__`` initializer method. + :meth:`family.Family.__post_init__` classmethod can be used instead. +* :class:`InteractiveReplace<bot_choice.InteractiveReplace>` was moved from :mod:`bot` to :mod:`bot_choice` module +* ``userinterfaces.transliteration.transliterator`` was renamed to :class:`Transliterator + <userinterfaces.transliteration.Transliterator>` +* ``pywikibot.BaseSite`` and ``pywikibotAPISite`` were dropped. :func:`pywikibot.Site` has to be used to create a + :mod:`site` object. +* ``next`` parameter of :meth:`userinterfaces.transliteration.Transliterator.transliterate` was renamed to ``succ`` +* ``type`` parameter of :meth:`site.APISite.protectedpages()<pywikibot.site._generators.GeneratorsMixin.protectedpages>` + was renamed to ``protect_type`` +* ``all`` parameter of :meth:`site.APISite.namespace()<pywikibot.site._apisite.APISite.namespace>` was renamed to + ``all_ns`` +* ``filter`` parameter of :func:`date.dh` was renamed to ``filter_func`` +* ``dict`` parameter of :class:`data.api.OptionSet` was renamed to ``data`` +* ``setuptools`` package is no longer mandatory but required for tests + (:phab:`T340640`, :phab:`T347052`, :phab:`T354515`) +* ``root`` attribute of :class:`xmlreader.XmlDump` was removed +* ``tools.Version`` class was removed; use classes from ``packaging.version`` instead (:phab:`T340640`) +* ``packaging`` package is mandatory; ``importlib_metadata`` package is required for Python 3.7 (:phab:`T340640`) +* ``SelfCallMixin``, ``SelfCallDict`` and ``SelfCallString`` of :mod:`tools` module were removed +* Calling :attr:`site.BaseSite.sitename<pywikibot.site._basesite.BaseSite.sitename>` as a function + is no longer supported +* ``config.register_family_file()`` function was removed +* require ``PyMySQL >= 1.0.0`` if necessary +* ``keys()`` and ``items()`` methods of :class:`data.api.Request` gives a view instead a list (:phab:`T310953`) +* ``SequenceOutputter.format_list()`` was removed in favour of :attr:`tools.formatter.SequenceOutputter.out` property +* *output* parameter of :class:`bot_choice.OutputProxyOption` (i.e. ``OutputOption`` instance) without *out* property is + no longer supported +* ``OutputOption.output()`` method was removed +* ``ContextOption.output_range()`` and ``HighlightContextOption.output_range()`` methods were removed +* ``page.url2unicode()`` function was removed in favour of :func:`tools.chars.url2string` +* *iterables* of :func:`tools.itertools.intersect_generators` must not be given as a single list or tuple; + either consecutive iterables must be used or '*' to unpack +* *allow_duplicates* parameter of :func:`tools.itertools.intersect_generators` must be given as keyword argument +* Infinite rotating file handler with ``config.logfilesize`` of -1 is no longer supported +* ``Throttle.multiplydelay`` attribute was removed +* Python 3.6 support was dropped (:phab:`T347026`) + + 8.6.0 ----- *05 December 2023* diff --git a/ROADMAP.rst b/ROADMAP.rst index 1993301..b00b932 100644 --- a/ROADMAP.rst +++ b/ROADMAP.rst @@ -1,93 +1,7 @@ Current release ---------------
-Improvements -^^^^^^^^^^^^ - -* Python 3.13 is supported -* Update :mod:`tools`._unidata._category_cf from Unicodedata version 15.1.0 -* :meth:`Timestamp.nowutc()<pywikibot.time.Timestamp.nowutc>` and - :meth:`Timestamp.utcnow()<pywikibot.time.Timestamp.utcnow>` were added (:phab:`T337748`) -* Remove content parameter of :meth:`proofreadpage.IndexPage.page_gen` method. (:phab:`T358635`) -* Backport ``itertools.batched`` from Python 3.13 to :func:`backports.batched` -* A copy button was added to the sphinx documentation. -* Make :attr:`languages_by_size<family.WikimediaFamily.languages_by_size>` dynamic (:phab:`T78396`). The property is - only available for :class:`family.WikimediaFamily` families. The ``wikimedia_sites.py`` maintenance script was - removed. -* Add :func:`config.base_dir<config.get_base_dir>` to scripts search path with :mod:`pwb` wrapper (:phab:`T324287`) -* :meth:`pywikibot.WbTime.equal_instant` was added (:phab:`T325248`) -* ``revisions`` parameter of :class:`xmlreader.XmlDump` was introduced to specify parsing method - (:phab:`T340804`) -* Pass global -nolog argument into bot script from wrapper (:phab:`T328900`) -* Add :meth:`site.APISite.ratelimit()<pywikibot.site._apisite.APISite.ratelimit>` method - and :class:`tools.collections.RateLimit` NamedTuple (:phab:`T304808`) -* L10N and i18n updates -* Add :class:`pagegenerators.PagePilePageGenerator` (:phab:`T353086`) - -Bugfixes -^^^^^^^^ - -* :meth:`Timestamp.now()<pywikibot.time.Timestamp.now>` and - :meth:`Timestamp.fromtimestamp()<pywikibot.time.Timestamp.fromtimestamp>` also returns a - :class:`Timestamp<pywikibot.time.Timestamp>` object with Python 3.7 -* Populate :class:`pywikibot.MediaInfo`._content with expected attributes when loaded (:phab:`T357608`) -* Raise :exc:`exceptions.APIError` if the same error comes twice within :meth:`data.api.Request.submit` loop - (:phab:`T357870`) -* Only delegate :mod:`site` methods to public :class:`family.Family` methods which have *code* as first parameter. -* Use ``str`` instead of ``repr`` for several messages with :class:`family.Family` objects (:phab:`T356782`) -* Add ``hy`` to special languages in :class:`textlib.TimeStripper` (:phab:`T356175`) -* Pass login token when using ``action=login`` (:phab:`T309898`) -* Detect range blocks with :meth:`pywikibot.User.is_blocked` (:phab:`T301282`) -* Use only ``end`` tags in ElementTree.iterparse in :mod:`xmlreader` module (:phab:`T354095`) -* Suppress error in :meth:`cosmetic_changes.CosmeticChangesToolkit.cleanUpLinks` (:phab:`T337045`) -* :func:`pywikibot.input_choice` validates *default* parameter (:phab:`T353097`) -* Remove typing imports from user-config.py file (:phab:`T352965`) - -Breaking changes and code cleanups -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Cache directory was renamed from ``apicache-py3`` to ``apicache`` due to timestamp changes. (:phab:`T337748`) - **Warning:** Do not use Pywikibot 9+ together with Pywikibot 3.0.20181203 and below. -* Raise ``TypeError`` instead of ``AttributeError`` in :meth:`Site.randompages() - <pywikibot.site._generators.GeneratorsMixin.randompages>` if *redirects* parameter is invalid. -* A RuntimeError will be raised if a :class:`family.Family` subclass has an ``__init__`` initializer method. - :meth:`family.Family.__post_init__` classmethod can be used instead. -* :class:`InteractiveReplace<bot_choice.InteractiveReplace>` was moved from :mod:`bot` to :mod:`bot_choice` module -* ``userinterfaces.transliteration.transliterator`` was renamed to :class:`Transliterator - <userinterfaces.transliteration.Transliterator>` -* ``pywikibot.BaseSite`` and ``pywikibotAPISite`` were dropped. :func:`pywikibot.Site` has to be used to create a - :mod:`site` object. -* ``next`` parameter of :meth:`userinterfaces.transliteration.Transliterator.transliterate` was renamed to ``succ`` -* ``type`` parameter of :meth:`site.APISite.protectedpages()<pywikibot.site._generators.GeneratorsMixin.protectedpages>` - was renamed to ``protect_type`` -* ``all`` parameter of :meth:`site.APISite.namespace()<pywikibot.site._apisite.APISite.namespace>` was renamed to - ``all_ns`` -* ``filter`` parameter of :func:`date.dh` was renamed to ``filter_func`` -* ``dict`` parameter of :class:`data.api.OptionSet` was renamed to ``data`` -* ``setuptools`` package is no longer mandatory but required for tests - (:phab:`T340640`, :phab:`T347052`, :phab:`T354515`) -* ``root`` attribute of :class:`xmlreader.XmlDump` was removed -* ``tools.Version`` class was removed; use classes from ``packaging.version`` instead (:phab:`T340640`) -* ``packaging`` package is mandatory; ``importlib_metadata`` package is required for Python 3.7 (:phab:`T340640`) -* ``SelfCallMixin``, ``SelfCallDict`` and ``SelfCallString`` of :mod:`tools` module were removed -* Calling :attr:`site.BaseSite.sitename<pywikibot.site._basesite.BaseSite.sitename>` as a function - is no longer supported -* ``config.register_family_file()`` function was removed -* require ``PyMySQL >= 1.0.0`` if necessary -* ``keys()`` and ``items()`` methods of :class:`data.api.Request` gives a view instead a list (:phab:`T310953`) -* ``SequenceOutputter.format_list()`` was removed in favour of :attr:`tools.formatter.SequenceOutputter.out` property -* *output* parameter of :class:`bot_choice.OutputProxyOption` (i.e. ``OutputOption`` instance) without *out* property is - no longer supported -* ``OutputOption.output()`` method was removed -* ``ContextOption.output_range()`` and ``HighlightContextOption.output_range()`` methods were removed -* ``page.url2unicode()`` function was removed in favour of :func:`tools.chars.url2string` -* *iterables* of :func:`tools.itertools.intersect_generators` must not be given as a single list or tuple; - either consecutive iterables must be used or '*' to unpack -* *allow_duplicates* parameter of :func:`tools.itertools.intersect_generators` must be given as keyword argument -* Infinite rotating file handler with ``config.logfilesize`` of -1 is no longer supported -* ``Throttle.multiplydelay`` attribute was removed -* Python 3.6 support was dropped (:phab:`T347026`) - +* (no changes yet)
Deprecations ------------ diff --git a/pywikibot/__metadata__.py b/pywikibot/__metadata__.py index 3086190..472836c 100644 --- a/pywikibot/__metadata__.py +++ b/pywikibot/__metadata__.py @@ -12,6 +12,6 @@ from time import strftime
-__version__ = '9.0.0' +__version__ = '9.1.0.dev0' __url__ = 'https://www.mediawiki.org/wiki/Manual:Pywikibot' __copyright__ = '(C) Pywikibot team, 2003-' + strftime('%Y') diff --git a/scripts/__init__.py b/scripts/__init__.py index d5724e1..d289690 100644 --- a/scripts/__init__.py +++ b/scripts/__init__.py @@ -28,8 +28,8 @@
# -# (C) Pywikibot team, 2021-2023 +# (C) Pywikibot team, 2021-2024 # # Distributed under the terms of the MIT license. # -__version__ = '9.0.0' +__version__ = '9.1.0'
pywikibot-commits@lists.wikimedia.org