Files
cibuildwheel/docs/contributing.md
T

1.2 KiB

Contributing

Wheel-building is pretty complex. I expect users to find many edge-cases - please help the rest of the community out by documenting these, adding features to support them, and reporting bugs.

I plan to be pretty liberal in accepting pull requests, as long as they align with the design goals below.

cibuildwheel is indie open source. I'm not paid to work on this.

Design Goals

  • cibuildwheel should wrap the complexity of wheel building.
  • The user interface to cibuildwheel is the build script (e.g. .travis.yml). Feature additions should not increase the complexity of this script.
  • Options should be environment variables (these lend themselves better to YML config files). They should be prefixed with CIBW_.
  • Options should be generalise to all platforms. If platform-specific options are required, they should be namespaced e.g. CIBW_TEST_COMMAND_MACOS

Other notes:

  • The platforms are very similar, until they're not. I'd rather have straight-forward code than totally DRY code, so let's keep airy platfrom abstractions to a minimum.
  • I might want to break the options into a shared config file one day, so that config is more easily shared. That has motivated some of the design decisions.