Skip to content

pyscf: Add version 2.14.0 - #2415

Draft
luhenry wants to merge 3 commits into
mainfrom
pyscf
Draft

luhenry wants to merge 3 commits into
mainfrom
pyscf

Conversation

@luhenry

@luhenry luhenry commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Compiles pyscf's own CMake-built libraries plus libcint, libxc and xcfun (fetched at build time), all loaded via ctypes with no CPython C-API extensions, so upstream's own wheels are py3-none-<platform> and one build serves every interpreter. Upstream publishes no riscv64 wheel.

Mirrors upstream's own release-pypi-aarch64 job.

Differs from upstream

  • ENABLE_SMD=OFF instead of upstream's Linux-job ON - keeps pyscf's own GPLv3 MNSOL solvent code out of the wheel.

Matrix: single build (py3-none), no interpreter matrix.

Testing

  • same as upstream's aarch64 job (ignores pyscf/adc, pyscf/pbc/df, pyscf/pbc/cc), plus pyscf/solvent since ENABLE_SMD is off.

License: wheel bundles libcint (Apache-2.0), libxc/xcfun (MPL-2.0) and OpenBLAS (BSD); upstream ships no licence text for any of them, so the build adds it.

Built on cp312.

Upstream ships py3-tagged wheels that are platform-specific fat wheels: no
CPython C-API extensions (no Python.h anywhere in pyscf/lib), just CMake-built
shared libraries (own code, libcint, libxc, xcfun) loaded via ctypes, so one
build serves every interpreter, matching upstream's own aarch64/x86_64 Linux
wheel jobs. libcint's x86 SIMD file (gout2e_simd.c) is not wired into its
build; pyscf's own C sources gate every x86-specific flag behind a compiler
check, so nothing here is riscv64-blocking.

Bundles LICENSE files for libcint (Apache-2.0), libxc/xcfun (MPL-2.0) and
OpenBLAS (BSD), none of which upstream's own official wheels carry despite
linking all four. ENABLE_SMD is left off (matching upstream's own macOS
build), which also keeps pyscf's own GPLv3-licensed MNSOL solvent code
(pyscf/lib/solvent) out of the wheel.
luhenry added a commit that referenced this pull request Sep 28, 2026
@luhenry
luhenry marked this pull request as draft September 28, 2026 07:11
@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://riseproject-dev.github.io/python-wheels/pr-preview/pr-2415/

Built to branch gh-pages at 2026-09-29 02:42 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

/work/pyscf still holds pyscf.egg-info from the --no-clean pip wheel
build step. python -c puts cwd on sys.path[0], so
importlib.metadata resolves that stale egg-info (no licenses/
subdirectory) instead of the installed wheel, and the licence
assertion sees an empty set. Move the check after the cd /tmp the
later import pyscf smoke test already relies on for the same
reason.
pytest's --import-mode=importlib still imports a nested test's ancestor
packages straight from the checkout's __init__.py by walking up the
filesystem, bypassing the installed wheel (gotcha 616). The checkout's
unrepaired .so then fails to find libopenblas.so.0, aborting
pyscf/lib/__init__.py partway through and cascading into 336
unrelated-looking AttributeErrors.

Fix by moving /work/pyscf/pyscf to /work/pyscf/pyscf-src right before the
pytest invocation and repointing the collection target and --ignore= globs
at the new path, the same approach gotcha 148 already uses.

This branch has not been deployed

No deployments
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.

1 participant