A thin wrapper to distribute https://github.com/wagoodman/dive 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.
Catalog
pip install dive-bin
: pybin version, upstream sourcepip install just-bin
: pybin version, upstream sourcepip install lazydocker-bin
: pybin version, upstream source
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 dive_bin-0.0.1a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95d338016f77923dbc2f5e4856bc59f9c72ef4e457d9ad1b48efb2e7837867ce |
|
MD5 | f8b26710675bb7f6fc5ee939314b1f3f |
|
BLAKE2b-256 | c18f7c777e5a88f2a75b80f609448cb8eb5fb7e496881cb4c7bca94f5eb8e18f |
Hashes for dive_bin-0.0.1a1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 855c09d4267d00de0c03253a9f9d93801a2d908fc08b1ee11731ac6ad8305ea1 |
|
MD5 | 0c2814dc1ef44dc0f8014877e21343b6 |
|
BLAKE2b-256 | ffcea53df4359276fd4d7f12c7b0bbe46370b0947829433987cf293aab44e1e4 |
Hashes for dive_bin-0.0.1a1-py3-none-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e54da7a7bb984aba0b51125f86d78d884413a3b6b6e3abf4f80667334a53b08d |
|
MD5 | 9090cb2045dccb4a7d6bddae1c0981c1 |
|
BLAKE2b-256 | cd421634b55d5ac39a9655a15b76f877f4e50ad403b6ee3b8b691fa29976cb61 |
Hashes for dive_bin-0.0.1a1-py3-none-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddcd3ec9afeabc3806bdd8b9d12b0dbd20583fa4b859f75fa2f0835e8e58abcc |
|
MD5 | d81a64e40549c35db1ac0f9c14ff2412 |
|
BLAKE2b-256 | f01bc5550c9522d630180494734523bf2d6ac07e19c9d7411e6a51b318644872 |