Skip to content
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 26 additions & 1 deletion Doc/whatsnew/3.15.rst
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ Summary -- Release highlights
* :ref:`Improved error messages <whatsnew315-improved-error-messages>`
* :ref:`The official Windows 64-bit binaries now use the tail-calling interpreter
<whatsnew315-windows-tail-calling-interpreter>`
* :pep:`829`: Package Startup Configuration Files
* :pep:`829`: :ref:`Package Startup Configuration Files <whatsnew315-startup-files>`
Comment thread
warsaw marked this conversation as resolved.
Outdated

New features
============
Expand Down Expand Up @@ -452,6 +452,31 @@ If not using a build tool -- or when writing such a tool -- you can select
in :ref:`abi3-compiling`.


.. _whatsnew315-startup-files:

:pep:`829`: Startup Configuration Files
---------------------------------------
Comment thread
warsaw marked this conversation as resolved.

Loaded by the :mod:`site` module when ``-S`` is not given, :file:`.pth` files
can contain lines that both extend :data:`sys.path` and execute arbitrary code
when the line starts with ``import`` (followed by a space or tab). The latter
functionality can be problematic, since it is difficult to know exactly what
gets executed when Python starts up.
Comment on lines +460 to +464
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's link something to the new _site-pth-files reference here, perhaps link ".pth files"? Would likely need the :file: markup removed.

https://github.com/python/cpython/pull/149109/changes#diff-fdaae06c309c89bb3352a8d0485bcdb8f7ffe316a5d988238f7c7cd15741bd69


As a step towards improving the ability to audit pre-start executable code,
Python 3.15 introduces :file:`.start` files which contain entry point
specifications of the form ``pkg.mod:callable`` where ``pkg.mod`` is the
import path to the given callable. When Python starts up, the callable is
located and called with no arguments.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And link to _site-start-files somewhere here, perhaps ".start files".


``import`` lines in :file:`.pth` files are silently deprecated. When a
matching :file:`.start` file is found, ``import`` lines in :file:`.pth` files
are ignored. There is no change to :data:`sys.path` extension lines in
:file:`.pth` files.

(Contributed by Barry Warsaw in :gh:`148641`.)


.. _whatsnew315-improved-error-messages:

Improved error messages
Expand Down
Loading