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

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

dbmate_bin-2.25.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (10.4 MB view details)

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

dbmate_bin-2.25.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (11.3 MB view details)

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

dbmate_bin-2.25.0-py3-none-macosx_11_0_arm64.whl (10.3 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

dbmate_bin-2.25.0-py3-none-macosx_10_9_x86_64.whl (11.0 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for dbmate_bin-2.25.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5289f2cb236946f2c03752cf3785db9118962a54cc5e99b7f37a30edbe036ef9
MD5 6091c5abc7a45a04ddb50a3d912d99dd
BLAKE2b-256 32920b3607ed58edc90d86e5fd57e5301bf8539a7c5d5d279519eae9792b7454

See more details on using hashes here.

File details

Details for the file dbmate_bin-2.25.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.25.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1984324982c9d58d4b94b738512ed8eaaf3ea30479fc457a7c47bafef97f19f0
MD5 a074293274e51c8c664caaefa33e95a6
BLAKE2b-256 20a124164007921d4e6695fe63ac34f3485e945dc3b8e0eab1db71bbd3e2a316

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbmate_bin-2.25.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd60161ec7c0ca78cbbe0ef63a70678ee1602c5d1574f1972afc96337aaee1bb
MD5 b471147a1230806ca51fdfd4e77daa16
BLAKE2b-256 6bb4cf5a7e631a9d77c212e806d086a6599c16de99eb6eb4d02c35204005e884

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbmate_bin-2.25.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c955473be69faa261698ff978334d0bba001701c834b6ee3552fa61a6f35926c
MD5 0f44dbfebc60e0a329a5b4c18e9afdeb
BLAKE2b-256 a46bf1e594ff9ebb7488951257404ba8245837afba886018d18ef8b8da74221f

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