A thin wrapper to distribute https://github.com/casey/just via pip.
Project description
pybin
This project was inspired by how Maturin packages rust binaries. The key observation is that in the wheel format, the distribution-1.0.data/scripts/ directory is copied to bin, which means we can leverage this to seamlessly copy binaries into a user's PATH.
Combined with Python's platform-specific wheels, this allows us to use pip as a "cross-platform package manager" for distributing single-binary CLI applications.
Wheel Building Process
The core of the logic lies in the buildlib.py
module.
- A mapping from download URL (often github releases) to pypi platform tag is required.
- For each platform:
- Download the release & extract the binary.
- Set file permissions and place into scripts directory within wheel archive.
- Create the METADATA and WHEEL files within wheel archive.
- Place wheel into
dist/
folder.
- Once all wheels are constructed, the distribution is uploaded to PyPI.
CICD is configured to automatically recognize new PyPI releases by looking for a diff on the PYPI_VERSION. When this happens, a build-and-release cycle is performed for that release version.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for just_bin-0.0.1a2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc0dc6b11676f44bf4ce8b3b535955d11b12ed874e982dff3b21a1b41e8b0977 |
|
MD5 | 584e4b51392a5a587eaf307242f521e2 |
|
BLAKE2b-256 | 960899889429bcef0a3e21099fc890fa22b3fdc208e65aa3af25be50beef2046 |
Hashes for just_bin-0.0.1a2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3f70c7a35f92a012cb632a9a1991213058d96b76717255c03c2c23a8aa5c475 |
|
MD5 | 30f250f1f79b4a1746ab509d1ce6b859 |
|
BLAKE2b-256 | 7862e7039491f46986673f4307cc44b43ce59291efaac18d2cdb053bb6a027ad |
Hashes for just_bin-0.0.1a2-py3-none-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45693dd8d57c39ca73cf75f49aaebe48c54cfa5a88e3ecc36ed9d7d4ddaf5229 |
|
MD5 | 104011e7bb789384d13a502cf83d6f37 |
|
BLAKE2b-256 | dde8f92fa8833555808c42b58ae888014f56724d45944427a01661ff68116a6d |
Hashes for just_bin-0.0.1a2-py3-none-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09062d3130dbce85a85c884ed6e60e5d2b8f20d5cc209222b13a0a8cf726cb9b |
|
MD5 | cd3d2a511b644fce1d76c3f84fbbafde |
|
BLAKE2b-256 | 32b054d6846095eb60d4c5f3883c4249d34e1fb42f14489edf55d0f04966cc36 |