Files
python314/gh138131-exclude-pycache-from-digest.patch
Matej Cepl 089998e4e3 - Summary – Release highlights
Python 3.14 is the latest stable release of the Python
  programming language, with a mix of changes to the language,
  the implementation, and the standard library. The biggest
  changes include template string literals, deferred evaluation
  of annotations, and support for subinterpreters in the standard
  library.
  The library changes include significantly improved capabilities
  for introspection in asyncio, support for Zstandard via a new
  compression.zstd module, syntax highlighting in the REPL, as
  well as the usual deprecations and removals, and improvements
  in user-friendliness and correctness.
  - Interpreter improvements:
    - PEP 649 and PEP 749: Deferred evaluation of annotations
    - PEP 734: Multiple interpreters in the standard library
    - PEP 750: Template strings
    - PEP 758: Allow except and except* expressions without
      brackets
    - PEP 765: Control flow in finally blocks
    - PEP 768: Safe external debugger interface for CPython
    - A new type of interpreter
    - Free-threaded mode improvements
    - Improved error messages
    - Incremental garbage collection
  - Significant improvements in the standard library:
    - PEP 784: Zstandard support in the standard library
    - Asyncio introspection capabilities
    - Concurrent safe warnings control
    - Syntax highlighting in the default interactive shell, and
      color output in several standard library CLIs

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python314?expand=0&rev=104
2025-10-08 09:45:59 +00:00

31 lines
1.4 KiB
Diff

From 4bb41b28d5bac09bccd636d8c5fefe1a462f63a7 Mon Sep 17 00:00:00 2001
From: Alm <alon.menczer@gmail.com>
Date: Mon, 25 Aug 2025 08:56:38 +0300
Subject: [PATCH 1/4] Exclude .pyc files from the computed digest in the jit
stencils
---
Tools/jit/_targets.py | 3 +++
1 file changed, 3 insertions(+)
Index: Python-3.14.0rc2/Tools/jit/_targets.py
===================================================================
--- Python-3.14.0rc2.orig/Tools/jit/_targets.py
+++ Python-3.14.0rc2/Tools/jit/_targets.py
@@ -69,6 +69,9 @@ class _Target(typing.Generic[_S, _R]):
hasher.update(PYTHON_EXECUTOR_CASES_C_H.read_bytes())
hasher.update((self.pyconfig_dir / "pyconfig.h").read_bytes())
for dirpath, _, filenames in sorted(os.walk(TOOLS_JIT)):
+ # Exclude cache files from digest computation to ensure reproducible builds.
+ if dirpath.endswith("__pycache__"):
+ continue
for filename in filenames:
hasher.update(pathlib.Path(dirpath, filename).read_bytes())
return hasher.hexdigest()
Index: Python-3.14.0rc2/Misc/NEWS.d/next/Build/2025-08-27-09-52-45.gh-issue-138061.fMVS9w.rst
===================================================================
--- /dev/null
+++ Python-3.14.0rc2/Misc/NEWS.d/next/Build/2025-08-27-09-52-45.gh-issue-138061.fMVS9w.rst
@@ -0,0 +1 @@
+Ensure reproducible builds by making JIT stencil header generation deterministic.