Conversation
Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
Closed
Contributor
Author
|
If someone things we need an RC, now's the time to bring it up. Let me know if you approve this and don't approve a release yet, as otherwise I'll assume sign-offs here are sign-offs for release too. |
notatallshaw
approved these changes
Apr 13, 2026
brettcannon
approved these changes
Apr 13, 2026
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Features:
abi3.abi3tfree-threading tag by @ngoldbaum in Add support for abi3.abi3t tag from PEP 803 #1099packaging.dependency_groupsmodule, based on thedependency-groupspackage by @sirosen in feat: add a newpackaging.dependency_groupsmodule, based on the existingdependency-groupspackage #1065packaging.direct_urlmodule by @sbidoul in feat: direct_url #944packaging.errorsmodule by @henryiii in feat: errors.py #1071SpecifierSet.is_unsatisfiableusing ranges (new internals that will be expanded in future versions) by @notatallshaw in Implementis_unsatisfiableonSpecifierSetusing ranges #1119create_compatible_tags_selectorto select compatible tags by @sbidoul in Add utility to select things with compatible tags #1110keyargument toSpecifierSet.filter()by @frostming in feat: add akeyargument toSpecifierSet.filter()#1068&and|forMarker's by @henryiii in feat: marker & and | #1146Version.__replace__and addVersion.from_partsby @henryiii in feat: normalize replace & add from_parts #1078parse_wheel_filenameby @r266-tech in feat: option to validate compressed tag set sort order inparse_wheel_filename#1150Behavior adaptations:
<V.postNto match spec by @notatallshaw in Narrow <V.postN pre-release exclusion to match spec #1140>Vto match spec by @notatallshaw in Narrow >V post-release exclusion to match spec #1141format_full_versionto_format_full_versionto make it visibly private by @r266-tech in Rename format_full_version to _format_full_version to make it visibly private #1125Pylock (PEP 751) updates:
selectfunction by @sbidoul in Add pylock select function #1092select()method andPylockSelectErrorby @r266-tech in docs(pylock): document select() method and PylockSelectError #1153filenameproperty toPackageSdistandPackageWheel, more validation by @sbidoul in pylock: add filename property to PackageSdist and PackageWheel, more validation #1095Fixes:
>comparison for versions with dev+local segments by @veeceey in Fix > comparison for versions with dev+local segments #1097InfinityTypeandNegativeInfinityTypeby @bysiber in Fix incorrect self-comparison for InfinityType and NegativeInfinityType #1093SpecifierSetby @notatallshaw in fix: Need to canonicalize when deduplicating specifiers inSpecifierSet#1109keyparameter inSpecifierSet.filterwhen specifiers are empty and prerelease isFalseby @notatallshaw in fix: handle key parameter in SpecifierSet.filter for empty specifiers and prerelease is false #1096reproutput by @henryiii in fix: standardize inner parts of reprs #1090Specifier's===uses original string, not normalized, when available by @notatallshaw in fix(specifiers): === uses original string, not normalized, when available #1124ValueErrorby @notatallshaw in Propagate int-max-str-digits ValueError #1155Performance:
VersiontoVersioncomparison by skipping_keyproperty by @notatallshaw in perf: Add fast path forVersiontoVersioncomparison by skipping_keyproperty #1083Versionhash value in dedicated slot by @notatallshaw in perf: CacheVersionhash value in dedicated slot #1118_cmpkeyto remove use of custom objects by @notatallshaw in perf: Overhaul_cmpkeyto remove use of custom objects #1116__replace__in Specifier comparison if not needed by @notatallshaw in perf: Skip__replace__in Specifier comparison if not needed #1081SpecifierSetusetupleinstead offrozensetfor_specsby @notatallshaw in perf: SpecifierSet use tuple instead of frozenset for_specs#1108SpecifierSetfiltering by implementing cost-based ordering by @notatallshaw in perf: Speed up complex SpecifierSet filtering by implementing cost based ordering #1105SpecifierSet.filterby @notatallshaw in perf: Stream PEP440 filtering inSpecifierSet.filter#1076__slots__toMarkerby @henryiii in perf: add __slots__ to Marker #1147Specifierregex by @sirosen in perf: simply Specifier regex #1106Internal:
collections.namedtuplein tests by @henryiii in tests: clean up a few collections.namedtuple #1070dir()/ tab-completion in REPL by @henryiii in chore(tags): limit dir / tab-completion in REPL #1011__all__/__dir__by @henryiii in chore: add more __all__/__dir__ #1069SpecifierSet.prereleasesby @notatallshaw in Simplify combingSpecifierSet.prereleases#1073_compare_compatibleby @notatallshaw in Use direct operator methods in_compare_compatible#1100Specifier.prereleasesby @notatallshaw in Remove unnecessary if statement inSpecifier.prereleases#1074Specifier.prereleasesby @notatallshaw in Remove unneeded nesting inSpecifier.prereleases#1072Documentation:
Version.from_parts()by @Jackenmen in Fix versionadded for Version.from_parts() #1134&and|operators for combiningMarkerobjects by @r266-tech in docs(markers): document & and | operators for combining Marker objects #1151Versiondocumentation by @henryiii in docs: fill out and clean up Version page a little #1089New Contributors
Full Changelog: 26.0...26.1