Conversation
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
marked this pull request as draft
September 28, 2026 07:11
Contributor
|
/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
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.
pyscf2.14.0Compiles 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-aarch64job.Differs from upstream
ENABLE_SMD=OFFinstead of upstream's Linux-jobON- keeps pyscf's own GPLv3 MNSOL solvent code out of the wheel.Matrix: single build (
py3-none), no interpreter matrix.Testing
pyscf/adc,pyscf/pbc/df,pyscf/pbc/cc), pluspyscf/solventsinceENABLE_SMDis 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.