Skip to content

Make kson-lang for Python wheel-only - #429

Open
holodorum wants to merge 2 commits into
kson-org:mainfrom
holodorum:fix/python-sdist-publishing
Open

Make kson-lang for Python wheel-only#429
holodorum wants to merge 2 commits into
kson-org:mainfrom
holodorum:fix/python-sdist-publishing

Conversation

@holodorum

Copy link
Copy Markdown
Collaborator

kson-lang wraps a native library. The sdist bundled a whole Gradle build so it could try to produce one at install time — a vendored wrapper, a buildSrc copy, MANIFEST.in entries to ship it all, and CI jobs to exercise it.

Making and keeping this working added quite a lot of complexity, instead we decided to make wheels the supported way to install, the sdist is source, not a buid.

What this means for users

Installing needs a published wheel. When none matches, pip falls back to the sdist and it refuses immediately with a pointer to building from source, rather than failing part-way through a Gradle run:

RuntimeError: Cannot build kson-lang for darwin: libkson.dylib, jni_simplified.h missing from .../src/kson.
Those are Gradle output. kson-lang ships prebuilt wheels carrying them, so either none matched this platform and Python version and pip fell back to the source distribution, or this is a checkout where the Gradle build has not run.
Either way, "Build from source" in the readme is the way to get them:
    git clone https://github.com/kson-org/kson.git
    cd kson && ./gradlew :lib-python:build

The sdist still goes to PyPI. It puts the source there; every installable artifact is a wheel.

Previously artifacts downloaded from CircleCI where Zip folders. Now it
was a wheel directly. Update the doc to reflect that.
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