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 hadolint-bin
: pybin version, upstream sourcepip install just-bin
: pybin version, upstream sourcepip install lazydocker-bin
: pybin version, upstream sourcepip install scc-bin
: pybin version, upstream sourcepip install usql-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.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | daad905a17ad588d8ad511f524e5132c59a68bd4c8c11d0ede3bb308309ff964 |
|
MD5 | ce811e47c95325b340041b8abaf93abb |
|
BLAKE2b-256 | e8044a6cea502dcc1493a7dc88ba3c0082bf7d87cf30dc2ab569f76a1a37da3f |
Hashes for dive_bin-0.12.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63048fee8ccbc53a06e7f66c42eb7ec6e18e65de997c14fb669a8e4d07a46846 |
|
MD5 | 0a306aa97399d4430c2d5b1ded8a0a39 |
|
BLAKE2b-256 | 11e4a11c9ff746e2d3eb0c0c69e667e5c2aee644fa709964ca081b96a3784f20 |
Hashes for dive_bin-0.12.0-py3-none-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 447afb34880e71281d75520eb857d6effb831dde709b3ad3a158d1e26df41d78 |
|
MD5 | 754954623309824d64b125a074555c14 |
|
BLAKE2b-256 | 97e78ab97254c498e3a844e611b76f484901555164a3b5a2f266cefc372dbbc5 |
Hashes for dive_bin-0.12.0-py3-none-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a7a9f620df6faf09f30d49612b56be4b5b87009baafa8cf6f6ce0832bc192d1 |
|
MD5 | 8cbc152e5b5bc4f510845618974ca011 |
|
BLAKE2b-256 | 4afd842a9d3c6a57adbb89336800727b04ae384f94253f8597367ddf19d706b2 |