Conversation
Pure-C LZSS compression/decompression extension, no native dependencies. Builds against the manylinux_2_39/musllinux_1_2 riscv64 images for cp312-cp314t. Adds patches/pylzss/0.3.8/0001-*.patch to ship py3c's MIT LICENSE in dist-info/licenses/ - the vendored src/include/py3c headers compile straight into the extension but their notice lives only as a header comment, so setuptools' default root LICEN[CS]E*/COPYING* glob never picks it up (verified against the real PyPI wheel, which ships only COPYING/COPYING.LESSER). The CI test command exercises a real compress/decompress round trip rather than upstream's checked-in test.py, which calls lzss.encode()/decode() - an API the extension has never exported (it's compress()/decompress()); neither of upstream's own CI workflows runs test.py, so that mismatch has gone unnoticed there.
luhenry
added a commit
that referenced
this pull request
Sep 7, 2026
…pening-quote line YAML folds the newline after "python -c "" into a single space, giving the resolved command a leading space before the first statement. cp312/ cp313 reject that with IndentationError: unexpected indent (cp314+ tolerates it, per gotcha 247), which is exactly why every cp312/cp313 job failed while cp314/cp314t passed on the first CI run.
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.
pylzss0.3.8Compiles a single setuptools
Extension(src/pylzss.c) implementing LZSS compression/decompression ascompress/decompress. Upstream publishes no riscv64 wheel.Mirrors upstream's
pypi-build-publish.yml.Differs from upstream
Testing
.dist-info/licenses/; upstream's checked-intest.pycalls a non-existentlzss.encode()/decode()API and is never run by upstream's own CI.License: Wheel bundles the vendored
py3ccompat headers (MIT, Red Hat) compiled straight into the extension, whose notice otherwise ships nowhere; the build addsLICENSE.py3c.Patches
0001-ship-py3c-s-MIT-LICENSE-in-the-wheel-s-dist-info.patch- To upstream [not filed against m1stadev/pylzss from this automated port]. Without it the wheel ships py3c's compiled-in MIT code with no licence text. Reproduces on any architecture, not riscv64-only.Built on cp312/cp313/cp314/cp314t, manylinux and musllinux; all 8 wheels built and smoke-tested, publish dry-run OK.