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.26.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (10.5 MB view details)

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

dbmate_bin-2.26.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (11.5 MB view details)

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

dbmate_bin-2.26.0-py3-none-macosx_11_0_arm64.whl (10.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

dbmate_bin-2.26.0-py3-none-macosx_10_9_x86_64.whl (11.2 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for dbmate_bin-2.26.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 a7c510a9f000f1e71e2431f5ccc2f67ae957a1ae2068ea3e8598c1dd19c71088
MD5 3fadf3de7d77ca972f7dfd6b529eb734
BLAKE2b-256 8763e80b29ea1e407afd172dea3915aa997c3fb824969d1137da4ab17d727a4c

See more details on using hashes here.

File details

Details for the file dbmate_bin-2.26.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.26.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 666ec75d8b9ce6806f80150caf75a9714ccfbf0bec2ef5d7da5eeb8b4e477f1f
MD5 abc313cda85672fe0893449eb62815fc
BLAKE2b-256 8863111410c5c10174d3b87ec88a76f38df062288e39e454302e45f9374a29f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbmate_bin-2.26.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ef2e1dfa2ad0663ff31b5b4662b494576ccae77f4bec705aaa90c0ff0d48d85
MD5 60b558071725598afd9c480677dfcec1
BLAKE2b-256 3778f9ec22f4454824aed835e6a1376a9461157e42708424a4df32130a216271

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dbmate_bin-2.26.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3f447100a8179d9acc1cf5d3d46d3cfff80e4c7a7eed6e97096bf9d343016f45
MD5 0ceb9d2b9fc6412c62c228dd54a147ee
BLAKE2b-256 641bb3e1929362bcb83fa46b91710fef951219bd5e66869e2ab436e78b55b5c5

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