🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

packaging

Package Overview
Dependencies
Maintainers
4
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

packaging - pypi Package Compare versions

Comparing version
26.0rc2
to
26.0rc3
+17
-0
CHANGELOG.rst
Changelog
---------
26.0rc3 - 2026-01-15
~~~~~~~~~~~~~~~~~~~~
Fixes:
* Support CPython 3.11.0-3.11.4 and older PyPy3.11 (:pull:`1055`)
Performance:
* Faster zero stripping (:pull:`1058`)
CI:
* Test on first public release of CPython 3.11 and newer (:pull:`1056`)
* Fix publication job (again) (:pull:`1051`)
* Use ``actionlint`` to check CI workflows (:pull:`1052`)
26.0rc2 - 2026-01-12

@@ -5,0 +22,0 @@ ~~~~~~~~~~~~~~~~~~~~

+1
-1

@@ -8,3 +8,3 @@ Metadata

Both `source distributions`_ and `binary distributions`_
(_sdists_ and _wheels_, respectively) contain files recording the
(*sdists* and *wheels*, respectively) contain files recording the
`core metadata`_ for the distribution. This information is used for

@@ -11,0 +11,0 @@ everything from recording the name of the distribution to the

Metadata-Version: 2.4
Name: packaging
Version: 26.0rc2
Version: 26.0rc3
Summary: Core utilities for Python packages

@@ -5,0 +5,0 @@ Author-email: Donald Stufft <donald@stufft.io>

@@ -9,3 +9,3 @@ # This file is dual licensed under the terms of the Apache License, Version

__version__ = "26.0rc2"
__version__ = "26.0rc3"

@@ -12,0 +12,0 @@ __author__ = "Donald Stufft and individual contributors"

@@ -179,4 +179,11 @@ # This file is dual licensed under the terms of the Apache License, Version

# Possessive qualifiers were added in Python 3.11.
# CPython 3.11.0-3.11.4 had a bug: https://github.com/python/cpython/pull/107795
# Older PyPy also had a bug.
VERSION_PATTERN = (
_VERSION_PATTERN_OLD if sys.version_info < (3, 11) else _VERSION_PATTERN
_VERSION_PATTERN_OLD
if (sys.implementation.name == "cpython" and sys.version_info < (3, 11, 5))
or (sys.implementation.name == "pypy" and sys.version_info < (3, 11, 13))
or sys.version_info < (3, 11)
else _VERSION_PATTERN
)

@@ -619,8 +626,9 @@ """

"""
# Unlike _strip_trailing_zeros, this leaves one 0.
# This leaves one 0.
rel = super().release
i = len(rel)
len_release = len(rel)
i = len_release
while i > 1 and rel[i - 1] == 0:
i -= 1
return rel[:i]
return rel if i == len_release else rel[:i]

@@ -667,13 +675,2 @@

def _strip_trailing_zeros(release: tuple[int, ...]) -> tuple[int, ...]:
# We want to strip trailing zeros from a tuple of values. This starts
# from the end and returns as soon as it finds a non-zero value. When
# reading a lot of versions, this is a fairly hot function, so not using
# enumerate/reversed, which is slightly slower.
for i in range(len(release) - 1, -1, -1):
if release[i] != 0:
return release[: i + 1]
return ()
def _cmpkey(

@@ -689,3 +686,7 @@ epoch: int,

# trailing zeros removed. We will use this for our sorting key.
_release = _strip_trailing_zeros(release)
len_release = len(release)
i = len_release
while i and release[i - 1] == 0:
i -= 1
_release = release if i == len_release else release[:i]

@@ -692,0 +693,0 @@ # We need to "trick" the sorting algorithm to put 1.0.dev0 before 1.0a0.