Skip to main content

A thin wrapper to distribute https://github.com/cli/cli 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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gh_bin-2.68.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (12.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64musllinux: musl 1.1+ ARM64

gh_bin-2.68.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (13.1 MB view details)

Uploaded Python 3manylinux: glibc 2.12+ x86-64musllinux: musl 1.1+ x86-64

gh_bin-2.68.1-py3-none-macosx_11_0_arm64.whl (12.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

gh_bin-2.68.1-py3-none-macosx_10_9_x86_64.whl (13.6 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file gh_bin-2.68.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for gh_bin-2.68.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 67bc23a73510f80953b25155af8e0884e76c95a82b4b7013fff78c93904ccb11
MD5 49fc1350e663593699121cbcaf9813cc
BLAKE2b-256 901b083157c3a84c85cb07c3e5dfd7c5a1040411f94311a3f581df1091741248

See more details on using hashes here.

File details

Details for the file gh_bin-2.68.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for gh_bin-2.68.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f95f6f56ff1b865b49b5ea543b0deb1ee3da499dac4ef1cfe55caa0c2b2c338a
MD5 5c7201b0b6dd07f6641156c61977f12b
BLAKE2b-256 1556f2d2fbdcf829fdb68061f5980e4082ef0f37223d0adfaadb9bb624cabd03

See more details on using hashes here.

File details

Details for the file gh_bin-2.68.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for gh_bin-2.68.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 731c6a4914833c638c6bb63f25312b9811f3ecf9d8ac2b79c96a977dfd75986a
MD5 897261ec2212a1416b4523a1ac33252e
BLAKE2b-256 5d514a5f8d69f1a9750a632f65bfc230a86c693fe114b856e519601c5921d056

See more details on using hashes here.

File details

Details for the file gh_bin-2.68.1-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for gh_bin-2.68.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a12414c63f4169846338c044f973331c66fa3c7de080db5ccd3ee4f8879ad39e
MD5 14da19e3ce27d89fa582331af8330ee6
BLAKE2b-256 173b0b04f5de155d03f833dd5b7217be8bc71cc6426b7a051cd3fe52babd695a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page