Conversation
Fully vendored C++ sources (libsass submodule) compile cleanly with no external deps; abi3 wheel floors at cp312 since setup.py's own bdist_wheel override picks the building interpreter's version.
PySass_make_enum_dict and PySass_init_module are defined in _sass.c with default (extern) visibility but are only called from within that same file. Since the extension is built against Py_LIMITED_API, abi3audit --strict flags both as non-abi3 symbols leaking from the .abi3.so. Patch upstream to mark them static, apply it before the cibuildwheel step, and add patches/libsass/** to the pull_request trigger paths.
sasstests.py opens fixtures like test/a.scss relative to the process
cwd, but cibuildwheel runs the test command from an empty temp dir, so
{package}/sasstests.py -v failed to collect with
FileNotFoundError: 'test/a.scss'. Stage sasstests.py plus its test/
and testpkg/ fixture dirs via CIBW_TEST_SOURCES and run against the
staged copy so the relative opens resolve, while leaving sass.py and
sassutils unstaged so imports still resolve to the installed wheel.
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.
libsass0.23.0Binds the vendored libsass C++ Sass compiler for compiling Sass/SCSS from Python. Upstream publishes no riscv64 wheel; both libsass-python and the vendored libsass library are archived upstream (deprecated in favor of Dart Sass) but still build and test cleanly on riscv64.
Differs from upstream
license_fileslist only names the wrapper's licence.setuptools<82for the test environment only -sassutils/wsgi.pyimportspkg_resources, which setuptools 82 removed.Matrix: cp312/cp313/cp314 only - the abi3 wheel's floor tracks whichever interpreter builds it, and cp314t is dropped since the build forces abi3 unconditionally with no free-threaded case.
Testing
sasstests.py), aside from thesetuptoolspin above.License: Wheel bundles the compiled libsass C++ library (MIT); upstream ships only libsass-python's own licence text, so the build adds the vendored one.
Built on cp312; 107 passed, 0 skipped.