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.11.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b15415d0cd72518defb4ca75ad963471a77b7acda44836177b400c910027d6fb |
|
MD5 | 2aca806929b0fe03c7813f329a12eec9 |
|
BLAKE2b-256 | d6062b2b1f380a8f628af7c0fbc71e6c03f6bfdc3b84f8f8b746079c31fc93d8 |
Hashes for dive_bin-0.11.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2645affe0475d6f5d6b9c4d3582270ba23b5e78f091c1913d088de6ab6805984 |
|
MD5 | 3e5cf8facec23712d2bb14c5dc7ba304 |
|
BLAKE2b-256 | f304d8187671c02682ebacdca189576f8afaa48ed17547544dfc6e3f9445fc71 |
Hashes for dive_bin-0.11.0-py3-none-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9894b45ec94d9a9fa5af2c468015ded8502b0943c87b1b11991d946c3eaa2be |
|
MD5 | def87fb002fd8eaf33a518c53994e3f1 |
|
BLAKE2b-256 | d6d8dfbac0187b388908fd86c34cd693da00a824758ce855d2c333eff55b30b4 |
Hashes for dive_bin-0.11.0-py3-none-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4324af8fcc95eeddc0ce1cad94af1540e65ab51235fe881610dd58c67d447e12 |
|
MD5 | aba88d840443150859e84b77dfeb3b97 |
|
BLAKE2b-256 | 3211043efedb9d4e312b0ece53125b1f8289d2df8bb724d8b048d53d8f0813e8 |