pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/time/py-dateutil



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sun Oct 25 12:49:48 UTC 2026

Modified Files:
        pkgsrc/time/py-dateutil: Makefile PLIST distinfo
Removed Files:
        pkgsrc/time/py-dateutil/patches: patch-src_dateutil_parser___parser.py
            patch-src_dateutil_tz_tz.py patch-src_dateutil_zoneinfo_rebuild.py
            patch-tests_test__isoparser.py patch-tests_test__tz.py

Log Message:
py-dateutil: update to 3.0.0.

Version 3.0.0 (2026-10-21)
==========================

**This is the last major version of** ``dateutil`` **that will support any
version of Python older than 3.11.** The next release will be the 4.x series,
which will support Python 3.11 and later. We may release fixes for serious bugs
in the 3.0.x series, but there are no plans for new features there.

The biggest change in this release is a rewrite of ``tz.tzfile``, which affects
nearly every user of ``dateutil.tz`` and changes the UTC offset of
nonexistent times (see below). ``dateutil`` also now depends on the ``tzdata``
package, and no longer ships its own time zone database.

Data updates
------------

- ``dateutil`` no longer bundles a copy of the IANA time zone database. Time
  zone data now comes from the system (see ``dateutil.tz.TZPATH``) or, failing
  that, from the new ``tzdata`` dependency, so the data version is whatever
  version of ``tzdata`` is installed. (gh pr #1130)

Features
--------

- Rewrote ``tz.tzfile`` based on a backport of the ``zoneinfo`` module's pure-Python
  implementation. This adds support for Version 2 and Version 3 ``tzfile(5)`` binaries,
  resolving issues with timestamps beyond 2038 and "slim" format binaries. (gh issues #462, #1059, gh pr #1130)
- Added ``dateutil.tz.TZPATH`` and ``dateutil.tz.reset_tzpath`` to allow for
  runtime configuration of the IANA time zone data search path. These replace the
  mutable ``dateutil.tz.TZPATHS`` list, which has been removed. (gh pr #1130)
- ``dateutil`` now depends on the ``tzdata`` package, which ``gettz`` consults after the search
  path and before the Windows registry. On Windows this means that names that are
  both IANA keys and Windows time zone names, such as ``"UTC"``, now return a
  ``tzfile`` rather than a ``tzwin``. (gh pr #1130)

Bugfixes
--------

- ``tz.tzfile`` now follows PEP 495 for times that fall in a gap: with ``fold=0``
  it uses the offset from before the transition, and with ``fold=1`` the offset
  from after it. Previously it always used the offset from after the transition,
  so for example ``datetime(2003, 4, 6, 2, 30, tzinfo=tz.gettz("America/New_York"))``
  had a UTC offset of -04:00, where it now has -05:00, the same as with
  ``zoneinfo``. (gh pr #1130)
- ``tz.tzfile`` objects for fixed-offset zones, such as ``tz.gettz("UTC")``, now
  return their offset, DST offset and abbreviation when ``utcoffset``, ``dst``
  and ``tzname`` are called with ``None``, as ``tz.tzutc``, ``tz.tzoffset`` and
  ``zoneinfo.ZoneInfo`` do. This means that ``datetime.time`` objects with such
  a zone attached are now aware: ``time(12, tzinfo=tz.gettz("UTC")).isoformat()``
  is now ``"12:00:00+00:00"`` rather than ``"12:00:00"``. (gh pr #1130)
- ``tz.tzfile`` now infers ``dst()`` from the standard time on both sides of
  each DST period, rather than only the one before it, and does so for each
  transition rather than for each local time type. This fixes ``dst()`` for
  double summer time (e.g. in ``Europe/London`` in the 1940s), for half-hour DST
  (e.g. in ``Pacific/Rarotonga``) and where the standard offset changed at the
  same time as a DST transition (e.g. in ``America/Bahia_Banderas`` in 2010).
  Against the standard offsets in the tz database source, the only remaining
  errors are in ``Europe/Paris`` in 1944 and 1945. (gh pr #1130)
- Fixed ``rrulestr`` raising ``ValueError`` on experimental ``X-`` parameters in
  an ``RRULE`` line (such as GNOME Evolution's ``X-EVOLUTION-ENDDATE``); these are
  now ignored as RFC 5545 permits. Fixed by @yajo (gh pr #1374)
- Enabled pickling and deepcopy of cached ``rrule`` and ``rruleset`` instances.
  The cache setting is preserved, and cached results are regenerated on demand
  without copying locks or generators. Reported by @niccokunzmann (gh issue #1369).
  Fixed by @Jay1023CN (gh pr #1600).
- Fixed ``relativedelta.__ne__`` raising ``TypeError`` when comparing against an
  unsupported type such as ``None``; it now returns ``True``. Reported and fixed
  by @kevinkt1 (gh issue #1157, gh pr #1158)
- Raised the minimum version of ``six`` to 1.6, fixing ``No module named
  'six.moves'`` errors with older versions. Reported by @skytreader (gh issue #1415),
  fixed by @jdarias3 (gh pr #1424).

Deprecations
------------

- Deprecated the ``dateutil.zoneinfo`` module. The module now acts as a wrapper
  around the ``tzdata`` package and will be removed in a future version. Users are
  encouraged to migrate to ``dateutil.tz.gettz`` or the standard library's
  ``zoneinfo`` module. ``dateutil.zoneinfo.rebuild.rebuild`` no longer does
  anything, and by default raises ``RebuildDeprecationWarning`` as an error;
  filter the warning to call it as a no-op. (gh pr #1130)
- Deprecated passing ``gettz`` a relative key that refers to a file outside of
  every directory on ``TZPATH``, such as ``"../../etc/localtime"``. By default
  this now raises ``dateutil.tz.DeprecatedTzKeyWarning`` as an error; filter the
  warning to keep the old behavior for now, or pass an absolute path instead.
  (gh pr #1130)

Documentation changes
---------------------

- Added intersphinx to the docs build and cleaned up some broken links. (gh pr #1463)

Misc
----

- Releases are now uploaded to PyPI using trusted publishing, and the built
  sdist and wheel are tested on all supported platforms before upload.
  (gh pr #1619, #1622)
- Changes to CI, tests and release tooling that do not affect users of the
  package: gh pr #1417, #1462, #1464, #1465, #1466, #1467, #1468, #1469, #1470,
  #1499, #1501, #1504, #1576, #1577, #1578, #1581, #1585.


To generate a diff of this commit:
cvs rdiff -u -r1.42 -r1.43 pkgsrc/time/py-dateutil/Makefile
cvs rdiff -u -r1.13 -r1.14 pkgsrc/time/py-dateutil/PLIST
cvs rdiff -u -r1.23 -r1.24 pkgsrc/time/py-dateutil/distinfo
cvs rdiff -u -r1.1 -r0 \
    pkgsrc/time/py-dateutil/patches/patch-src_dateutil_parser___parser.py \
    pkgsrc/time/py-dateutil/patches/patch-src_dateutil_tz_tz.py \
    pkgsrc/time/py-dateutil/patches/patch-src_dateutil_zoneinfo_rebuild.py \
    pkgsrc/time/py-dateutil/patches/patch-tests_test__isoparser.py \
    pkgsrc/time/py-dateutil/patches/patch-tests_test__tz.py

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/time/py-dateutil/Makefile
diff -u pkgsrc/time/py-dateutil/Makefile:1.42 pkgsrc/time/py-dateutil/Makefile:1.43
--- pkgsrc/time/py-dateutil/Makefile:1.42       Fri Aug 21 12:17:32 2026
+++ pkgsrc/time/py-dateutil/Makefile    Sun Oct 25 12:49:47 2026
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.42 2026/08/21 12:17:32 wiz Exp $
+# $NetBSD: Makefile,v 1.43 2026/10/25 12:49:47 wiz Exp $
 
-DISTNAME=      python-dateutil-2.9.0.post0
-PKGNAME=       ${PYPKGPREFIX}-${DISTNAME:S/python-//:S/post/0.0./}
-PKGREVISION=   3
+DISTNAME=      python_dateutil-3.0.0
+PKGNAME=       ${PYPKGPREFIX}-${DISTNAME:S/python_//}
 CATEGORIES=    time python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=p/python-dateutil/}
 
@@ -14,12 +13,13 @@ LICENSE=    modified-bsd
 TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
 TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools_scm-[0-9]*:../../devel/py-setuptools_scm
 DEPENDS+=      ${PYPKGPREFIX}-six>=1.5:../../lang/py-six
+TEST_DEPENDS+= ${PYPKGPREFIX}-attrs>=0:../../devel/py-attrs
 TEST_DEPENDS+= ${PYPKGPREFIX}-test-cov>=2.0:../../devel/py-test-cov
 TEST_DEPENDS+= ${PYPKGPREFIX}-freezegun-[0-9]*:../../devel/py-freezegun
 TEST_DEPENDS+= ${PYPKGPREFIX}-hypothesis>=3.30:../../devel/py-hypothesis
 
-# as of 2.9.0.post0
-# 31 failed, 2001 passed, 47 skipped, 17 xfailed
+# as of 3.0.0
+# 2 failed, 4899 passed, 416 skipped, 17 xfailed
 
 .include "../../lang/python/wheel.mk"
 .include "../../mk/bsd.pkg.mk"

Index: pkgsrc/time/py-dateutil/PLIST
diff -u pkgsrc/time/py-dateutil/PLIST:1.13 pkgsrc/time/py-dateutil/PLIST:1.14
--- pkgsrc/time/py-dateutil/PLIST:1.13  Mon Apr 14 08:49:19 2025
+++ pkgsrc/time/py-dateutil/PLIST       Sun Oct 25 12:49:47 2026
@@ -1,16 +1,13 @@
-@comment $NetBSD: PLIST,v 1.13 2025/04/14 08:49:19 adam Exp $
-${PYSITELIB}/${WHEEL_INFODIR}/METADATA
-${PYSITELIB}/${WHEEL_INFODIR}/RECORD
-${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
-${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
-${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
-${PYSITELIB}/${WHEEL_INFODIR}/zip-safe
+@comment $NetBSD: PLIST,v 1.14 2026/10/25 12:49:47 wiz Exp $
 ${PYSITELIB}/dateutil/__init__.py
 ${PYSITELIB}/dateutil/__init__.pyc
 ${PYSITELIB}/dateutil/__init__.pyo
 ${PYSITELIB}/dateutil/_common.py
 ${PYSITELIB}/dateutil/_common.pyc
 ${PYSITELIB}/dateutil/_common.pyo
+${PYSITELIB}/dateutil/_tzdata_impl.py
+${PYSITELIB}/dateutil/_tzdata_impl.pyc
+${PYSITELIB}/dateutil/_tzdata_impl.pyo
 ${PYSITELIB}/dateutil/_version.py
 ${PYSITELIB}/dateutil/_version.pyc
 ${PYSITELIB}/dateutil/_version.pyo
@@ -41,6 +38,12 @@ ${PYSITELIB}/dateutil/tz/_common.pyo
 ${PYSITELIB}/dateutil/tz/_factories.py
 ${PYSITELIB}/dateutil/tz/_factories.pyc
 ${PYSITELIB}/dateutil/tz/_factories.pyo
+${PYSITELIB}/dateutil/tz/_tzfile.py
+${PYSITELIB}/dateutil/tz/_tzfile.pyc
+${PYSITELIB}/dateutil/tz/_tzfile.pyo
+${PYSITELIB}/dateutil/tz/_tzpath.py
+${PYSITELIB}/dateutil/tz/_tzpath.pyc
+${PYSITELIB}/dateutil/tz/_tzpath.pyo
 ${PYSITELIB}/dateutil/tz/tz.py
 ${PYSITELIB}/dateutil/tz/tz.pyc
 ${PYSITELIB}/dateutil/tz/tz.pyo
@@ -56,7 +59,12 @@ ${PYSITELIB}/dateutil/utils.pyo
 ${PYSITELIB}/dateutil/zoneinfo/__init__.py
 ${PYSITELIB}/dateutil/zoneinfo/__init__.pyc
 ${PYSITELIB}/dateutil/zoneinfo/__init__.pyo
-${PYSITELIB}/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz
 ${PYSITELIB}/dateutil/zoneinfo/rebuild.py
 ${PYSITELIB}/dateutil/zoneinfo/rebuild.pyc
 ${PYSITELIB}/dateutil/zoneinfo/rebuild.pyo
+${PYSITELIB}/${WHEEL_INFODIR}/METADATA
+${PYSITELIB}/${WHEEL_INFODIR}/RECORD
+${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
+${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
+${PYSITELIB}/${WHEEL_INFODIR}/zip-safe

Index: pkgsrc/time/py-dateutil/distinfo
diff -u pkgsrc/time/py-dateutil/distinfo:1.23 pkgsrc/time/py-dateutil/distinfo:1.24
--- pkgsrc/time/py-dateutil/distinfo:1.23       Fri Aug 21 12:17:32 2026
+++ pkgsrc/time/py-dateutil/distinfo    Sun Oct 25 12:49:47 2026
@@ -1,10 +1,5 @@
-$NetBSD: distinfo,v 1.23 2026/08/21 12:17:32 wiz Exp $
+$NetBSD: distinfo,v 1.24 2026/10/25 12:49:47 wiz Exp $
 
-BLAKE2s (python-dateutil-2.9.0.post0.tar.gz) = 853dce8ffa2bb628e0d82444793adb394e9962ddca529ce1dea814e30384b416
-SHA512 (python-dateutil-2.9.0.post0.tar.gz) = f76522de0ff21547327eaf6966e80a15c57f8f92588d520eabd354a732e5c4b51d9c3ac5effd9eaa6dd451d1bce329a54a3f4c6bf4f1bd08ff06b0305c994e5a
-Size (python-dateutil-2.9.0.post0.tar.gz) = 342432 bytes
-SHA1 (patch-src_dateutil_parser___parser.py) = fe00859ca998812df85ba5e800f5c673cf38987b
-SHA1 (patch-src_dateutil_tz_tz.py) = c14680fe7347d5b5e3d507f064728bdd4df55a62
-SHA1 (patch-src_dateutil_zoneinfo_rebuild.py) = d01e7abce705dffb1bd7624099cfe5e3f4340fb7
-SHA1 (patch-tests_test__isoparser.py) = d4cee0a18d24001746ad65ce5bad1f72ad253e7b
-SHA1 (patch-tests_test__tz.py) = 896c50c2739a725acf6c380592f8ec9b0b5a22a2
+BLAKE2s (python_dateutil-3.0.0.tar.gz) = 951543b9d7978cdd67ca5340edde6c16a3b362fb95682f92f4d0583e05c499f4
+SHA512 (python_dateutil-3.0.0.tar.gz) = 638dcea7a840163bfd79d174b3ccd43254d712b92c1739dc93f937ecce122994ff25d19a579705cd6ba77336901e879ab4c7f68ca599b5576656a3b6783c2c69
+Size (python_dateutil-3.0.0.tar.gz) = 271066 bytes



Home | Main Index | Thread Index | Old Index