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.
This is the list of tools bundled this way, which can be installed with pip install $TOOLNAME-bin.
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.
Metadata
Release files for copilot-bin 1.34.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| copilot_bin-1.34.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64, Linux musl 1.1+ ARM64 | Details |
| copilot_bin-1.34.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl | Python 3 | none | Linux musl 1.1+ x86-64, Linux glibc 2.12+ x86-64 | Details |
| copilot_bin-1.34.1-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| copilot_bin-1.34.1-py3-none-macosx_10_9_x86_64.whl | Python 3 | none | macOS 10.9+ x86-64 | Details |
Total release size: 51.1 MB
Release files / copilot_bin-1.34.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
| Download URL | copilot_bin-1.34.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl |
|---|---|
| Size | 12.0 MB |
| Tags | Linux glibc 2.17+ ARM64 Linux musl 1.1+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
fdd95471212749a64616a1faff91f3bd778870d3a41fa5b9c72457f34ed1d04b
|
|
BLAKE2b-256 checksum How to use checksums |
036adaa5f0051c71e7b72557d869b7d1f0ce522ef23d95c7a49213ca000b29ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.4
|
Release files / copilot_bin-1.34.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
| Download URL | copilot_bin-1.34.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl |
|---|---|
| Size | 13.0 MB |
| Tags | Linux glibc 2.12+ x86-64 Linux musl 1.1+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
14131fd5cc197612645c42034b76eb56cdd649191f73940afd6d1dc4c8dd999f
|
|
BLAKE2b-256 checksum How to use checksums |
af097bfa907f1ff8f5fcd8c94123596dcbcddec462e795390a3cc04015be8d44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.4
|
Release files / copilot_bin-1.34.1-py3-none-macosx_11_0_arm64.whl
| Download URL | copilot_bin-1.34.1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
83ce8e48478ba52f6b13d9b14d1f5a548f10207c3a4d01d7597399454961115b
|
|
BLAKE2b-256 checksum How to use checksums |
17166a910a225a87ffd032f4a9eb09635bbea563228e277a1729de3bfb3facb3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.4
|
Release files / copilot_bin-1.34.1-py3-none-macosx_10_9_x86_64.whl
| Download URL | copilot_bin-1.34.1-py3-none-macosx_10_9_x86_64.whl |
|---|---|
| Size | 13.4 MB |
| Tags | Python 3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
5a44e21ac72710aa742c80c5b6197d55ff93a86fa2a32c903d78fabb34860450
|
|
BLAKE2b-256 checksum How to use checksums |
4be99d6591c5845ed1fb4d637ac47851a20d9404b062974286d9ea89cf96d2af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.4
|