Skip to content

galaxyproject/wheelforge

Repository files navigation

Recipes and continuous integration (CI) to build wheels for Python packages that don't provide them on PyPI.

A package recipe is a simple meta.yaml file (in YAML format), contained in a dedicated subdirectory of recipes/ , specifying the package name and version, e.g. the recipe for Mercurial 6.1.1 would be in the file recipes/mercurial/meta.yaml containing:

---
name: mercurial
version: 6.1.1

When a recipe is added to this repository or updated, a CI job downloads from PyPI the sdist archive for the specified package, and then builds the wheels using either cibuildwheel (default) or build (if it is a pure Python package specified with purepy: true in the recipe).

At the end of the CI job, the wheels are uploaded to https://wheels.galaxyproject.org , a Python Package Repository used by the Galaxy Project.

Other options:

  • If an env.sh file is present in the same directory of the meta.yaml file, it is sourced before building the wheel. This can be used e.g. to set the CIBW_ environment variables to configure cibuildwheel.
  • For a non-pure Python package: if run_in_sdist is set to True in meta.yaml , then the sdist archive is extracted into a folder, and cibuildwheel run inside it (instead of being passed the path of the sdist archive).
  • run_in_sdist_before can be defined in meta.yaml as a list of commands to run in the folder where the sdist was extracted before the wheels are built.

About

Build Python wheels from recipes using cibuildwheel

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 8