Scripts to automate building and managing Python wheels for the Digital Research Alliance of Canada (DRAC) wheelhouse.
- Build or Adapt: Compile wheels from source with
build_wheel.sh(or batch build withparbuild_wheel.sh). For binary-only distributions, adapt pre-built wheels withunmanylinuxize.sh. - Inspect Compatibility: Use
wheel_architecture.shto verify library linkage, glibc compatibility, and detect target architecture. - Deploy: Copy wheels into the appropriate wheelhouse directory and adjust permissions with
cp_wheels.sh.
-
build_wheel.sh: Build wheel(s) for a Python package from source across standard Python versions. -
wheel_architecture.sh: Analyzes wheel contents, checks glibc and library dependencies, and predicts the destination wheelhouse directory. -
cp_wheels.sh: Copies built wheels to their target location in the CVMFS wheelhouse with proper permissions. -
parbuild_wheel.sh: Builds multiple packages or versions in parallel across available CPU cores. -
unmanylinuxize.sh: Downloads pre-builtmanylinuxwheels and patches RPATHs and metadata for the DRAC stack. -
config/<package>.sh: Configuration recipes providing custom hooks and build variables for specific packages. -
manipulate_wheels.py: Inspects and modifies wheel metadata, requirements, and local tags without rebuilding.
$ bash build_wheel.sh --package <name> --version <version> --verbose 3$ bash wheel_architecture.sh <wheel_file>.whl$ bash cp_wheels.sh --remove --wheel <wheel_file>.whl