diff --git a/.circleci/config.yml b/.circleci/config.yml index 7a70f273a..bd04f43a1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -38,5 +38,6 @@ workflows: version: 2 all-tests: jobs: - - osx-python3.6 + # disabled until CircleCI enable open-source mac builds on pypa + # - osx-python3.6 - linux-python3.6 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 54ebf2e89..c64020818 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,12 +40,8 @@ jobs: run: | python -m pip install -e ".[dev]" - - name: Get PR labels - id: pr-labels - uses: joerick/pr-labels-action@v1.0.6 - - name: Sample build - if: contains(steps.pr-labels.outputs.labels, ' ci-sample-build ') + if: "contains(github.event.pull_request.labels.*.name, 'CI: Sample build')" run: | python bin/sample_build.py diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml index f397d0df0..0724d8a34 100644 --- a/.github/workflows/update-dependencies.yml +++ b/.github/workflows/update-dependencies.yml @@ -23,7 +23,7 @@ jobs: - name: "Run update: python configs" run: python ./bin/update_pythons.py --force - name: Create Pull Request - if: github.ref == 'refs/heads/master' && github.repository == 'joerick/cibuildwheel' + if: github.ref == 'refs/heads/master' && github.repository == 'pypa/cibuildwheel' uses: peter-evans/create-pull-request@v3 with: commit-message: Update dependencies diff --git a/.travis.yml b/.travis.yml index bd89e869b..e5f34fdf2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,6 @@ -language: minimal +os: linux +dist: focal +language: python branches: only: @@ -7,30 +9,25 @@ branches: jobs: include: - name: Linux | x86_64 + i686 | Python 3.6 - language: python python: 3.6 services: docker env: PYTHON=python - name: Linux | arm64 | Python 3.6 - language: python python: 3.6 services: docker arch: arm64 env: PYTHON=python - name: Linux | ppc64le | Python 3.6 - language: python python: 3.6 services: docker arch: ppc64le - env: PYTHON=python - - - name: macOS | x86_64 | Python 3.x - os: osx env: - - PYTHON=python3 - - PYTEST_ADDOPTS='-k "unit_test or test_0_basic" --suppress-no-test-exit-code' + - PYTHON=python + # skip test_manylinuxXXXX_only, it uses too much disk space + # c.f. https://travis-ci.community/t/running-out-of-disk-space-quota-when-using-docker-on-ppc64le/11634 + - PYTEST_ADDOPTS='-k "not test_manylinuxXXXX_only"' - name: Windows | x86_64 | Python 3.6 os: windows @@ -42,18 +39,12 @@ jobs: env: - PYTHON=C:\\Python36\\python - - &linux_s390x_36 - name: Linux | s390x | Python 3.6 - language: python + - name: Linux | s390x | Python 3.6 python: 3.6 services: docker arch: s390x env: PYTHON=python - allow_failures: - # must repeat the s390x job above exactly to match - - *linux_s390x_36 - install: $PYTHON -m pip install -e ".[dev]" pytest-custom-exit-code script: $PYTHON ./bin/run_tests.py diff --git a/README.md b/README.md index 34689aee9..9592a5eac 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ cibuildwheel [![PyPI](https://img.shields.io/pypi/v/cibuildwheel.svg)](https://pypi.python.org/pypi/cibuildwheel) [![Documentation Status](https://readthedocs.org/projects/cibuildwheel/badge/?version=stable)](https://cibuildwheel.readthedocs.io/en/stable/?badge=stable) -[![Actions Status](https://github.com/joerick/cibuildwheel/workflows/Test/badge.svg)](https://github.com/joerick/cibuildwheel/actions) -[![Travis Status](https://img.shields.io/travis/joerick/cibuildwheel/master?logo=travis)](https://travis-ci.org/joerick/cibuildwheel) -[![AppVeyor status](https://ci.appveyor.com/api/projects/status/wbsgxshp05tt1tif/branch/master?svg=true)](https://ci.appveyor.com/project/joerick/cibuildwheel/branch/master) -[![CircleCI Status](https://img.shields.io/circleci/build/gh/joerick/cibuildwheel/master?logo=circleci)](https://circleci.com/gh/joerick/cibuildwheel) -[![Azure Status](https://dev.azure.com/joerick0429/cibuildwheel/_apis/build/status/joerick.cibuildwheel?branchName=master)](https://dev.azure.com/joerick0429/cibuildwheel/_build/latest?definitionId=2&branchName=master) +[![Actions Status](https://github.com/pypa/cibuildwheel/workflows/Test/badge.svg)](https://github.com/pypa/cibuildwheel/actions) +[![Travis Status](https://img.shields.io/travis/com/pypa/cibuildwheel/master?logo=travis)](https://travis-ci.com/pypa/cibuildwheel) +[![Appveyor status](https://ci.appveyor.com/api/projects/status/gt3vwl88yt0y3hur/branch/master?svg=true)](https://ci.appveyor.com/project/joerick/cibuildwheel/branch/master) +[![CircleCI Status](https://img.shields.io/circleci/build/gh/pypa/cibuildwheel/master?logo=circleci)](https://circleci.com/gh/pypa/cibuildwheel) +[![Azure Status](https://dev.azure.com/joerick0429/cibuildwheel/_apis/build/status/pypa.cibuildwheel?branchName=master)](https://dev.azure.com/joerick0429/cibuildwheel/_build/latest?definitionId=4&branchName=master) [Documentation](https://cibuildwheel.readthedocs.org) @@ -99,7 +99,7 @@ jobs: path: ./wheelhouse/*.whl ``` -For more information, including building on Python 2, PyPI deployment, and the use of other CI services or the dedicated GitHub Action, check out the [documentation](https://cibuildwheel.readthedocs.org) and the [examples](https://github.com/joerick/cibuildwheel/tree/master/examples). +For more information, including building on Python 2, PyPI deployment, and the use of other CI services or the dedicated GitHub Action, check out the [documentation](https://cibuildwheel.readthedocs.org) and the [examples](https://github.com/pypa/cibuildwheel/tree/master/examples). Options ------- @@ -146,48 +146,55 @@ Here are some repos that use cibuildwheel. | [websockets][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Library for building WebSocket servers and clients. Mostly written in Python, with a small C 'speedups' extension module. | | [pyzmq][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python bindings for zeromq, the networking library. Uses Cython and CFFI. | | [aiortc][] | ![github icon][] | ![apple icon][] ![linux icon][] | WebRTC and ORTC implementation for Python using asyncio. | -| [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more | +| [River][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | 🌊 Online machine learning in Python | | [coverage.py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The coverage tool for Python | +| [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more | | [h5py][] | ![azurepipelines icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | HDF5 for Python -- The h5py package is a Pythonic interface to the HDF5 binary data format. | -| [River][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | 🌊 Online machine learning in Python | -| [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. | | [Dependency Injector][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Dependency injection framework for Python, uses Windows TravisCI | +| [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. | | [PyTables][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python package to manage extremely large amounts of data | | [ruptures][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Extensive Cython + NumPy [pyproject.toml](https://github.com/deepcharles/ruptures/blob/master/pyproject.toml) example. | | [aioquic][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | QUIC and HTTP/3 implementation in Python | -| [google neuroglancer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | WebGL-based viewer for volumetric data | | [pikepdf][] | ![azurepipelines icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python library for reading and writing PDF, powered by qpdf | +| [DeepForest][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | An Efficient, Scalable and Optimized Python Framework for Deep Forest (2021.2.1) | +| [google neuroglancer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | WebGL-based viewer for volumetric data | | [AutoPy][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. | | [Parselmouth][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python interface to the Praat software package, using pybind11, C++17 and CMake, with the core Praat static library built only once and shared between wheels. | | [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson | | [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS ΒΆ | | [python-snappy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for the snappy google library | | [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. | +| [H3-py][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for H3, a hierarchical hexagonal geospatial indexing system | +| [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system | | [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python | | [cyvcf2][] | ![github icon][] | ![apple icon][] ![linux icon][] | cython + htslib == fast VCF and BCF processing | -| [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system | | [pybind11 python_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a Python-based build system | -| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Compute and compare MinHash signatures for DNA data sets. | +| [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. | | [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub | | [iminuit][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Jupyter-friendly Python interface for C++ MINUIT2 | -| [jq.py][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Python bindings for jq | | [time-machine][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Time mocking library using only the CPython C API. | | [matrixprofile][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python 3 library making time series data mining tasks, utilizing matrix profile algorithms, accessible to everyone. | | [CTranslate2][] | ![github icon][] | ![apple icon][] ![linux icon][] | Includes libraries from the [Intel oneAPI toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/base-toolkit.html). The Linux wheels also include CUDA libraries for GPU execution. | +| [jq.py][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Python bindings for jq | | [Tokenizer][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] | Fast and customizable text tokenization library with BPE and SentencePiece support | +| [PyGLM][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Fast OpenGL Mathematics (GLM) for Python | | [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. | | [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. | -| [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python | +| [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 | | [TgCrypto][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. | +| [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python | | [etebase-py][] | ![travisci icon][] | ![linux icon][] | Python bindings to a Rust library using `setuptools-rust`, and `sccache` for improved speed. | | [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy | | [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy | | [fathon][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | python package for DFA (Detrended Fluctuation Analysis) and related algorithms | -| [Imagecodecs (fork)][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] | Over 20 external dependencies in compiled libraries, custom docker image, `libomp`, `openblas` and `install_name_tool` for macOS. | -| [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies | | [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. | -| [xmlstarlet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python 3.6+ CFFI bindings with true MSVC build. | +| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. | | [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 | +| [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies | +| [xmlstarlet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python 3.6+ CFFI bindings with true MSVC build. | +| [CorrectionLib][] | ![github icon][] | ![apple icon][] ![linux icon][] | Structured JSON powered correction library for HEP, designed for the CMS experiment at CERN. | +| [Imagecodecs (fork)][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] | Over 20 external dependencies in compiled libraries, custom docker image, `libomp`, `openblas` and `install_name_tool` for macOS. | +| [SiPM][] | ![github icon][] | ![apple icon][] ![linux icon][] | High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. | [scikit-learn]: https://github.com/scikit-learn/scikit-learn [Matplotlib]: https://github.com/matplotlib/matplotlib @@ -198,48 +205,55 @@ Here are some repos that use cibuildwheel. [websockets]: https://github.com/aaugustin/websockets [pyzmq]: https://github.com/zeromq/pyzmq [aiortc]: https://github.com/aiortc/aiortc -[numexpr]: https://github.com/pydata/numexpr +[River]: https://github.com/online-ml/river [coverage.py]: https://github.com/nedbat/coveragepy +[numexpr]: https://github.com/pydata/numexpr [h5py]: https://github.com/h5py/h5py -[River]: https://github.com/online-ml/river -[PyAV]: https://github.com/PyAV-Org/PyAV [Dependency Injector]: https://github.com/ets-labs/python-dependency-injector +[PyAV]: https://github.com/PyAV-Org/PyAV [PyTables]: https://github.com/PyTables/PyTables [ruptures]: https://github.com/deepcharles/ruptures [aioquic]: https://github.com/aiortc/aioquic -[google neuroglancer]: https://github.com/google/neuroglancer [pikepdf]: https://github.com/pikepdf/pikepdf +[DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest +[google neuroglancer]: https://github.com/google/neuroglancer [AutoPy]: https://github.com/autopilot-rs/autopy [Parselmouth]: https://github.com/YannickJadoul/Parselmouth [python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson [Rtree]: https://github.com/Toblerity/rtree [python-snappy]: https://github.com/andrix/python-snappy [markupsafe]: https://github.com/pallets/markupsafe +[H3-py]: https://github.com/uber/h3-py +[pybind11 cmake_example]: https://github.com/pybind/cmake_example [KDEpy]: https://github.com/tommyod/KDEpy [cyvcf2]: https://github.com/brentp/cyvcf2 -[pybind11 cmake_example]: https://github.com/pybind/cmake_example [pybind11 python_example]: https://github.com/pybind/python_example [sourmash]: https://github.com/dib-lab/sourmash [dd-trace-py]: https://github.com/DataDog/dd-trace-py [iminuit]: https://github.com/scikit-hep/iminuit -[jq.py]: https://github.com/mwilliamson/jq.py [time-machine]: https://github.com/adamchainz/time-machine [matrixprofile]: https://github.com/matrix-profile-foundation/matrixprofile [CTranslate2]: https://github.com/OpenNMT/CTranslate2 +[jq.py]: https://github.com/mwilliamson/jq.py [Tokenizer]: https://github.com/OpenNMT/Tokenizer +[PyGLM]: https://github.com/Zuzu-Typ/PyGLM [bx-python]: https://github.com/bxlab/bx-python [boost-histogram]: https://github.com/scikit-hep/boost-histogram -[pybase64]: https://github.com/mayeut/pybase64 +[iDynTree]: https://github.com/robotology/idyntree [TgCrypto]: https://github.com/pyrogram/tgcrypto +[pybase64]: https://github.com/mayeut/pybase64 [etebase-py]: https://github.com/etesync/etebase-py [pyjet]: https://github.com/scikit-hep/pyjet [numpythia]: https://github.com/scikit-hep/numpythia [fathon]: https://github.com/stfbnc/fathon -[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build -[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext [polaroid]: https://github.com/daggy1234/polaroid -[xmlstarlet]: https://github.com/dimitern/xmlstarlet +[GSD]: https://github.com/glotzerlab/gsd [pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example +[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext +[xmlstarlet]: https://github.com/dimitern/xmlstarlet +[CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib +[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build +[SiPM]: https://github.com/EdoPro98/SimSiPM [appveyor icon]: docs/data/readme_icons/appveyor.svg [github icon]: docs/data/readme_icons/github.svg @@ -251,61 +265,68 @@ Here are some repos that use cibuildwheel. [apple icon]: docs/data/readme_icons/apple.svg [linux icon]: docs/data/readme_icons/linux.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -> Add your repo here! Let us know on [GitHub Discussions](https://github.com/joerick/cibuildwheel/discussions/485), or send a PR, adding your information to `docs/data/projects.yml`. +> Add your repo here! Let us know on [GitHub Discussions](https://github.com/pypa/cibuildwheel/discussions/485), or send a PR, adding your information to `docs/data/projects.yml`. > > I'd like to include notes here to indicate why an example might be interesting to cibuildwheel users - the styles/technologies/techniques used in each. Please include that in future additions! @@ -376,7 +397,7 @@ _5 February 2021_ ```yaml - name: Build wheels - uses: joerick/cibuildwheel@version # e.g. v1.9.0 + uses: pypa/cibuildwheel@version # e.g. v1.9.0 with: output-dir: wheelhouse # env: @@ -704,7 +725,7 @@ _26 May 2019_ - 🌟 Add support for building on Azure pipelines! This lets you build all Linux, Mac and Windows wheels on one service, so it promises to be the easiest to set up! Check out the quickstart in the docs, or - [cibuildwheel-azure-example](https://github.com/joerick/cibuildwheel-azure-example) + [cibuildwheel-azure-example](https://github.com/pypa/cibuildwheel-azure-example) for an example project. (#126, #132) - πŸ›  Internal change - the end-to-end test projects format was updated, so we can more precisely assert what should be produced for each one. (#136, #137). @@ -880,9 +901,9 @@ Credits Massive props also to- -- @zfrenchee for [help debugging many issues](https://github.com/joerick/cibuildwheel/issues/2) -- @lelit for some great bug reports and [contributions](https://github.com/joerick/cibuildwheel/pull/73) -- @mayeut for a [phenomenal PR](https://github.com/joerick/cibuildwheel/pull/71) patching Python itself for better compatibility! +- @zfrenchee for [help debugging many issues](https://github.com/pypa/cibuildwheel/issues/2) +- @lelit for some great bug reports and [contributions](https://github.com/pypa/cibuildwheel/pull/73) +- @mayeut for a [phenomenal PR](https://github.com/pypa/cibuildwheel/pull/71) patching Python itself for better compatibility! - @czaki for being a super-contributor over many PRs and helping out with countless issues! - @mattip for his help with adding PyPy support to cibuildwheel diff --git a/appveyor.yml b/appveyor.yml index 080908a2c..96d8a950d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -22,7 +22,7 @@ init: install: python -m pip install -e ".[dev]" pytest-custom-exit-code # the '-u' flag is required so the output is in the correct order. -# See https://github.com/joerick/cibuildwheel/pull/24 for more info. +# See https://github.com/pypa/cibuildwheel/pull/24 for more info. test_script: python -u ./bin/run_tests.py branches: diff --git a/bin/bump_version.py b/bin/bump_version.py index a6dbdb2fe..60b8ce5ba 100755 --- a/bin/bump_version.py +++ b/bin/bump_version.py @@ -52,7 +52,7 @@ def bump_version() -> None: cd_date, cd_time, cd_tz = commit_date_str.split(" ") url_opts = urllib.parse.urlencode({"q": f"is:pr merged:>{cd_date}T{cd_time}{cd_tz}"}) - url = f"https://github.com/joerick/cibuildwheel/pulls?{url_opts}" + url = f"https://github.com/pypa/cibuildwheel/pulls?{url_opts}" print(f"PRs merged since last release:\n {url}") print() diff --git a/bin/make_dependency_update_pr.py b/bin/make_dependency_update_pr.py index ba20f9787..c3631aa8f 100755 --- a/bin/make_dependency_update_pr.py +++ b/bin/make_dependency_update_pr.py @@ -62,7 +62,7 @@ def main(): "gh", "pr", "create", - "--repo=joerick/cibuildwheel", + "--repo=pypa/cibuildwheel", "--base=master", "--title=Update dependencies", f"--body='{body}'", diff --git a/bin/run_example_ci_configs.py b/bin/run_example_ci_configs.py index dfac9b769..8c4248012 100755 --- a/bin/run_example_ci_configs.py +++ b/bin/run_example_ci_configs.py @@ -39,7 +39,7 @@ def generate_basic_project(path): CIService( name="appveyor", dst_config_path="appveyor.yml", - badge_md="[![Build status](https://ci.appveyor.com/api/projects/status/wbsgxshp05tt1tif/branch/{branch}?svg=true)](https://ci.appveyor.com/project/joerick/cibuildwheel/branch/{branch})", + badge_md="[![Build status](https://ci.appveyor.com/api/projects/status/wbsgxshp05tt1tif/branch/{branch}?svg=true)](https://ci.appveyor.com/project/pypa/cibuildwheel/branch/{branch})", ), CIService( name="azure-pipelines", @@ -49,22 +49,22 @@ def generate_basic_project(path): CIService( name="circleci", dst_config_path=".circleci/config.yml", - badge_md="[![CircleCI](https://circleci.com/gh/joerick/cibuildwheel/tree/{branch_escaped}.svg?style=svg)](https://circleci.com/gh/joerick/cibuildwheel/tree/{branch})", + badge_md="[![CircleCI](https://circleci.com/gh/pypa/cibuildwheel/tree/{branch_escaped}.svg?style=svg)](https://circleci.com/gh/pypa/cibuildwheel/tree/{branch})", ), CIService( name="github", dst_config_path=".github/workflows/example.yml", - badge_md="[![Build](https://github.com/joerick/cibuildwheel/workflows/Build/badge.svg?branch={branch})](https://github.com/joerick/cibuildwheel/actions)", + badge_md="[![Build](https://github.com/pypa/cibuildwheel/workflows/Build/badge.svg?branch={branch})](https://github.com/pypa/cibuildwheel/actions)", ), CIService( name="travis-ci", dst_config_path=".travis.yml", - badge_md="[![Build Status](https://travis-ci.org/joerick/cibuildwheel.svg?branch={branch})](https://travis-ci.org/joerick/cibuildwheel)", + badge_md="[![Build Status](https://travis-ci.org/pypa/cibuildwheel.svg?branch={branch})](https://travis-ci.org/pypa/cibuildwheel)", ), CIService( name="gitlab", dst_config_path=".gitlab-ci.yml", - badge_md="[![Gitlab](https://gitlab.com/joerick/cibuildwheel/badges/{branch}/pipeline.svg)](https://gitlab.com/joerick/cibuildwheel/-/commits/{branch})", + badge_md="[![Gitlab](https://gitlab.com/pypa/cibuildwheel/badges/{branch}/pipeline.svg)](https://gitlab.com/pypa/cibuildwheel/-/commits/{branch})", ), ] @@ -140,9 +140,7 @@ def run_example_ci_configs(config_files=None): print() print("> **Examples test run**") print("> ") - print( - f"> Branch: [{branch_name}](https://github.com/joerick/cibuildwheel/tree/{branch_name})" - ) + print(f"> Branch: [{branch_name}](https://github.com/pypa/cibuildwheel/tree/{branch_name})") print("> ") print("> | Service | Config | Status |") print("> |---|---|---|") diff --git a/cibuildwheel/__main__.py b/cibuildwheel/__main__.py index baa0227eb..c27c426f8 100644 --- a/cibuildwheel/__main__.py +++ b/cibuildwheel/__main__.py @@ -70,7 +70,7 @@ def main() -> None: description="Build wheels for all the platforms.", epilog=""" Most options are supplied via environment variables. - See https://github.com/joerick/cibuildwheel#options for info. + See https://github.com/pypa/cibuildwheel#options for info. """, ) diff --git a/cibuildwheel/macos.py b/cibuildwheel/macos.py index ba58ad30e..25d87115e 100644 --- a/cibuildwheel/macos.py +++ b/cibuildwheel/macos.py @@ -396,7 +396,7 @@ def build(options: BuildOptions) -> None: built_wheel_dir.mkdir(parents=True) # Path.resolve() is needed. Without it pip wheel may try to fetch package from pypi.org - # see https://github.com/joerick/cibuildwheel/pull/369 + # see https://github.com/pypa/cibuildwheel/pull/369 call( [ "pip", diff --git a/cibuildwheel/windows.py b/cibuildwheel/windows.py index 9c58564ca..49edc48d5 100644 --- a/cibuildwheel/windows.py +++ b/cibuildwheel/windows.py @@ -296,7 +296,7 @@ def build(options: BuildOptions) -> None: shutil.rmtree(built_wheel_dir) built_wheel_dir.mkdir(parents=True) # Path.resolve() is needed. Without it pip wheel may try to fetch package from pypi.org - # see https://github.com/joerick/cibuildwheel/pull/369 + # see https://github.com/pypa/cibuildwheel/pull/369 call( [ "pip", diff --git a/docs/contributing.md b/docs/contributing.md index 7550969c4..72a7849d2 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -29,7 +29,7 @@ cibuildwheel doesn't really do anything itself - it's always deferring to other We're not responsible for errors in those tools, for fixing errors/crashes there. But cibuildwheel's job is providing users with an 'integrated' user experience across those tools. We provide an abstraction. The user says 'build me some wheels', not 'open the docker container, build a wheel with pip, fix up the symbols with auditwheel' etc. However, errors have a habit of breaking abstractions. And this is where users get confused, because the mechanism of cibuildwheel is laid bare, and they must understand a little bit how it works to debug. -So, if we can, I'd like to improve the experience on errors as well. In [this](https://github.com/joerick/cibuildwheel/issues/139) case, it takes a bit of knowledge to understand that the Linux builds are happening in a different OS via Docker, that the linked symbols won't match, that auditwheel will fail because of this. A problem with how the tools fit together, instead of the tools themselves. +So, if we can, I'd like to improve the experience on errors as well. In [this](https://github.com/pypa/cibuildwheel/issues/139) case, it takes a bit of knowledge to understand that the Linux builds are happening in a different OS via Docker, that the linked symbols won't match, that auditwheel will fail because of this. A problem with how the tools fit together, instead of the tools themselves. Maintainer notes ---------------- @@ -120,4 +120,4 @@ twine upload dist/* git push && git push --tags ``` -Then head to https://github.com/joerick/cibuildwheel/releases and create a GitHub release from the new tag, pasting in the changelog entry. +Then head to https://github.com/pypa/cibuildwheel/releases and create a GitHub release from the new tag, pasting in the changelog entry. diff --git a/docs/data/projects.yml b/docs/data/projects.yml index c72f39f48..dc390ce88 100644 --- a/docs/data/projects.yml +++ b/docs/data/projects.yml @@ -324,3 +324,42 @@ gh: pallets/markupsafe ci: [github] os: [apple, linux, windows] + +- name: SiPM + gh: EdoPro98/SimSiPM + ci: [github] + os: [apple, linux] + notes: High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. + +- name: CorrectionLib + gh: cms-nanoAOD/correctionlib + ci: [github] + os: [apple, linux] + notes: Structured JSON powered correction library for HEP, designed for the CMS experiment at CERN. + +- name: GSD + gh: glotzerlab/gsd + ci: [github] + os: [apple, linux, windows] + notes: Cython and NumPy project with 64-bit wheels. + +- name: PyGLM + gh: Zuzu-Typ/PyGLM + ci: [github] + os: [apple, linux, windows] + +- name: iDynTree + gh: robotology/idyntree + ci: [github] + os: [linux] + notes: Uses manylinux_2_24 + +- name: H3-py + gh: uber/h3-py + ci: [github] + os: [apple, linux, windows] + +- name: DeepForest + gh: LAMDA-NJU/Deep-Forest + ci: [github] + os: [apple, linux, windows] diff --git a/docs/deliver-to-pypi.md b/docs/deliver-to-pypi.md index a68ba928d..de95cca7c 100644 --- a/docs/deliver-to-pypi.md +++ b/docs/deliver-to-pypi.md @@ -33,4 +33,4 @@ Obviously, manual steps are for chumps, so we can automate this a little by usin If you don't need much control over the release of a package, you can set up cibuildwheel to deliver the wheels straight to PyPI. This doesn't require anycloud storage to work - you just need to bump the version and tag it. -[`examples/travis-ci-deploy.yml`](https://github.com/joerick/cibuildwheel/blob/master/examples/travis-ci-deploy.yml) and [`examples/github-deploy.yml`](https://github.com/joerick/cibuildwheel/blob/master/examples/github-deploy.yml) are example configurations that automatically upload wheels to PyPI. Also check out [this example repo](https://github.com/joerick/cibuildwheel-autopypi-example) for more detailed instructions on how to set this up. +[`examples/travis-ci-deploy.yml`](https://github.com/pypa/cibuildwheel/blob/master/examples/travis-ci-deploy.yml) and [`examples/github-deploy.yml`](https://github.com/pypa/cibuildwheel/blob/master/examples/github-deploy.yml) are example configurations that automatically upload wheels to PyPI. Also check out [this example repo](https://github.com/pypa/cibuildwheel-autopypi-example) for more detailed instructions on how to set this up. diff --git a/docs/faq.md b/docs/faq.md index c0c6a355c..a64daa4c1 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -12,7 +12,7 @@ If your wheel didn't compile, check the list below for some debugging tips. - Windows: missing C feature. The Windows C compiler doesn't support C language features invented after 1990, so you'll have to backport your C code to C90. For me, this mostly involved putting my variable declarations at the top of the function like an animal. -- MacOS: calling cibuildwheel from a python3 script and getting a `ModuleNotFoundError`? Due to a (fixed) [bug](https://bugs.python.org/issue22490) in CPython, you'll need to [unset the `__PYVENV_LAUNCHER__` variable](https://github.com/joerick/cibuildwheel/issues/133#issuecomment-478288597) before activating a venv. +- MacOS: calling cibuildwheel from a python3 script and getting a `ModuleNotFoundError`? Due to a (fixed) [bug](https://bugs.python.org/issue22490) in CPython, you'll need to [unset the `__PYVENV_LAUNCHER__` variable](https://github.com/pypa/cibuildwheel/issues/133#issuecomment-478288597) before activating a venv. ### Linux builds on Docker @@ -208,7 +208,7 @@ python3 -m twine upload wheelhouse/*.whl Visual Studio and MSVC link the compiled binary wheels to the Microsoft Visual C++ Runtime. Normally, these are included with Python, but when compiling with a newer version of Visual Studio, it is possible users will run into problems on systems that do not have these runtime libraries installed. The solution is to ask users to download the corresponding Visual C++ Redistributable from the [Microsoft website](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) and install it. Since a Python installation normally includes these VC++ Redistributable files for [the version of the MSVC compiler used to compile Python](https://wiki.python.org/moin/WindowsCompilers), this is typically only a problem when compiling a Python 2.7 C extension with a newer compiler, e.g. to support a modern C++ standard (see [the section on modern C++ standards for Python 2.7](cpp_standards.md#windows-and-python-27) for more details). -Additionally, Visual Studio 2019 started linking to an even newer DLL, `VCRUNTIME140_1.dll`, besides the `VCRUNTIME140.dll` that is included with recent Python versions (starting from Python 3.5; see [here](https://wiki.python.org/moin/WindowsCompilers) for more details on the corresponding Visual Studio & MSVC versions used to compile the different Python versions). To avoid this extra dependency on `VCRUNTIME140_1.dll`, the [`/d2FH4-` flag](https://devblogs.microsoft.com/cppblog/making-cpp-exception-handling-smaller-x64/) can be added to the MSVC invocations (check out [this issue](https://github.com/joerick/cibuildwheel/issues/423) for details and references). +Additionally, Visual Studio 2019 started linking to an even newer DLL, `VCRUNTIME140_1.dll`, besides the `VCRUNTIME140.dll` that is included with recent Python versions (starting from Python 3.5; see [here](https://wiki.python.org/moin/WindowsCompilers) for more details on the corresponding Visual Studio & MSVC versions used to compile the different Python versions). To avoid this extra dependency on `VCRUNTIME140_1.dll`, the [`/d2FH4-` flag](https://devblogs.microsoft.com/cppblog/making-cpp-exception-handling-smaller-x64/) can be added to the MSVC invocations (check out [this issue](https://github.com/pypa/cibuildwheel/issues/423) for details and references). To add the `/d2FH4-` flag to a standard `setup.py` using `setuptools`, the `extra_compile_args` option can be used: @@ -235,7 +235,7 @@ There are two suggested methods for keeping cibuildwheel up to date that instead If you use GitHub Actions for builds, you can use cibuildwheel as an action: ```yaml -uses: joerick/cibuildwheel@v1.11.0 +uses: pypa/cibuildwheel@v1.11.0 ``` This is a composite step that just runs cibuildwheel using pipx. You can set command-line options as `with:` parameters, and use `env:` as normal. diff --git a/docs/setup.md b/docs/setup.md index b006e5d52..86971cdc9 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -96,7 +96,7 @@ Commit this file, and push to GitHub - either to your default branch, or to a PR For more info on this file, check out the [docs](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions). -[`examples/github-deploy.yml`](https://github.com/joerick/cibuildwheel/blob/master/examples/github-deploy.yml) extends this minimal example with a demonstration of how to automatically upload the built wheels to PyPI. +[`examples/github-deploy.yml`](https://github.com/pypa/cibuildwheel/blob/master/examples/github-deploy.yml) extends this minimal example with a demonstration of how to automatically upload the built wheels to PyPI. # Azure Pipelines [linux/mac/windows] {: #azure-pipelines} @@ -132,7 +132,7 @@ Commit this file, enable building of your repo on Travis CI, and push. Then setup a deployment method by following the [Travis CI deployment docs](https://docs.travis-ci.com/user/deployment/), or see [Delivering to PyPI](deliver-to-pypi.md). For more info on `.travis.yml`, check out the [docs](https://docs.travis-ci.com/). -[`examples/travis-ci-deploy.yml`](https://github.com/joerick/cibuildwheel/blob/master/examples/travis-ci-deploy.yml) extends this minimal example with a demonstration of how to automatically upload the built wheels to PyPI. +[`examples/travis-ci-deploy.yml`](https://github.com/pypa/cibuildwheel/blob/master/examples/travis-ci-deploy.yml) extends this minimal example with a demonstration of how to automatically upload the built wheels to PyPI. # AppVeyor [linux/mac/windows] {: #appveyor} diff --git a/examples/github-apple-silicon.yml b/examples/github-apple-silicon.yml index a1a2b462e..9ee33d0de 100644 --- a/examples/github-apple-silicon.yml +++ b/examples/github-apple-silicon.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v2 - name: Build wheels - uses: joerick/cibuildwheel@v1.11.0 + uses: pypa/cibuildwheel@v1.11.0 env: CIBW_ARCHS_MACOS: x86_64 universal2 diff --git a/examples/github-deploy.yml b/examples/github-deploy.yml index 8081b147e..c732160e9 100644 --- a/examples/github-deploy.yml +++ b/examples/github-deploy.yml @@ -27,7 +27,7 @@ jobs: python-version: '3.8' - name: Build wheels - uses: joerick/cibuildwheel@v1.11.0 + uses: pypa/cibuildwheel@v1.11.0 - uses: actions/upload-artifact@v2 with: diff --git a/examples/github-minimal.yml b/examples/github-minimal.yml index 0711d1c9a..dc3e762d4 100644 --- a/examples/github-minimal.yml +++ b/examples/github-minimal.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v2 - name: Build wheels - uses: joerick/cibuildwheel@v1.11.0 + uses: pypa/cibuildwheel@v1.11.0 # to supply options, put them in 'env', like: # env: # CIBW_SOME_OPTION: value diff --git a/examples/github-with-qemu.yml b/examples/github-with-qemu.yml index 8e16db3e5..17b512a60 100644 --- a/examples/github-with-qemu.yml +++ b/examples/github-with-qemu.yml @@ -25,7 +25,7 @@ jobs: platforms: all - name: Build wheels - uses: joerick/cibuildwheel@v1.11.0 + uses: pypa/cibuildwheel@v1.11.0 env: # configure cibuildwheel to build native archs ('auto'), and some # emulated ones diff --git a/examples/travis-ci-deploy.yml b/examples/travis-ci-deploy.yml index c442a680d..8a3b424e8 100644 --- a/examples/travis-ci-deploy.yml +++ b/examples/travis-ci-deploy.yml @@ -1,6 +1,8 @@ # As written, this configuration will build your wheels on every # commit, but will only push to PyPI on tagged commits. +os: linux +dist: focal language: python jobs: diff --git a/examples/travis-ci-minimal.yml b/examples/travis-ci-minimal.yml index 716fdf9b5..1cf279901 100644 --- a/examples/travis-ci-minimal.yml +++ b/examples/travis-ci-minimal.yml @@ -1,3 +1,5 @@ +os: linux +dist: focal language: python jobs: diff --git a/examples/travis-ci-test-and-deploy.yml b/examples/travis-ci-test-and-deploy.yml index 9265c1dc2..a429ce707 100644 --- a/examples/travis-ci-test-and-deploy.yml +++ b/examples/travis-ci-test-and-deploy.yml @@ -5,6 +5,8 @@ # repo is yours (e.g. it won't run on a Pull Request). For convenience, a source # distribution is also created. +os: linux +dist: focal language: python python: - 3.6 @@ -32,9 +34,9 @@ stages: # Only execute deployment stage on tagged commits, and from your repository # (e.g. not PRs). Replace with your repo name. - name: deploy - if: tag IS PRESENT AND repo = joerick/cibuildwheel + if: tag IS PRESENT AND repo = pypa/cibuildwheel # To only build tags that look like vX.Y.Z: - # if: tag =~ ^v\d+\.\d+\.\d+$ AND repo = joerick/cibuildwheel + # if: tag =~ ^v\d+\.\d+\.\d+$ AND repo = pypa/cibuildwheel jobs: include: diff --git a/mkdocs.yml b/mkdocs.yml index b6d512445..9853a94f8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -5,7 +5,7 @@ theme: highlightjs: true hljs_languages: - yaml -repo_url: https://github.com/joerick/cibuildwheel +repo_url: https://github.com/pypa/cibuildwheel extra_css: - extra.css diff --git a/setup.cfg b/setup.cfg index 722bb2bfb..afc13fbad 100644 --- a/setup.cfg +++ b/setup.cfg @@ -4,7 +4,7 @@ version = 1.11.0 description = Build Python wheels on CI with minimal configuration. long_description = file: README.md long_description_content_type = text/markdown -url = https://github.com/joerick/cibuildwheel +url = https://github.com/pypa/cibuildwheel author = Joe Rickerby author_email = joerick@mac.com license = BSD @@ -24,7 +24,7 @@ classifiers = Topic :: Software Development :: Build Tools keywords = ci,wheel,packaging,pypi,travis,appveyor,macos,linux,windows project_urls = - Changelog=https://github.com/joerick/cibuildwheel#changelog + Changelog=https://github.com/pypa/cibuildwheel#changelog Documentation=https://cibuildwheel.readthedocs.io/ [options] diff --git a/test/test_pep518.py b/test/test_pep518.py index a15181ba2..c7fb541c2 100644 --- a/test/test_pep518.py +++ b/test/test_pep518.py @@ -50,7 +50,7 @@ def test_pep518(tmp_path): assert set(actual_wheels) == set(expected_wheels) # These checks ensure an extra file is not created when using custom - # workaround; see https://github.com/joerick/cibuildwheel/issues/421 + # workaround; see https://github.com/pypa/cibuildwheel/issues/421 assert not (project_dir / "42").exists() assert not (project_dir / "4.1.2").exists() diff --git a/test/test_ssl.py b/test/test_ssl.py index 81315d64d..6332c551d 100644 --- a/test/test_ssl.py +++ b/test/test_ssl.py @@ -14,8 +14,8 @@ context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) data = urlopen("https://www.nist.gov", context=context) - data = urlopen("https://raw.githubusercontent.com/joerick/cibuildwheel/master/CI.md", context=context) - data = urlopen("https://raw.githubusercontent.com/joerick/cibuildwheel/master/CI.md") + data = urlopen("https://raw.githubusercontent.com/pypa/cibuildwheel/master/CI.md", context=context) + data = urlopen("https://raw.githubusercontent.com/pypa/cibuildwheel/master/CI.md") """ ) ) diff --git a/unit_test/download_test.py b/unit_test/download_test.py index 41c4341cc..0aac14309 100644 --- a/unit_test/download_test.py +++ b/unit_test/download_test.py @@ -5,7 +5,7 @@ from cibuildwheel.util import download -DOWNLOAD_URL = "https://raw.githubusercontent.com/joerick/cibuildwheel/v1.6.3/requirements-dev.txt" +DOWNLOAD_URL = "https://raw.githubusercontent.com/pypa/cibuildwheel/v1.6.3/requirements-dev.txt" def test_download(monkeypatch, tmp_path):