| Newsgroups |
gmane.linux.lfs.book |
| Message-ID |
<[email protected]> |
#5848: setuptools-80.10.2 (Python module)
-------------------------+-----------------------
Reporter: Bruce Dubbs | Owner: lfs-book
Type: enhancement | Status: closed
Priority: normal | Milestone: 12.5
Component: Book | Version: git
Severity: normal | Resolution: fixed
Keywords: |
-------------------------+-----------------------
Comment (by Bruce Dubbs):
Changelog 26.0 - 2026-01-20
Features:
* PEP 751: support pylock (:pull:`900`)
* PEP 794: import name metadata (:pull:`948`)
* Support for writing metadata to a file (:pull:`846`)
* Support ``__replace__`` on Version (:pull:`1003`)
* Support positional pattern matching for ``Version`` and ``SpecifierSet``
(:pull:`1004`)
Behavior adaptations:
* PEP 440 handling of prereleases for ``Specifier.contains``,
``SpecifierSet.contains``, and ``SpecifierSet.filter`` (:pull:`897`)
* Handle PEP 440 edge case in ``SpecifierSet.filter`` (:pull:`942`)
* Adjust arbitrary equality intersection preservation in ``SpecifierSet``
(:pull:`951`)
* Return ``False`` instead of raising for ``.contains`` with invalid
version (:pull:`932`)
* Support arbitrary equality on arbitrary strings for ``Specifier`` and
``SpecifierSet``'s ``filter`` and ``contains`` method. (:pull:`954`)
* Only try to parse as ``Version`` on certain marker keys, return
``False`` on unequal ordered comparisons (:pull:`939`)
Fixes:
* Update ``_hash`` when unpickling ``Tag()`` (:pull:`860`)
* Correct comment and simplify implicit prerelease handling in
``Specifier.prereleases`` (:pull:`896`)
* Use explicit ``_GLibCVersion`` ``NamedTuple`` in ``_manylinux``
(:pull:`868`)
* Detect invalid license expressions containing ``()`` (:pull:`879`)
* Correct regex for metadata ``'name'`` format (:pull:`925`)
* Improve the message around expecting a semicolon (:pull:`833`)
* Support nested parens in license expressions (:pull:`931`)
* Add space before at symbol in ``Requirements`` string (:pull:`953`)
* A root logger use found, use a ``packaging`` logger instead
(:pull:`965`)
* Better support for subclassing ``Marker`` and ``Requirement``
(:pull:`1022`)
* Normalize all extras, not just if it comes first (:pull:`1024`)
* Don't produce a broken repr if ``Marker`` fails to construct
(:pull:`1033`)
Performance:
* Avoid recompiling regexes in the tokenizer for a 3x speedup
(:pull:`1019`)
* Improve performance in ``_manylinux.py`` (:pull:`869`)
* Minor cleanups to ``Version`` (:pull:`913`)
* Skip redundant creation of ``Version``'s in specifier comparison
(:pull:`986`)
* Cache the ``Specifier``'s ``Version`` (:pull:`985`)
* Make ``Version`` a little faster (:pull:`987`)
* Minor ``Version`` regex cleanup (:pull:`990`)
* Faster regex on Python 3.11.5+ for ``Version`` (:pull:`988`,
:pull:`1055`)
* Lazily calculate ``_key`` in ``Version`` (:pull:`989`, :pull:`1048`)
* Faster ``canonicalize_version`` (:pull:`993`)
* Use ``re.fullmatch`` in a couple more places (:pull:`992`, :pull:`1029`)
* Use ``map`` instead of generator (:pull:`996`)
* Deprecate ``._version`` (``_Version``, a ``NamedTuple``) (:pull:`995`,
:pull:`1062`)
* Avoid duplicate ``Version`` creation in ``canonicalize_version``
(:pull:`994`)
* Add ``__slots__`` to core classes (:pull:`1001`, :pull:`1002`,
:pull:`1032`)
* Use ``Version.__replace__`` in specifier comparison (:pull:`999`)
* Use ``_get_spec_version`` in more places in ``Specifier`` (:pull:`1005`)
* Pull ``set`` construction out of function (:pull:`1012`)
* Letter normalization dict for prereleases and the like (:pull:`1014`)
* Use ``str.partition`` in ``_parse_project_urls`` (:pull:`1013`)
* Avoid normalizing extras again when comparing (:pull:`1028`)
* Speed up ``Version.__str__`` by about 10% (:pull:`997`)
* Much faster ``canonicalize_name`` by avoiding a regex (:pull:`1030`,
:pull:`1047`, :pull:`1064`)
* Faster zero stripping (:pull:`1058`)
Type annotations:
* Fix a type annotation (:pull:`907`)
* Fix type hint of function used with ``contextlib.contextmanager``
(:pull:`1046`)
* Fix tags return type in ``parse_wheel_filename`` docs (:pull:`973`)
* Add type hint for ``_version`` in ``.version.Version`` (:pull:`927`)
* Changed static type annotations in prereleases setter method in
``specifier.py`` (:pull:`930`)
* Statically type our test suite (:pull:`982`)
Internal:
* Test and declare support for Python 3.14 (:pull:`901`)
* Change our license metadata to use an SPDX license expression
(:pull:`881`, :pull:`924`)
* Expand the Ruff checks run on our codebase (:pull:`835`, :pull:`957`,
:pull:`959`,
:pull:`963`, :pull:`956`, :pull:`961`, :pull:`964`, :pull:`958`,
:pull:`960`, :pull:`968`,
:pull:`967`, :pull:`966`, :pull:`969`, :pull:`980`, :pull:`979`,
:pull:`962`, :pull:`984`,
:pull:`972`)
* Add spell checking (:pull:`904`, :pull:`910`, :pull:`1015`)
* Improve links back to source in the documentation (:pull:`991`)
* Add case insensitivity tests for arbitrary equality (:pull:`975`)
* Fix incorrectly implicitly concatenated string in specifiers test
(:pull:`946`)
* Simpler else instead of assert in a check (:pull:`1027`, :pull:`1031`)
* Synchronize documentation and code for markers (:pull:`1008`)
* Use the GitHub Actions slim runner for the all pass check (:pull:`1021`)
* Use ``actionlint`` to check CI workflows (:pull:`1052`)
* Use Trusted Publishing (:pull:`893`, :pull:`1043`, :pull:`1045`,
:pull:`1051`)
* Use zizmor to check CI (:pull:`1035`)
* Test on first public release of CPython 3.11 and newer (:pull:`1056`)
Since the final release candidate: Faster ``canonicalize_name``,
especially on
Python 3.12 and 3.13, where performance regressed previously
(:pull:`1064`),
and reintroduce (deprecated) support for ``Version._.version``
(:pull:`1062`).
--
Ticket URL: <https://wiki.linuxfromscratch.org/lfs/ticket/5848#comment:4>
LFS Trac <https://wiki.linuxfromscratch.org/lfs/>
Linux From Scratch: Your Distro, Your Rules.
--
http://lists.linuxfromscratch.org/sympa/info/lfs-book
Unsubscribe: See the above information page