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.23.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.23.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.23.0-py3-none-macosx_11_0_arm64.whl (10.2 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

dbmate_bin-2.23.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.23.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for dbmate_bin-2.23.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 1d72d2fe4a46c67cde631325e35dd40137585c2fd7546c0e772f21b26e3e6ed5
MD5 44ae0a4ede918840b456a1092e52a0e9
BLAKE2b-256 73b0d6e5c9e2d614a12b28f9dc4cfc6fa4044070615dcfed38164c4cb830b8cf

See more details on using hashes here.

File details

Details for the file dbmate_bin-2.23.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.23.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 94894887e6241e4b2dfd55d33ea57496f9218257d0c9905248bc4afac197924d
MD5 eefee294a2dfa33e992fee0e7e857f59
BLAKE2b-256 abfefa82eeaaa6909b30b0fc6bdb9054c7f4b27ff0e2a727832a4112adc0d0b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbmate_bin-2.23.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9a06fa1ce2c834c814d0eb23805165642deaed99c11d88d65cb993b6f4dd816a
MD5 ea8dacf74103caa4eb15fa3950cb6c8d
BLAKE2b-256 b8974fc1b4e69331435d3987aacb798182ed956c3278842ce7ec5efb95d0d9f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbmate_bin-2.23.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7f63aa64c9f395e348a69836ab8ed4ce7472d1fc93cc7c38896ece69d824cd87
MD5 b7028caf9a07643299ac1774548e7c07
BLAKE2b-256 2c0fe4ee28e5982687591526dd42509440f80e4a87c2c5029258a6097b3455ed

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