Skip to main content

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

dbmate_bin-2.22.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (10.2 MB view details)

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

dbmate_bin-2.22.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (11.2 MB view details)

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

dbmate_bin-2.22.0-py3-none-macosx_11_0_arm64.whl (10.2 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

dbmate_bin-2.22.0-py3-none-macosx_10_9_x86_64.whl (10.9 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

Details for the file dbmate_bin-2.22.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for dbmate_bin-2.22.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 202080305d6483b3013b574d3e7c374624883213ae594a06e960a92cd82977b6
MD5 40f39b54c36deb048d57414c791b77eb
BLAKE2b-256 0da55fd4670d46588d30655aed78a038fd8b568b9c1150e87e84cd267d212323

See more details on using hashes here.

File details

Details for the file dbmate_bin-2.22.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for dbmate_bin-2.22.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6443ab623eb30684616b9e20f5003eec83a3937ec26dc2dff2cb4908eeda24c4
MD5 ab7fb79473ca283f798e91c85c42fbab
BLAKE2b-256 81ce684095b19607da65215e88e0d87a465e974f20ba2b937fc7c1fa4b5a92aa

See more details on using hashes here.

File details

Details for the file dbmate_bin-2.22.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbmate_bin-2.22.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8250446ea3dfe46a8132d6e04d05c9f7d0119cfdb6a9f9bcc69df849683fee7e
MD5 7cfb09db68eb2abff8f06358db29550b
BLAKE2b-256 f5f02bc71b4c108dbb2408951cfb6a82fff9b458cbecf5eca3dbdaa5f6b0a958

See more details on using hashes here.

File details

Details for the file dbmate_bin-2.22.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for dbmate_bin-2.22.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8ed75f97320622982481f5eb33c909a558edc960d6eb537fa8bd1d63c02c2284
MD5 f07cf3c08e58421a48f5f8ca3356dd91
BLAKE2b-256 096978923283a5b322c7f43dcb0d76fa7d452300fa15d939e92d0a1067ba530d

See more details on using hashes here.

Supported by

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