Page MenuHomeFreeBSD

lang/python313: add port
AbandonedPublic

Authored by ngie on Jun 10 2025, 4:49 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Jul 15, 12:32 AM
Unknown Object (File)
Sun, Jul 6, 12:07 AM
Unknown Object (File)
Jun 29 2025, 1:36 PM
Unknown Object (File)
Jun 27 2025, 4:15 PM
Unknown Object (File)
Jun 24 2025, 5:48 PM
Unknown Object (File)
Jun 24 2025, 5:39 PM
Unknown Object (File)
Jun 18 2025, 6:17 PM
Unknown Object (File)
Jun 18 2025, 11:45 AM
Subscribers

Details

Reviewers
None
Group Reviewers
Python
Summary

This change adds lang/python313 and the corresponding flavor (py313) to
the ports tree. This target version chosen was 3.13.4, as it was the
latest 3.13.x release.

This release makes several changes compared to the prior series (3.13.x)
as noted in the What's New in Python 3.13 page.

Some highlights are:

  • Better interactive interpreter support/error messaging.
  • Some module import times have improved by refactoring the relevant modules.

Important module changes:

  • Removal of several "dead batteries" modules, e.g., cgi, crypt, nis, etc.
  • ssl: ssl.VERIFY_X509_PARTIAL_CHAIN and ssl.VERIFY_X509_STRICT are now set by default.
  • Removal of lib2to3, et al.
    • This can break some packages which rely on lib2to3 like devel/py-future, devel/py-six, etc.
  • ctypes was refactored.
    • Code which relied on __new__ to initialize certain behaviors/properties will now need to use __init__.
  • dbm now has a corresponding sqlite3 module.
  • importlib: several functions previously marked deprecated were "undeprecated".
  • pathlib: various improvements have been added in the recursive globbing space and new exceptions have been added to refine error handling.
  • pdb: evaluation order is changed of certain operations, making calls like breakpoint() function in a more intuitive manner.
  • subprocess: posix_spawn(3) is used more liberally.
  • typing: various new objects have been added to the module and semantics have similarly been improved.

The following features are not enabled, but may become options in later
versions of the port:

  • "Free Threaded Python": a no GIL (Global Interpreter Lock) mode.
  • Experimental JIT compiler.

PR: 287408

Test Plan
  • make stage-qa passes.
  • make check-plist passes.

TODO: run make test.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 64738
Build 61622: arc lint + arc unit

Event Timeline

ngie requested review of this revision.Jun 10 2025, 4:49 AM
ngie created this revision.
ngie edited the test plan for this revision. (Show Details)
ngie added a reviewer: Python.
ngie edited the summary of this revision. (Show Details)
lang/python313/pkg-plist
2486–2488

%%ABI%% was accidentally hardcoded here.

2511–2512

%%ABI%% was accidentally hardcoded here.

2515

%%ABI%% was accidentally hardcoded here.

ngie marked 3 inline comments as not done.Jun 10 2025, 4:58 AM

This is a duplicate of D49680. There is still far too much work to do on this port alone.

This is a duplicate of D49680. There is still far too much work to do on this port alone.

*nod*. I've abandoned this and will look at your's.