Skip to content

PKG-15601 + PKG-2624 + PKG-17264 — CF-align freethreading/debug on 3.15.0rc1 (main) - #233

Open
skupr-anaconda wants to merge 16 commits into
master-py3.15.0rc1from
py315b3-cf-align
Open

PKG-15601 + PKG-2624 + PKG-17264 — CF-align freethreading/debug on 3.15.0rc1 (main)#233
skupr-anaconda wants to merge 16 commits into
master-py3.15.0rc1from
py315b3-cf-align

Conversation

@skupr-anaconda

@skupr-anaconda skupr-anaconda commented Jul 6, 2026

Copy link
Copy Markdown

Summary

Ports approved PR #244 (3.15.0rc1 / LLVM 21 / tk 9) onto CF-align freethreading + build_type (debug) work from this branch.

Do not merge

Wait for two teammate approvals. Intentional main-channel delivery (not ad-testing/label/py315).

Links

Test plan

  • PBP graph green on HEAD (builds + tests)
  • Linter annex reviewed (non-blocking)
  • Confirm no upload_channels / testing labels in abs.yaml
  • Two approvals before merge

@skupr-anaconda

skupr-anaconda commented Jul 7, 2026

Copy link
Copy Markdown
Author

Staging artifact check — 5b800b4

Channel: staging 5b800b4 (64 entries = 32 builds × .conda + .tar.bz2)

Matrix (platform outputs)

Platform Variants
linux-64, linux-aarch64, osx-arm64 release GIL, release FT, debug GIL, debug FT (python + libpython-static each)
win-64 release GIL + release FT only (no debug — expected)
noarch python-freethreading, python-gil, python-jit (release/GIL only; no debug jit)

Repodata vs recipe

Check Example Status
FT build_number _0_cp315t
GIL build_number _100_cp315
Debug suffix _debug_ in build string
FT track feature free-threading ✓ (Anaconda naming)
FT site-packages lib/python3.15t/site-packages
ABI depends python_abi *_cp315 / *_cp315t

Example repodata: linux-64 debug FT python

Prefix layout (tarball inspection)

STDLIB_VER vs VERABI split (post 0f23f75 / f89183b / 58ec5c2):

Variant stdlib dir config dir lib / include
debug GIL lib/python3.15/ config-3.15d-* libpython3.15d.*, include/python3.15d/
debug FT lib/python3.15t/ config-3.15td-* libpython3.15td.*, include/python3.15td/

libpython-static debug FT: libpython3.15td.a, libpython3.15t.nolto.a, config symlink under lib/python3.15t/config-3.15td-*/.

Intentional divergences (unchanged)

  • track_features: free-threading (not CF py_freethreading)
  • PY_GIL_DISABLED / empty linkage_nature in build string
  • Single channel ad-testing/label/py315

Notes

  • bin/python3.15 still exists on debug builds from the generic python/python3.1 symlink chain; primary debug binaries are python3.15d / python3.15td.

Verdict: artifacts at 5b800b4 match CF-align expectations for freethreading + debug build_type.

@skupr-anaconda
skupr-anaconda requested review from cbouss and ifitchet July 7, 2026 17:36
@skupr-anaconda skupr-anaconda self-assigned this Jul 7, 2026
@skupr-anaconda
skupr-anaconda marked this pull request as ready for review July 7, 2026 17:36

@cbouss cbouss left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I am not sure using AI is the right call for these kind of changes. It failed the alignment part at least.

Comment thread recipe/meta.yaml Outdated
Comment thread recipe/meta.yaml Outdated
Comment thread recipe/meta.yaml Outdated
Comment thread recipe/meta.yaml
Comment thread recipe/meta.yaml Outdated
@skupr-anaconda skupr-anaconda changed the title PKG-15601 + PKG-2624 — CF-align freethreading and debug build_type PKG-15601 + PKG-2624 + PKG-17264 — CF-align freethreading/debug on 3.15.0rc1 (main) Aug 19, 2026
@skupr-anaconda
skupr-anaconda changed the base branch from py315b3 to master-py3.15.0rc1 August 19, 2026 08:32
@skupr-anaconda
skupr-anaconda requested a review from cbouss August 19, 2026 08:32
skupr-anaconda and others added 16 commits August 19, 2026 09:37
Replace gil_type/os.environ Jinja with positive freethreading CBC key and
build_type debug suffix on a single ad-testing/label/py315 channel.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use script YAML lists to avoid duplicate-key warnings and replace the
obsolete license_file_overspecified skip with only-lint missing_home so
conda-lint reports All checks OK on PBP.

Co-authored-by: Cursor <cursoragent@cursor.com>
…g keys

Document the
linkage_nature/linkage_nature_env divergence from conda-forge.
Wire PY_INTERP_DEBUG through Unix build scripts (was DEBUG_PY, so debug
variants never got --with-pydebug). Align libpython-static VERABI suffix
order with build_base (VER+THREAD+DBG). Skip cmake for freethreading like
conda-forge. Add core debug/zstd checks to run_test.py.

Co-authored-by: Cursor <cursoragent@cursor.com>
Debug Py_DEBUG builds install stdlib under lib/python${VER}${THREAD}/ while
lib/config artifacts use VERABI (e.g. libpython3.15d.so, config-3.15d-*).
build_base.sh was writing _sysconfigdata into lib/python3.15d/ which does not
exist. Introduce STDLIB_VER for stdlib paths. Drop obsolete skip-lints entry
that triggered unknown_check on current anaconda-linter.

