PKG-15601 + PKG-2624 — CF-align freethreading and debug build_type - #233
Open
skupr-anaconda wants to merge 15 commits into
Open
PKG-15601 + PKG-2624 — CF-align freethreading and debug build_type#233skupr-anaconda wants to merge 15 commits into
skupr-anaconda wants to merge 15 commits into
Conversation
Closed
Author
Staging artifact check —
|
| 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 CFpy_freethreading)PY_GIL_DISABLED/ emptylinkage_naturein build string- Single channel
ad-testing/label/py315
Notes
bin/python3.15still exists on debug builds from the genericpython/python3.1symlink chain; primary debug binaries arepython3.15d/python3.15td.
Verdict: artifacts at 5b800b4 match CF-align expectations for freethreading + debug build_type.
cbouss
reviewed
Jul 7, 2026
cbouss
left a comment
There was a problem hiding this comment.
I am not sure using AI is the right call for these kind of changes. It failed the alignment part at least.
Comment on lines
254
to
255
| - rm -f default.profraw # [osx] | ||
| - test ! -f default.profraw # [osx] |
| - python {{ ver2 }}.* *_debug_{{ abi_tag }} # [build_type == "debug"] | ||
| script_env: | ||
| - PY_INTERP_LINKAGE_NATURE={{ linkage_nature_env }} | ||
| - PY_INTERP_DEBUG={{ py_interp_debug }} |
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>
skupr-anaconda
force-pushed
the
py315b3-cf-align
branch
from
August 18, 2026 20:31
2e1c490 to
30c1cca
Compare
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>
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.
Summary
Experimental CF-alignment branch stacked on
py315b3/ PR #232:gil_type+os.environJinja with positivefreethreadingCBC key and linter-safe ternary headerbuild_typerelease/debug (unix only) with_debugbuild-string suffix and debugrun_exports; single upload channelad-testing/label/py315(nochannel_targetszip)Linter
conda-lint: 0 errors (fixes baselineparsing_jinja_failureonfrom_source_control)[linux and conda-forge]→[linux]; cmake tolerance without||before selectors;vcskip simplifiedTest plan
76f3ef5b)_debugbuild strings onad-testing/label/py31576f3ef5bpy315b3only after gates pass (user-driven)Made with Cursor