Co-authored-by: Cursor <cursoragent@cursor.com>
build_base.sh already used STDLIB_VER for stdlib dirs; build_static.sh still
used VERABI (e.g. python3.15d/) so pushd to config-3.15d-* failed on debug
variants. Align with conda-forge VERABI_NO_DBG split for stdlib vs ABI paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
Debug builds name the PIC archive libpython3.15-pic.a (not 3.15d-pic.a);
build_static.sh copies that path. Align build_base.sh with conda-forge
VERABI_NO_DBG naming so libpython-static debug builds can find the file.

Co-authored-by: Cursor <cursoragent@cursor.com>
Debug builds install python3.15d but FindPythonLibs expects unprefixed
paths; add conda-forge-style symlinks for bin, lib, and include. Skip
python-jit when JIT is disabled (--enable-experimental-jit=no). Remove
stray default.profraw before the osx PGO artifact check.

Co-authored-by: Cursor <cursoragent@cursor.com>
Remove pydebug symlinks that mapped 3.15d artifacts onto unprefixed
paths. Gate the legacy FindPythonLibs cmake test to release GIL builds
only, matching the freethreading skip pattern.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use PY_FREETHREADING, PY_INTERP_DEBUG for optimization, CF debug symlinks
and BUILD_DETAILS copy; drop linkage/OLD_HOST/compiler_compat divergences.
Restore skip-lints, CF cmake gating, and remove run_test_py315.py.

Co-authored-by: Cursor <cursoragent@cursor.com>
Skip python-jit where build_base.sh disables experimental JIT; set
PYTHON_FOR_BUILD on Windows and patch find_python.bat after aka.ms
nugetclidl broke; align track_features and ninja test dep with CF.

Co-authored-by: Cursor <cursoragent@cursor.com>
Set PYTHON from the conda build env (PR #238 pattern) and drop the
find_python.bat patch plus PYTHON_FOR_BUILD workaround.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ke-no-system

- Skip FindPythonLibs cmake test for freethreading and debug builds
- Use cmake-no-system (latest on main) to avoid cmake/libzstd dyld abort on osx
- Restore CF-style double-backslash win path checks
- Document intentional drop of linkage_nature env Jinja vs conda-forge

Co-authored-by: Cursor <cursoragent@cursor.com>
Restore the cross-build pyc exclusion, remove the unsupported profraw cleanup and stale lint suppression, and express cmake gating as a linter-compatible selector.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bring rc1 version/sha, tk 9, osx clang 21 CBC pins, llvm-ar-21 wrappers,
refreshed patches from PR #244; drop testing upload_channels so PBP
defaults to pkgs/main. Keep freethreading + build_type CF-align.

Co-authored-by: Cursor <cursoragent@cursor.com>
@skupr-anaconda

Copy link
Copy Markdown
Author

Staging artifact check — 00142c8 (post-rebase HEAD of CF-align + rc1)

Channel: staging 00142c8 (64 entries = 32 builds × .conda + .tar.bz2)
Graph: 5316e58f — 52/52 build+test success; linter red (known duplicate-script cascade, non-blocking)

Matrix (platform outputs)

Platform Variants
linux-64, linux-aarch64, osx-arm64 release GIL, release FT, debug GIL, debug FT (python + libpython-static each)
win-64 release GIL + release FT only (no debug — expected)
noarch python-freethreading, python-gil, python-jit unix + python-jit win (release/GIL jit only; no debug jit)
osx-64 empty (expected: no osx-x86_64 builder / FT skip)

Repodata vs recipe

Check Example Status
Version 3.15.0rc1
FT build_number _0_cp315t
GIL build_number _100_cp315
Debug suffix _debug_ in build string
FT track feature py_freethreading ✓ (CF name)
FT site-packages lib/python3.15t/site-packages
GIL site-packages lib/python3.15/site-packages
ABI depends python_abi * *_cp315 / *_cp315t
Debug run_exports python 3.15.* *_debug_cp315 / *_debug_cp315t
tk tk >=9.0.4,<9.1.0a0

Example: linux-64 debug FT python

Prefix layout (tarball inspection)

STDLIB vs VERABI split:

Variant stdlib dir config dir lib / include
debug GIL lib/python3.15/ config-3.15d-* libpython3.15d.*, include/python3.15d/
debug FT lib/python3.15t/ config-3.15td-* libpython3.15td.*, include/python3.15td/
release FT lib/python3.15t/ bin/python3.15t

libpython-static debug FT: libpython3.15td.a, libpython3.15t.nolto.a, config copy under lib/python3.15t/config-3.15td-*/.

Intentional divergences (unchanged)

  • track_features: py_freethreading (CF name; not Anaconda free-threading)
  • Empty linkage_nature in the build string (no _shared/_static)
  • No testing upload_channels / labeled channels: — PBP default destination is pkgs/main (do not merge until two approvals)

Notes

  • bin/python3.15 still exists on debug builds from the generic python/python3.1 symlink chain; primary debug binaries are python3.15d / python3.15td.
  • Two python-jit noarch builds: __unix vs __win (expected).

Verdict: artifacts at 00142c8 match CF-align expectations for freethreading + debug build_type on 3.15.0rc1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants