Merge remote-tracking branch 'origin/main' into fmtpass-alt
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
release:
|
||||
types:
|
||||
- published
|
||||
|
||||
jobs:
|
||||
dist:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build SDist and wheel
|
||||
run: pipx run build
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
path: dist/*
|
||||
|
||||
- name: Check metadata
|
||||
run: pipx run twine check dist/*
|
||||
|
||||
publish:
|
||||
needs: [dist]
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'release' && github.event.action == 'published'
|
||||
|
||||
steps:
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: artifact
|
||||
path: dist
|
||||
|
||||
- uses: pypa/gh-action-pypi-publish@v1.4.2
|
||||
with:
|
||||
user: __token__
|
||||
password: ${{ secrets.pypi_password }}
|
||||
@@ -22,6 +22,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
- uses: pre-commit/action@v2.0.3
|
||||
- run: pipx run nox -s check_manifest
|
||||
|
||||
test:
|
||||
name: Test cibuildwheel on ${{ matrix.os }}
|
||||
|
||||
@@ -27,23 +27,23 @@ repos:
|
||||
|
||||
# Autoremoves unused imports
|
||||
- repo: https://github.com/hadialqattan/pycln
|
||||
rev: v1.0.3
|
||||
rev: v1.1.0
|
||||
hooks:
|
||||
- id: pycln
|
||||
args: [--config=pyproject.toml]
|
||||
|
||||
- repo: https://github.com/PyCQA/isort
|
||||
rev: 5.9.3
|
||||
rev: 5.10.0
|
||||
hooks:
|
||||
- id: isort
|
||||
|
||||
- repo: https://github.com/psf/black
|
||||
rev: 21.9b0
|
||||
rev: 21.10b0
|
||||
hooks:
|
||||
- id: black
|
||||
|
||||
- repo: https://github.com/asottile/setup-cfg-fmt
|
||||
rev: v1.18.0
|
||||
rev: v1.19.0
|
||||
hooks:
|
||||
- id: setup-cfg-fmt
|
||||
|
||||
@@ -54,7 +54,9 @@ repos:
|
||||
exclude: ^(bin|cibuildwheel/resources|docs)/.*py$
|
||||
args: ["--python-version=3.6", "--scripts-are-modules", "--show-error-codes"]
|
||||
additional_dependencies: &mypy-dependencies
|
||||
- nox
|
||||
- packaging>=21.0
|
||||
- pygithub
|
||||
- rich
|
||||
- tomli
|
||||
- types-certifi
|
||||
@@ -63,14 +65,15 @@ repos:
|
||||
- types-jinja2
|
||||
- types-pyyaml
|
||||
- types-requests
|
||||
- bracex
|
||||
- id: mypy
|
||||
name: mypy 3.7+ on bin/
|
||||
files: ^((bin|docs)/.*py|noxfile.py)$
|
||||
files: ^((bin|docs)/.*py)$
|
||||
args: ["--python-version=3.7", "--scripts-are-modules", "--show-error-codes"]
|
||||
additional_dependencies: *mypy-dependencies
|
||||
|
||||
- repo: https://github.com/asottile/yesqa
|
||||
rev: v1.2.3
|
||||
rev: v1.3.0
|
||||
hooks:
|
||||
- id: yesqa
|
||||
additional_dependencies: &flake8-dependencies
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
recursive-include cibuildwheel *.cfg
|
||||
recursive-include cibuildwheel *.in
|
||||
recursive-include cibuildwheel *.py
|
||||
recursive-include cibuildwheel *.toml
|
||||
recursive-include cibuildwheel *.txt
|
||||
recursive-include cibuildwheel *.typed
|
||||
@@ -85,7 +85,7 @@ jobs:
|
||||
- uses: actions/setup-python@v2
|
||||
|
||||
- name: Install cibuildwheel
|
||||
run: python -m pip install cibuildwheel==2.2.0b1
|
||||
run: python -m pip install cibuildwheel==2.2.2
|
||||
|
||||
- name: Build wheels
|
||||
run: python -m cibuildwheel --output-dir wheelhouse
|
||||
@@ -189,24 +189,39 @@ Changelog
|
||||
|
||||
<!-- this section was generated by bin/update_readme_changelog.py -- do not edit manually -->
|
||||
|
||||
### v2.2.0 (prerelease)
|
||||
### v2.2.2
|
||||
|
||||
_Currently in prerelease. The below release notes will be condensed into a single entry on final release._
|
||||
_26 October 2021_
|
||||
|
||||
_v2.2.0b1 (19 October 2021)_
|
||||
- 🐛 Fix bug in the GitHub Action step causing a syntax error (#895)
|
||||
|
||||
- 🌟 TOML option overrides. This provides much greater flexibility in configuration via pyproject.toml.
|
||||
### v2.2.1
|
||||
|
||||
_26 October 2021_
|
||||
|
||||
- 🛠 Added a `config-file` option on the GitHub Action to specify something other than pyproject.toml in your GitHub Workflow file. (#883)
|
||||
- 🐛 Fix missing resources in sdist and released wheel on PyPI. We've also made some internal changes to our release processes to make them more reliable. (#893, #894)
|
||||
|
||||
### v2.2.0
|
||||
|
||||
_22 October 2021_
|
||||
|
||||
- 🌟 Added support for [musllinux](https://www.python.org/dev/peps/pep-0656/). Support for this new wheel format lets projects build wheels for Linux distributions that use [musl libc](https://musl.libc.org/), notably, [Alpine](https://alpinelinux.org/) Docker containers. (#768)
|
||||
|
||||
Musllinux builds are enabled by default. If you're not ready to build musllinux, add `*-musllinux_*` to your [`CIBW_SKIP`/`skip`](https://cibuildwheel.readthedocs.io/en/stable/options/#build-skip) option. Or, you might have to make some changes to your options - to simplify that process, you can use...
|
||||
|
||||
- 🌟 TOML option overrides! This provides much greater flexibility in configuration via pyproject.toml. (#854)
|
||||
|
||||
You can now set build options for any subset of your builds using a match pattern. So, for example, you can customise CPython 3.8 builds with an override on `cp38-*` or musllinux builds by selecting `*musllinux*`. Check out [the docs](https://cibuildwheel.readthedocs.io/en/latest/options/#overrides) for more info on the specifics.
|
||||
|
||||
_v2.2.0a1 (23 September 2021)_
|
||||
- 🛠 Added support for building PyPy wheels on macOS 11 CI runners. (#875)
|
||||
|
||||
- 🌟 Added support for [musllinux](https://www.python.org/dev/peps/pep-0656/). Support for this new wheel format lets projects build wheels for Linux distributions that use [musl libc](https://musl.libc.org/), notably, [Alpine](https://alpinelinux.org/) Docker containers.
|
||||
|
||||
Musllinux builds are enabled by default. To disable them on your project, add `*-musllinux_*` to your [`CIBW_SKIP`/`skip`](https://cibuildwheel.readthedocs.io/en/stable/options/#build-skip)
|
||||
option. (#768)
|
||||
- 🛠 Setting an empty string for the [`CIBW_*_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) option will now fallthrough to the config file or cibuildwheel's default, rather than causing an error. This makes the option easier to use in CI build matricies. (#829)
|
||||
|
||||
- 🛠 Support for TOML 1.0 when reading config files, via the `tomli` package. (#876)
|
||||
|
||||
<sup>Note: This version is not available on PyPI due to some missing resources in the release files. Please use a later version instead.</sup>
|
||||
|
||||
### v2.1.3
|
||||
|
||||
_6 October 2021_
|
||||
@@ -221,21 +236,6 @@ _14 September 2021_
|
||||
- 📚 Multiple docs updates
|
||||
- 🐛 Improved warnings when built binaries are bundled into the container on Linux. (#807)
|
||||
|
||||
### v2.1.1
|
||||
|
||||
_7 August 2021_
|
||||
|
||||
- ✨ Corresponding with the release of CPython 3.10.0rc1, which is ABI stable, cibuildwheel now builds CPython 3.10 by default - without the CIBW_PRERELEASE_PYTHONS flag.
|
||||
|
||||
<sup>Note: v2.1.0 was a bad release, it was yanked from PyPI.</sup>
|
||||
|
||||
### v2.0.1
|
||||
|
||||
_25 July 2021_
|
||||
|
||||
- 📚 Docs improvements (#767)
|
||||
- 🛠 Dependency updates, including delocate 0.9.0.
|
||||
|
||||
<!-- END bin/update_readme_changelog.py -->
|
||||
|
||||
---
|
||||
|
||||
@@ -9,6 +9,10 @@ inputs:
|
||||
description: 'Folder to place the outputs in, defaults to "wheelhouse"'
|
||||
required: false
|
||||
default: wheelhouse
|
||||
config-file:
|
||||
description: 'File containing the config, defaults to {package}/pyproject.toml'
|
||||
required: false
|
||||
default: ''
|
||||
branding:
|
||||
icon: package
|
||||
color: yellow
|
||||
@@ -24,5 +28,6 @@ runs:
|
||||
cibuildwheel
|
||||
${{ inputs.package-dir }}
|
||||
--output-dir ${{ inputs.output-dir }}
|
||||
--config-file "${{ inputs.config-file }}"
|
||||
2>&1
|
||||
shell: bash
|
||||
|
||||
@@ -7,7 +7,7 @@ from typing import Iterator
|
||||
|
||||
import click
|
||||
import yaml
|
||||
from ghapi.core import GhApi, HTTP404NotFoundError # type: ignore[import]
|
||||
from ghapi.core import GhApi, HTTP404NotFoundError
|
||||
from rich import print
|
||||
|
||||
from cibuildwheel.projectfiles import Analyzer
|
||||
|
||||
@@ -1 +1 @@
|
||||
__version__ = "2.2.0b1"
|
||||
__version__ = "2.2.2"
|
||||
|
||||
@@ -57,14 +57,15 @@ def main() -> None:
|
||||
|
||||
parser.add_argument(
|
||||
"--output-dir",
|
||||
help="Destination folder for the wheels.",
|
||||
help="Destination folder for the wheels. Default: wheelhouse.",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--config-file",
|
||||
default="",
|
||||
help="""
|
||||
TOML config file for cibuildwheel. Defaults to pyproject.toml, but
|
||||
can be overridden with this option.
|
||||
TOML config file. Default: "", meaning {package}/pyproject.toml,
|
||||
if it exists.
|
||||
""",
|
||||
)
|
||||
|
||||
@@ -162,7 +163,7 @@ def main() -> None:
|
||||
os.environ["CIBUILDWHEEL"] = "1"
|
||||
|
||||
# Python is buffering by default when running on the CI platforms, giving problems interleaving subprocess call output with unflushed calls to 'print'
|
||||
sys.stdout = Unbuffered(sys.stdout) # type: ignore[no-untyped-call,assignment]
|
||||
sys.stdout = Unbuffered(sys.stdout) # type: ignore[assignment]
|
||||
|
||||
print_preamble(platform=platform, options=options, identifiers=identifiers)
|
||||
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
import subprocess
|
||||
import sys
|
||||
import textwrap
|
||||
from collections import OrderedDict
|
||||
from pathlib import Path, PurePath
|
||||
from typing import Iterator, List, NamedTuple, Set
|
||||
from typing import Iterator, List, NamedTuple, Set, Tuple
|
||||
|
||||
from .architecture import Architecture
|
||||
from .docker_container import DockerContainer
|
||||
from .logger import log
|
||||
from .options import Options
|
||||
from .typing import PathOrStr, assert_never
|
||||
from .typing import OrderedDict, PathOrStr, assert_never
|
||||
from .util import (
|
||||
BuildSelector,
|
||||
NonPlatformWheelError,
|
||||
@@ -80,7 +79,7 @@ def get_build_steps(
|
||||
Groups PythonConfigurations into BuildSteps. Each BuildStep represents a
|
||||
separate Docker container.
|
||||
"""
|
||||
steps: OrderedDict[tuple, BuildStep] = OrderedDict() # type: ignore[type-arg]
|
||||
steps = OrderedDict[Tuple[str, str, str], BuildStep]()
|
||||
|
||||
for config in python_configurations:
|
||||
_, platform_tag = config.identifier.split("-", 1)
|
||||
|
||||
@@ -42,7 +42,7 @@ class CommandLineArguments:
|
||||
platform: Literal["auto", "linux", "macos", "windows"]
|
||||
archs: Optional[str]
|
||||
output_dir: Optional[str]
|
||||
config_file: Optional[str]
|
||||
config_file: str
|
||||
package_dir: str
|
||||
print_build_identifiers: bool
|
||||
allow_empty: bool
|
||||
@@ -335,8 +335,9 @@ class Options:
|
||||
def config_file_path(self) -> Optional[Path]:
|
||||
args = self.command_line_arguments
|
||||
|
||||
if args.config_file is not None:
|
||||
if args.config_file:
|
||||
return Path(args.config_file.format(package=args.package_dir))
|
||||
|
||||
# return pyproject.toml, if it's available
|
||||
pyproject_toml_path = Path(args.package_dir) / "pyproject.toml"
|
||||
if pyproject_toml_path.exists():
|
||||
|
||||
@@ -11,6 +11,7 @@ python_configurations = [
|
||||
{ identifier = "cp39-manylinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-manylinux_i686", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
{ identifier = "pp37-manylinux_x86_64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" },
|
||||
{ identifier = "pp38-manylinux_x86_64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
|
||||
{ identifier = "cp36-manylinux_aarch64", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
|
||||
{ identifier = "cp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
|
||||
{ identifier = "cp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
@@ -27,7 +28,9 @@ python_configurations = [
|
||||
{ identifier = "cp39-manylinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" },
|
||||
{ identifier = "cp310-manylinux_s390x", version = "3.10", path_str = "/opt/python/cp310-cp310" },
|
||||
{ identifier = "pp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" },
|
||||
{ identifier = "pp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
|
||||
{ identifier = "pp37-manylinux_i686", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" },
|
||||
{ identifier = "pp38-manylinux_i686", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" },
|
||||
{ identifier = "cp36-musllinux_x86_64", version = "3.6", path_str = "/opt/python/cp36-cp36m" },
|
||||
{ identifier = "cp37-musllinux_x86_64", version = "3.7", path_str = "/opt/python/cp37-cp37m" },
|
||||
{ identifier = "cp38-musllinux_x86_64", version = "3.8", path_str = "/opt/python/cp38-cp38" },
|
||||
@@ -62,13 +65,14 @@ python_configurations = [
|
||||
{ identifier = "cp38-macosx_x86_64", version = "3.8", url = "https://www.python.org/ftp/python/3.8.10/python-3.8.10-macosx10.9.pkg" },
|
||||
{ identifier = "cp38-macosx_arm64", version = "3.8", url = "https://www.python.org/ftp/python/3.8.10/python-3.8.10-macosx10.9.pkg" },
|
||||
{ identifier = "cp38-macosx_universal2", version = "3.8", url = "https://www.python.org/ftp/python/3.8.10/python-3.8.10-macosx10.9.pkg" },
|
||||
{ identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg" },
|
||||
{ identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg" },
|
||||
{ identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg" },
|
||||
{ identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5-osx64.tar.bz2" },
|
||||
{ identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.8/python-3.9.8-macos11.pkg" },
|
||||
{ identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.8/python-3.9.8-macos11.pkg" },
|
||||
{ identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.8/python-3.9.8-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0post2-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0post2-macos11.pkg" },
|
||||
{ identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0post2-macos11.pkg" },
|
||||
{ identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.7-osx64.tar.bz2" },
|
||||
{ identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2" },
|
||||
]
|
||||
|
||||
[windows]
|
||||
@@ -79,9 +83,10 @@ python_configurations = [
|
||||
{ identifier = "cp37-win_amd64", version = "3.7.9", arch = "64" },
|
||||
{ identifier = "cp38-win32", version = "3.8.10", arch = "32" },
|
||||
{ identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" },
|
||||
{ identifier = "cp39-win32", version = "3.9.7", arch = "32" },
|
||||
{ identifier = "cp39-win_amd64", version = "3.9.7", arch = "64" },
|
||||
{ identifier = "cp39-win32", version = "3.9.8", arch = "32" },
|
||||
{ identifier = "cp39-win_amd64", version = "3.9.8", arch = "64" },
|
||||
{ identifier = "cp310-win32", version = "3.10.0", arch = "32" },
|
||||
{ identifier = "cp310-win_amd64", version = "3.10.0", arch = "64" },
|
||||
{ identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5-win64.zip" },
|
||||
{ identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.7-win64.zip" },
|
||||
{ identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.7-win64.zip" },
|
||||
]
|
||||
|
||||
@@ -4,19 +4,19 @@
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
#
|
||||
backports.entry-points-selectable==1.1.0
|
||||
backports.entry-points-selectable==1.1.1
|
||||
# via virtualenv
|
||||
delocate==0.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.3
|
||||
# via virtualenv
|
||||
filelock==3.3.0
|
||||
filelock==3.3.2
|
||||
# via virtualenv
|
||||
importlib-metadata==4.8.1
|
||||
importlib-metadata==4.8.2
|
||||
# via
|
||||
# backports.entry-points-selectable
|
||||
# virtualenv
|
||||
importlib-resources==5.2.2
|
||||
importlib-resources==5.4.0
|
||||
# via virtualenv
|
||||
platformdirs==2.4.0
|
||||
# via virtualenv
|
||||
@@ -26,7 +26,7 @@ typing-extensions==3.10.0.2
|
||||
# via
|
||||
# delocate
|
||||
# importlib-metadata
|
||||
virtualenv==20.8.1
|
||||
virtualenv==20.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.0
|
||||
# via
|
||||
@@ -38,7 +38,7 @@ zipp==3.6.0
|
||||
# importlib-resources
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==21.2.4
|
||||
pip==21.3.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==58.2.0
|
||||
setuptools==58.5.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
#
|
||||
backports.entry-points-selectable==1.1.0
|
||||
backports.entry-points-selectable==1.1.1
|
||||
# via virtualenv
|
||||
delocate==0.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.3
|
||||
# via virtualenv
|
||||
filelock==3.3.0
|
||||
filelock==3.3.2
|
||||
# via virtualenv
|
||||
importlib-metadata==4.8.1
|
||||
importlib-metadata==4.8.2
|
||||
# via
|
||||
# backports.entry-points-selectable
|
||||
# virtualenv
|
||||
@@ -24,7 +24,7 @@ typing-extensions==3.10.0.2
|
||||
# via
|
||||
# delocate
|
||||
# importlib-metadata
|
||||
virtualenv==20.8.1
|
||||
virtualenv==20.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.0
|
||||
# via
|
||||
@@ -34,7 +34,7 @@ zipp==3.6.0
|
||||
# via importlib-metadata
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==21.2.4
|
||||
pip==21.3.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==58.2.0
|
||||
setuptools==58.5.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
#
|
||||
backports.entry-points-selectable==1.1.0
|
||||
backports.entry-points-selectable==1.1.1
|
||||
# via virtualenv
|
||||
delocate==0.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.3
|
||||
# via virtualenv
|
||||
filelock==3.3.0
|
||||
filelock==3.3.2
|
||||
# via virtualenv
|
||||
platformdirs==2.4.0
|
||||
# via virtualenv
|
||||
@@ -18,7 +18,7 @@ six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==3.10.0.2
|
||||
# via delocate
|
||||
virtualenv==20.8.1
|
||||
virtualenv==20.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.0
|
||||
# via
|
||||
@@ -26,7 +26,7 @@ wheel==0.37.0
|
||||
# delocate
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==21.2.4
|
||||
pip==21.3.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==58.2.0
|
||||
setuptools==58.5.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
#
|
||||
backports.entry-points-selectable==1.1.0
|
||||
backports.entry-points-selectable==1.1.1
|
||||
# via virtualenv
|
||||
delocate==0.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.3
|
||||
# via virtualenv
|
||||
filelock==3.3.0
|
||||
filelock==3.3.2
|
||||
# via virtualenv
|
||||
platformdirs==2.4.0
|
||||
# via virtualenv
|
||||
@@ -18,7 +18,7 @@ six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==3.10.0.2
|
||||
# via delocate
|
||||
virtualenv==20.8.1
|
||||
virtualenv==20.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.0
|
||||
# via
|
||||
@@ -26,7 +26,7 @@ wheel==0.37.0
|
||||
# delocate
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==21.2.4
|
||||
pip==21.3.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==58.2.0
|
||||
setuptools==58.5.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
#
|
||||
# bin/update_dependencies.py
|
||||
#
|
||||
backports.entry-points-selectable==1.1.0
|
||||
backports.entry-points-selectable==1.1.1
|
||||
# via virtualenv
|
||||
delocate==0.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
distlib==0.3.3
|
||||
# via virtualenv
|
||||
filelock==3.3.0
|
||||
filelock==3.3.2
|
||||
# via virtualenv
|
||||
platformdirs==2.4.0
|
||||
# via virtualenv
|
||||
@@ -18,7 +18,7 @@ six==1.16.0
|
||||
# via virtualenv
|
||||
typing-extensions==3.10.0.2
|
||||
# via delocate
|
||||
virtualenv==20.8.1
|
||||
virtualenv==20.10.0
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
wheel==0.37.0
|
||||
# via
|
||||
@@ -26,7 +26,7 @@ wheel==0.37.0
|
||||
# delocate
|
||||
|
||||
# The following packages are considered to be unsafe in a requirements file:
|
||||
pip==21.2.4
|
||||
pip==21.3.1
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
setuptools==58.2.0
|
||||
setuptools==58.5.3
|
||||
# via -r cibuildwheel/resources/constraints.in
|
||||
|
||||
@@ -1,43 +1,43 @@
|
||||
[x86_64]
|
||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-10-10-fee0ae1
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-10-10-790306f
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-10-10-790306f
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-10-10-790306f
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2021-10-10-790306f
|
||||
manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-11-07-f38ff36
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-11-07-28723f3
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-11-07-28723f3
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-11-07-28723f3
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2021-11-07-28723f3
|
||||
|
||||
[i686]
|
||||
manylinux1 = quay.io/pypa/manylinux1_i686:2021-10-10-fee0ae1
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-10-10-790306f
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-10-10-790306f
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-10-10-790306f
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2021-10-10-790306f
|
||||
manylinux1 = quay.io/pypa/manylinux1_i686:2021-11-07-f38ff36
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-11-07-28723f3
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-11-07-28723f3
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-11-07-28723f3
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2021-11-07-28723f3
|
||||
|
||||
[pypy_x86_64]
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-10-10-790306f
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-10-10-790306f
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-10-10-790306f
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-11-07-28723f3
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-11-07-28723f3
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-11-07-28723f3
|
||||
|
||||
[pypy_i686]
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-10-10-790306f
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-10-10-790306f
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-10-10-790306f
|
||||
manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-11-07-28723f3
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-11-07-28723f3
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-11-07-28723f3
|
||||
|
||||
[aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-10-10-790306f
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-10-10-790306f
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2021-10-10-790306f
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-11-07-28723f3
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-11-07-28723f3
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2021-11-07-28723f3
|
||||
|
||||
[ppc64le]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-10-10-790306f
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-10-10-790306f
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2021-10-10-790306f
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-11-07-28723f3
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-11-07-28723f3
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2021-11-07-28723f3
|
||||
|
||||
[s390x]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-10-10-790306f
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-10-10-790306f
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2021-10-10-790306f
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-11-07-28723f3
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-11-07-28723f3
|
||||
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2021-11-07-28723f3
|
||||
|
||||
[pypy_aarch64]
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-10-10-790306f
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-10-10-790306f
|
||||
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-11-07-28723f3
|
||||
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-11-07-28723f3
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import urllib.request
|
||||
from enum import Enum
|
||||
from pathlib import Path
|
||||
from time import sleep
|
||||
from typing import Any, Dict, Iterator, List, Optional
|
||||
from typing import Any, Dict, Iterable, Iterator, List, Optional, TextIO
|
||||
|
||||
import bracex
|
||||
import certifi
|
||||
@@ -126,9 +126,9 @@ def selector_matches(patterns: str, string: str) -> bool:
|
||||
expansion. For example, 'cp{36,37}-*' would match either of 'cp36-*' or
|
||||
'cp37-*'.
|
||||
"""
|
||||
patterns_list: List[str] = patterns.split()
|
||||
patterns_list = itertools.chain.from_iterable(bracex.expand(p) for p in patterns_list) # type: ignore[assignment]
|
||||
return any(fnmatch.fnmatch(string, pat) for pat in patterns_list)
|
||||
patterns_list = patterns.split()
|
||||
expanded_patterns = itertools.chain.from_iterable(bracex.expand(p) for p in patterns_list)
|
||||
return any(fnmatch.fnmatch(string, pat) for pat in expanded_patterns)
|
||||
|
||||
|
||||
class IdentifierSelector:
|
||||
@@ -203,18 +203,18 @@ class TestSelector(IdentifierSelector):
|
||||
|
||||
# Taken from https://stackoverflow.com/a/107717
|
||||
class Unbuffered:
|
||||
def __init__(self, stream): # type: ignore[no-untyped-def]
|
||||
def __init__(self, stream: TextIO) -> None:
|
||||
self.stream = stream
|
||||
|
||||
def write(self, data): # type: ignore[no-untyped-def]
|
||||
def write(self, data: str) -> None:
|
||||
self.stream.write(data)
|
||||
self.stream.flush()
|
||||
|
||||
def writelines(self, data): # type: ignore[no-untyped-def]
|
||||
def writelines(self, data: Iterable[str]) -> None:
|
||||
self.stream.writelines(data)
|
||||
self.stream.flush()
|
||||
|
||||
def __getattr__(self, attr): # type: ignore[no-untyped-def]
|
||||
def __getattr__(self, attr: str) -> Any:
|
||||
return getattr(self.stream, attr)
|
||||
|
||||
|
||||
|
||||
@@ -112,7 +112,6 @@ def install_pypy(version: str, arch: str, url: str) -> Path:
|
||||
download(url, pypy_zip)
|
||||
# Extract to the parent directory because the zip file still contains a directory
|
||||
extract_zip(pypy_zip, installation_path.parent)
|
||||
(installation_path / "python.exe").symlink_to(installation_path / "pypy3.exe")
|
||||
return installation_path
|
||||
|
||||
|
||||
|
||||
+25
-10
@@ -2,24 +2,39 @@
|
||||
title: Changelog
|
||||
---
|
||||
|
||||
### v2.2.0 (prerelease)
|
||||
### v2.2.2
|
||||
|
||||
_Currently in prerelease. The below release notes will be condensed into a single entry on final release._
|
||||
_26 October 2021_
|
||||
|
||||
_v2.2.0b1 (19 October 2021)_
|
||||
- 🐛 Fix bug in the GitHub Action step causing a syntax error (#895)
|
||||
|
||||
- 🌟 TOML option overrides. This provides much greater flexibility in configuration via pyproject.toml.
|
||||
### v2.2.1
|
||||
|
||||
_26 October 2021_
|
||||
|
||||
- 🛠 Added a `config-file` option on the GitHub Action to specify something other than pyproject.toml in your GitHub Workflow file. (#883)
|
||||
- 🐛 Fix missing resources in sdist and released wheel on PyPI. We've also made some internal changes to our release processes to make them more reliable. (#893, #894)
|
||||
|
||||
### v2.2.0
|
||||
|
||||
_22 October 2021_
|
||||
|
||||
- 🌟 Added support for [musllinux](https://www.python.org/dev/peps/pep-0656/). Support for this new wheel format lets projects build wheels for Linux distributions that use [musl libc](https://musl.libc.org/), notably, [Alpine](https://alpinelinux.org/) Docker containers. (#768)
|
||||
|
||||
Musllinux builds are enabled by default. If you're not ready to build musllinux, add `*-musllinux_*` to your [`CIBW_SKIP`/`skip`](https://cibuildwheel.readthedocs.io/en/stable/options/#build-skip) option. Or, you might have to make some changes to your options - to simplify that process, you can use...
|
||||
|
||||
- 🌟 TOML option overrides! This provides much greater flexibility in configuration via pyproject.toml. (#854)
|
||||
|
||||
You can now set build options for any subset of your builds using a match pattern. So, for example, you can customise CPython 3.8 builds with an override on `cp38-*` or musllinux builds by selecting `*musllinux*`. Check out [the docs](https://cibuildwheel.readthedocs.io/en/latest/options/#overrides) for more info on the specifics.
|
||||
|
||||
_v2.2.0a1 (23 September 2021)_
|
||||
- 🛠 Added support for building PyPy wheels on macOS 11 CI runners. (#875)
|
||||
|
||||
- 🌟 Added support for [musllinux](https://www.python.org/dev/peps/pep-0656/). Support for this new wheel format lets projects build wheels for Linux distributions that use [musl libc](https://musl.libc.org/), notably, [Alpine](https://alpinelinux.org/) Docker containers.
|
||||
|
||||
Musllinux builds are enabled by default. To disable them on your project, add `*-musllinux_*` to your [`CIBW_SKIP`/`skip`](https://cibuildwheel.readthedocs.io/en/stable/options/#build-skip)
|
||||
option. (#768)
|
||||
- 🛠 Setting an empty string for the [`CIBW_*_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) option will now fallthrough to the config file or cibuildwheel's default, rather than causing an error. This makes the option easier to use in CI build matricies. (#829)
|
||||
|
||||
- 🛠 Support for TOML 1.0 when reading config files, via the `tomli` package. (#876)
|
||||
|
||||
<sup>Note: This version is not available on PyPI due to some missing resources in the release files. Please use a later version instead.</sup>
|
||||
|
||||
### v2.1.3
|
||||
|
||||
_6 October 2021_
|
||||
@@ -455,7 +470,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/pypa/cibuildwheel-azure-example)
|
||||
[cibuildwheel-azure-example](https://github.com/joerick/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).
|
||||
|
||||
@@ -127,12 +127,10 @@ bin/bump_version.py
|
||||
|
||||
You'll be prompted to enter the new version number. Update the changelog when prompted. The script will create a 'bump version' commit and version tag.
|
||||
|
||||
Finally, cut the release and upload to PyPI/GitHub.
|
||||
Finally, cut the release and push to GitHub.
|
||||
|
||||
```bash
|
||||
rm -rf dist
|
||||
python -m build
|
||||
git push && git push --tags && twine upload dist/*
|
||||
git push && git push --tags
|
||||
```
|
||||
|
||||
Then head to https://github.com/pypa/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. Once the release is created inside GitHub, a CI job will create the assets and upload them to PyPI.
|
||||
|
||||
@@ -256,8 +256,8 @@
|
||||
|
||||
- name: Tokenizer
|
||||
gh: OpenNMT/Tokenizer
|
||||
ci: [github, travisci]
|
||||
os: [apple, linux]
|
||||
ci: [github]
|
||||
os: [windows, apple, linux]
|
||||
|
||||
- name: matrixprofile
|
||||
gh: matrix-profile-foundation/matrixprofile
|
||||
@@ -494,7 +494,7 @@
|
||||
ci: [github]
|
||||
os: [apple, linux, windows]
|
||||
|
||||
- name: Pixar OpenTimelineIO
|
||||
- name: OpenTimelineIO
|
||||
gh: PixarAnimationStudios/OpenTimelineIO
|
||||
ci: [github]
|
||||
os: [apple, linux, windows]
|
||||
|
||||
+71
-10
@@ -4,15 +4,16 @@ title: Delivering to PyPI
|
||||
|
||||
After you've built your wheels, you'll probably want to deliver them to PyPI.
|
||||
|
||||
### Manual method
|
||||
## Manual method
|
||||
|
||||
On your development machine, do the following...
|
||||
On your development machine, install [pipx](https://pypa.github.io/pipx/) and do the following:
|
||||
|
||||
```bash
|
||||
# Either download the SDist from your CI, or make it:
|
||||
# Clear out your 'dist' folder.
|
||||
rm -rf dist
|
||||
# Make a source distribution
|
||||
python setup.py sdist
|
||||
pipx run build --sdist
|
||||
|
||||
# 🏃🏻
|
||||
# Go and download your wheel files from wherever you put them. e.g. your CI
|
||||
@@ -20,17 +21,77 @@ python setup.py sdist
|
||||
# 'dist' folder.
|
||||
|
||||
# Upload using 'twine' (you may need to 'pip install twine')
|
||||
twine upload dist/*
|
||||
pipx run twine upload dist/*
|
||||
```
|
||||
|
||||
### Semi-automatic method using wheelhouse-uploader
|
||||
## Automatic method
|
||||
|
||||
Obviously, manual steps are for chumps, so we can automate this a little by using [wheelhouse-uploader](https://github.com/ogrisel/wheelhouse-uploader).
|
||||
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. You just need to bump the
|
||||
version and tag it.
|
||||
|
||||
> Quick note from me - using S3 as a storage didn't work due to a [bug](https://issues.apache.org/jira/browse/LIBCLOUD-792) in libcloud. Feel free to use my fork of that package that fixes the bug `pip install https://github.com/joerick/libcloud/archive/v1.5.0-s3fix.zip`
|
||||
### Generic instructions
|
||||
|
||||
### Automatic method
|
||||
Make your SDist with the [build](https://github.com/pypa/build) tool, and your wheels with cibuildwheel. If you can make the files available as
|
||||
downloadable artifacts, this make testing before releases easier (depending on your CI provider's options). The "publish" job/step should collect the
|
||||
files, and then run `twine upload <paths>` (possibly via [pipx](https://github.com/pypa/pipx)); this should only happen on tags or "releases".
|
||||
|
||||
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.
|
||||
### GitHub Actions
|
||||
|
||||
[`examples/travis-ci-deploy.yml`](https://github.com/pypa/cibuildwheel/blob/main/examples/travis-ci-deploy.yml) and [`examples/github-deploy.yml`](https://github.com/pypa/cibuildwheel/blob/main/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.
|
||||
GitHub actions has pipx in all the runners as a supported package manager, as
|
||||
well as several useful actions. Alongside your existing job(s) that runs cibuildwheel to make wheels, you will probably want to build an SDist:
|
||||
|
||||
```yaml
|
||||
make_sdist:
|
||||
name: Make SDist
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0 # Optional, use if you use setuptools_scm
|
||||
submodules: true # Optional, use if you have submodules
|
||||
|
||||
- name: Build SDist
|
||||
run: pipx run build --sdist
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
path: dist/*.tar.gz
|
||||
```
|
||||
|
||||
Then, you need to publish the artifacts that the previous jobs have built. This final job should run only on release or tag, depending on your preference. It gathers the artifacts from the sdist and wheel jobs and uploads them to PyPI.
|
||||
|
||||
This requires a [PyPI upload token](https://pypi.org/manage/account/token/), stored in your [GitHub repo's secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) as `pypi_password`.
|
||||
|
||||
```yaml
|
||||
upload_all:
|
||||
needs: [build_wheels, make_sdist]
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'release' && github.event.action == 'published'
|
||||
steps:
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: artifact
|
||||
path: dist
|
||||
|
||||
- uses: pypa/gh-action-pypi-publish@v1.4.2
|
||||
with:
|
||||
user: __token__
|
||||
password: ${{ secrets.pypi_password }}
|
||||
```
|
||||
|
||||
You should use dependabot to keep the publish action up to date. In the above
|
||||
example, the same name (the default, "artifact" is used for all upload-artifact
|
||||
runs, so we can just download all of the in one step into a common directory.
|
||||
|
||||
See
|
||||
[`examples/github-deploy.yml`](https://github.com/pypa/cibuildwheel/blob/main/examples/github-deploy.yml)
|
||||
for an example configuration that automatically upload wheels to PyPI. Also see
|
||||
[scikit-hep.org/developer/gha_wheels](https://scikit-hep.org/developer/gha_wheels)
|
||||
for a complete guide.
|
||||
|
||||
### TravisCI
|
||||
|
||||
See
|
||||
[`examples/travis-ci-deploy.yml`](https://github.com/pypa/cibuildwheel/blob/main/examples/travis-ci-deploy.yml)
|
||||
for an example configuration.
|
||||
|
||||
+2
-2
@@ -127,7 +127,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: pypa/cibuildwheel@v2.2.0b1
|
||||
uses: pypa/cibuildwheel@v2.2.2
|
||||
```
|
||||
|
||||
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.
|
||||
@@ -153,7 +153,7 @@ The second option, and the only one that supports other CI systems, is using a `
|
||||
|
||||
```bash
|
||||
# requirements-cibw.txt
|
||||
cibuildwheel==2.2.0b1
|
||||
cibuildwheel==2.2.2
|
||||
```
|
||||
|
||||
Then your install step would have `python -m pip install -r requirements-cibw.txt` in it. Your `.github/dependabot.yml` file could look like this:
|
||||
|
||||
+2
-1
@@ -208,7 +208,8 @@ When setting the options, you can use shell-style globbing syntax, as per [fnmat
|
||||
| Python 3.8 | cp38-macosx_x86_64<br/>cp38-macosx_universal2<br/>cp38-macosx_arm64 | cp38-win_amd64<br/>cp38-win32 | cp38-manylinux_x86_64<br/>cp38-manylinux_i686<br/>cp38-musllinux_x86_64<br/>cp38-musllinux_i686 | cp38-manylinux_aarch64<br/>cp38-manylinux_ppc64le<br/>cp38-manylinux_s390x<br/>cp38-musllinux_aarch64<br/>cp38-musllinux_ppc64le<br/>cp38-musllinux_s390x |
|
||||
| Python 3.9 | cp39-macosx_x86_64<br/>cp39-macosx_universal2<br/>cp39-macosx_arm64 | cp39-win_amd64<br/>cp39-win32 | cp39-manylinux_x86_64<br/>cp39-manylinux_i686<br/>cp39-musllinux_x86_64<br/>cp39-musllinux_i686 | cp39-manylinux_aarch64<br/>cp39-manylinux_ppc64le<br/>cp39-manylinux_s390x<br/>cp39-musllinux_aarch64<br/>cp39-musllinux_ppc64le<br/>cp39-musllinux_s390x |
|
||||
| Python 3.10 | cp310-macosx_x86_64<br/>cp310-macosx_universal2<br/>cp310-macosx_arm64 | cp310-win_amd64<br/>cp310-win32 | cp310-manylinux_x86_64<br/>cp310-manylinux_i686<br/>cp310-musllinux_x86_64<br/>cp310-musllinux_i686 | cp310-manylinux_aarch64<br/>cp310-manylinux_ppc64le<br/>cp310-manylinux_s390x<br/>cp310-musllinux_aarch64<br/>cp310-musllinux_ppc64le<br/>cp310-musllinux_s390x |
|
||||
| PyPy3.7 v7.3 | pp37-macosx_x86_64 | pp37-win_amd64 | pp37-manylinux_x86_64 | |
|
||||
| PyPy3.7 v7.3 | pp37-macosx_x86_64 | pp37-win_amd64 | pp37-manylinux_x86_64<br/>pp37-manylinux_i686 | pp37-manylinux_aarch64 |
|
||||
| PyPy3.8 v7.3 | pp38-macosx_x86_64 | pp38-win_amd64 | pp38-manylinux_x86_64<br/>pp38-manylinux_i686 | pp38-manylinux_aarch64 |
|
||||
|
||||
The list of supported and currently selected build identifiers can also be retrieved by passing the `--print-build-identifiers` flag to cibuildwheel.
|
||||
The format is `python_tag-platform_tag`, with tags similar to those in [PEP 425](https://www.python.org/dev/peps/pep-0425/#details).
|
||||
|
||||
+2
-2
@@ -118,7 +118,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build wheels
|
||||
run: pipx run cibuildwheel==2.2.0b1
|
||||
run: pipx run cibuildwheel==2.2.2
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
@@ -153,7 +153,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/
|
||||
- uses: actions/setup-python@v2
|
||||
|
||||
- name: Install cibuildwheel
|
||||
run: python -m pip install cibuildwheel==2.2.0b1
|
||||
run: python -m pip install cibuildwheel==2.2.2
|
||||
|
||||
- name: Build wheels
|
||||
run: python -m cibuildwheel --output-dir wheelhouse
|
||||
|
||||
+101
-101
@@ -23,29 +23,29 @@ title: Working examples
|
||||
| [scikit-image][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Image processing library. Uses cibuildwheel to build and test a project that uses Cython with platform-native code. |
|
||||
| [twisted-iocpsupport][] | ![github icon][] | ![windows icon][] | A submodule of Twisted that hooks into native C APIs using Cython. |
|
||||
| [cmake][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. |
|
||||
| [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. |
|
||||
| [duckdb][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | DuckDB is an in-process SQL OLAP Database Management System |
|
||||
| [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. |
|
||||
| [cvxpy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A Python-embedded modeling language for convex optimization problems. |
|
||||
| [Triton][] | ![github icon][] | ![linux icon][] | Self hosted runners |
|
||||
| [PyOxidizer][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A modern Python application packaging and distribution tool |
|
||||
| [pyzmq][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python bindings for zeromq, the networking library. Uses Cython and CFFI. |
|
||||
| [OpenSpiel][] | ![github icon][] | ![apple icon][] ![linux icon][] | OpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games. |
|
||||
| [vispy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Main repository for Vispy |
|
||||
| [River][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | 🌊 Online machine learning in Python |
|
||||
| [vispy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Main repository for Vispy |
|
||||
| [aiortc][] | ![github icon][] | ![apple icon][] ![linux icon][] | WebRTC and ORTC implementation for Python using asyncio. |
|
||||
| [Confluent client for Kafka][] | ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | setup in `tools/wheels/build-wheels.bat` |
|
||||
| [tinyobjloader][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Tiny but powerful single file wavefront obj loader |
|
||||
| [coverage.py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The coverage tool for Python |
|
||||
| [PyCryptodome][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A self-contained cryptographic library 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 |
|
||||
| [Dependency Injector][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Dependency injection framework for Python, uses Windows TravisCI |
|
||||
| [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more |
|
||||
| [PyYAML][] | ![github icon][] | ![apple icon][] | Canonical source repository for PyYAML |
|
||||
| [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. |
|
||||
| [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. |
|
||||
| [OpenColorIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A color management framework for visual effects and animation. |
|
||||
| [PyTables][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python package to manage extremely large amounts of data |
|
||||
| [Line Profiler][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Line-by-line profiling for Python |
|
||||
| [Pixar OpenTimelineIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Open Source API and interchange format for editorial timeline information. |
|
||||
| [OpenTimelineIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Open Source API and interchange format for editorial timeline information. |
|
||||
| [ruptures][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Extensive Cython + NumPy [pyproject.toml](https://github.com/deepcharles/ruptures/blob/master/pyproject.toml) example. |
|
||||
| [pikepdf][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python library for reading and writing PDF, powered by qpdf |
|
||||
| [aioquic][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | QUIC and HTTP/3 implementation in Python |
|
||||
@@ -70,23 +70,23 @@ title: Working examples
|
||||
| [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. |
|
||||
| [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 |
|
||||
| [Tokenizer][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] | Fast and customizable text tokenization library with BPE and SentencePiece support |
|
||||
| [Tokenizer][] | ![github icon][] | ![windows 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. |
|
||||
| [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 |
|
||||
| [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python |
|
||||
| [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. |
|
||||
| [fathon][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | python package for DFA (Detrended Fluctuation Analysis) and related algorithms |
|
||||
| [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 |
|
||||
| [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. |
|
||||
| [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. |
|
||||
| [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. |
|
||||
| [ninja][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. |
|
||||
| [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 |
|
||||
| [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. |
|
||||
| [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 |
|
||||
| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. |
|
||||
| [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. |
|
||||
@@ -108,29 +108,29 @@ title: Working examples
|
||||
[scikit-image]: https://github.com/scikit-image/scikit-image
|
||||
[twisted-iocpsupport]: https://github.com/twisted/twisted-iocpsupport
|
||||
[cmake]: https://github.com/scikit-build/cmake-python-distributions
|
||||
[websockets]: https://github.com/aaugustin/websockets
|
||||
[duckdb]: https://github.com/duckdb/duckdb
|
||||
[websockets]: https://github.com/aaugustin/websockets
|
||||
[cvxpy]: https://github.com/cvxpy/cvxpy
|
||||
[Triton]: https://github.com/openai/triton
|
||||
[PyOxidizer]: https://github.com/indygreg/PyOxidizer
|
||||
[pyzmq]: https://github.com/zeromq/pyzmq
|
||||
[OpenSpiel]: https://github.com/deepmind/open_spiel
|
||||
[vispy]: https://github.com/vispy/vispy
|
||||
[River]: https://github.com/online-ml/river
|
||||
[vispy]: https://github.com/vispy/vispy
|
||||
[aiortc]: https://github.com/aiortc/aiortc
|
||||
[Confluent client for Kafka]: https://github.com/confluentinc/confluent-kafka-python
|
||||
[tinyobjloader]: https://github.com/tinyobjloader/tinyobjloader
|
||||
[coverage.py]: https://github.com/nedbat/coveragepy
|
||||
[PyCryptodome]: https://github.com/Legrandin/pycryptodome
|
||||
[numexpr]: https://github.com/pydata/numexpr
|
||||
[Dependency Injector]: https://github.com/ets-labs/python-dependency-injector
|
||||
[numexpr]: https://github.com/pydata/numexpr
|
||||
[PyYAML]: https://github.com/yaml/pyyaml
|
||||
[h5py]: https://github.com/h5py/h5py
|
||||
[PyAV]: https://github.com/PyAV-Org/PyAV
|
||||
[OpenColorIO]: https://github.com/AcademySoftwareFoundation/OpenColorIO
|
||||
[PyTables]: https://github.com/PyTables/PyTables
|
||||
[Line Profiler]: https://github.com/pyutils/line_profiler
|
||||
[Pixar OpenTimelineIO]: https://github.com/PixarAnimationStudios/OpenTimelineIO
|
||||
[OpenTimelineIO]: https://github.com/PixarAnimationStudios/OpenTimelineIO
|
||||
[ruptures]: https://github.com/deepcharles/ruptures
|
||||
[pikepdf]: https://github.com/pikepdf/pikepdf
|
||||
[aioquic]: https://github.com/aiortc/aioquic
|
||||
@@ -160,18 +160,18 @@ title: Working examples
|
||||
[bx-python]: https://github.com/bxlab/bx-python
|
||||
[boost-histogram]: https://github.com/scikit-hep/boost-histogram
|
||||
[iDynTree]: https://github.com/robotology/idyntree
|
||||
[pybase64]: https://github.com/mayeut/pybase64
|
||||
[TgCrypto]: https://github.com/pyrogram/tgcrypto
|
||||
[pybase64]: https://github.com/mayeut/pybase64
|
||||
[etebase-py]: https://github.com/etesync/etebase-py
|
||||
[fathon]: https://github.com/stfbnc/fathon
|
||||
[pyjet]: https://github.com/scikit-hep/pyjet
|
||||
[numpythia]: https://github.com/scikit-hep/numpythia
|
||||
[polaroid]: https://github.com/daggy1234/polaroid
|
||||
[Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build
|
||||
[polaroid]: https://github.com/daggy1234/polaroid
|
||||
[ninja]: https://github.com/scikit-build/ninja-python-distributions
|
||||
[GSD]: https://github.com/glotzerlab/gsd
|
||||
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
||||
[clang-format]: https://github.com/ssciwr/clang-format-wheel
|
||||
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
||||
[GSD]: https://github.com/glotzerlab/gsd
|
||||
[pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext
|
||||
[xmlstarlet]: https://github.com/dimitern/xmlstarlet
|
||||
[CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib
|
||||
@@ -188,90 +188,90 @@ title: Working examples
|
||||
[apple icon]: data/readme_icons/apple.svg
|
||||
[linux icon]: data/readme_icons/linux.svg
|
||||
|
||||
<!-- scikit-learn: 47525, last pushed 0 days ago -->
|
||||
<!-- Tornado: 20226, last pushed 9 days ago -->
|
||||
<!-- Matplotlib: 14334, last pushed 0 days ago -->
|
||||
<!-- pytorch-fairseq: 14077, last pushed 0 days ago -->
|
||||
<!-- MyPy: 11462, last pushed 0 days ago -->
|
||||
<!-- uvloop: 8093, last pushed 5 days ago -->
|
||||
<!-- pydantic: 7761, last pushed 2 days ago -->
|
||||
<!-- psutil: 7724, last pushed 1 days ago -->
|
||||
<!-- vaex: 6633, last pushed 1 days ago -->
|
||||
<!-- Google Benchmark: 5790, last pushed 5 days ago -->
|
||||
<!-- asyncpg: 5107, last pushed 19 days ago -->
|
||||
<!-- Apache Beam: 5022, last pushed 0 days ago -->
|
||||
<!-- scikit-image: 4547, last pushed 2 days ago -->
|
||||
<!-- twisted-iocpsupport: 4386, last pushed 5 days ago -->
|
||||
<!-- cmake: 4195, last pushed 0 days ago -->
|
||||
<!-- websockets: 3600, last pushed 2 days ago -->
|
||||
<!-- duckdb: 3568, last pushed 0 days ago -->
|
||||
<!-- cvxpy: 3544, last pushed 2 days ago -->
|
||||
<!-- Triton: 3268, last pushed 0 days ago -->
|
||||
<!-- PyOxidizer: 3215, last pushed 10 days ago -->
|
||||
<!-- pyzmq: 2930, last pushed 0 days ago -->
|
||||
<!-- OpenSpiel: 2889, last pushed 4 days ago -->
|
||||
<!-- vispy: 2741, last pushed 2 days ago -->
|
||||
<!-- River: 2610, last pushed 2 days ago -->
|
||||
<!-- aiortc: 2606, last pushed 4 days ago -->
|
||||
<!-- Confluent client for Kafka: 2462, last pushed 3 days ago -->
|
||||
<!-- tinyobjloader: 2286, last pushed 1 days ago -->
|
||||
<!-- coverage.py: 1752, last pushed 0 days ago -->
|
||||
<!-- PyCryptodome: 1730, last pushed 0 days ago -->
|
||||
<!-- numexpr: 1657, last pushed 15 days ago -->
|
||||
<!-- Dependency Injector: 1615, last pushed 4 days ago -->
|
||||
<!-- PyYAML: 1615, last pushed 0 days ago -->
|
||||
<!-- h5py: 1594, last pushed 2 days ago -->
|
||||
<!-- PyAV: 1357, last pushed 14 days ago -->
|
||||
<!-- OpenColorIO: 1168, last pushed 1 days ago -->
|
||||
<!-- PyTables: 1065, last pushed 14 days ago -->
|
||||
<!-- Line Profiler: 912, last pushed 3 days ago -->
|
||||
<!-- Pixar OpenTimelineIO: 907, last pushed 0 days ago -->
|
||||
<!-- ruptures: 811, last pushed 2 days ago -->
|
||||
<!-- pikepdf: 763, last pushed 1 days ago -->
|
||||
<!-- aioquic: 749, last pushed 13 days ago -->
|
||||
<!-- google neuroglancer: 689, last pushed 6 days ago -->
|
||||
<!-- DeepForest: 663, last pushed 79 days ago -->
|
||||
<!-- AutoPy: 578, last pushed 115 days ago -->
|
||||
<!-- Parselmouth: 567, last pushed 6 days ago -->
|
||||
<!-- H3-py: 436, last pushed 33 days ago -->
|
||||
<!-- python-rapidjson: 429, last pushed 107 days ago -->
|
||||
<!-- markupsafe: 426, last pushed 4 days ago -->
|
||||
<!-- Rtree: 421, last pushed 4 days ago -->
|
||||
<!-- python-snappy: 407, last pushed 81 days ago -->
|
||||
<!-- pybind11 cmake_example: 315, last pushed 4 days ago -->
|
||||
<!-- KDEpy: 302, last pushed 129 days ago -->
|
||||
<!-- tgcalls: 275, last pushed 20 days ago -->
|
||||
<!-- dd-trace-py: 272, last pushed 1 days ago -->
|
||||
<!-- pybind11 python_example: 271, last pushed 4 days ago -->
|
||||
<!-- cyvcf2: 269, last pushed 40 days ago -->
|
||||
<!-- sourmash: 262, last pushed 0 days ago -->
|
||||
<!-- time-machine: 214, last pushed 1 days ago -->
|
||||
<!-- matrixprofile: 201, last pushed 107 days ago -->
|
||||
<!-- CTranslate2: 188, last pushed 2 days ago -->
|
||||
<!-- iminuit: 185, last pushed 1 days ago -->
|
||||
<!-- jq.py: 176, last pushed 69 days ago -->
|
||||
<!-- Tokenizer: 156, last pushed 2 days ago -->
|
||||
<!-- PyGLM: 119, last pushed 11 days ago -->
|
||||
<!-- bx-python: 106, last pushed 93 days ago -->
|
||||
<!-- boost-histogram: 92, last pushed 6 days ago -->
|
||||
<!-- iDynTree: 89, last pushed 7 days ago -->
|
||||
<!-- pybase64: 74, last pushed 3 days ago -->
|
||||
<!-- TgCrypto: 73, last pushed 7 days ago -->
|
||||
<!-- etebase-py: 52, last pushed 279 days ago -->
|
||||
<!-- fathon: 39, last pushed 130 days ago -->
|
||||
<!-- pyjet: 31, last pushed 4 days ago -->
|
||||
<!-- numpythia: 31, last pushed 4 days ago -->
|
||||
<!-- polaroid: 25, last pushed 8 days ago -->
|
||||
<!-- Imagecodecs (fork): 21, last pushed 46 days ago -->
|
||||
<!-- ninja: 19, last pushed 1 days ago -->
|
||||
<!-- GSD: 18, last pushed 2 days ago -->
|
||||
<!-- pybind11 scikit_build_example: 17, last pushed 4 days ago -->
|
||||
<!-- clang-format: 15, last pushed 3 days ago -->
|
||||
<!-- pyinstrument_cext: 10, last pushed 2 days ago -->
|
||||
<!-- xmlstarlet: 7, last pushed 80 days ago -->
|
||||
<!-- CorrectionLib: 7, last pushed 3 days ago -->
|
||||
<!-- SiPM: 4, last pushed 0 days ago -->
|
||||
<!-- pillow-heif: 3, last pushed 2 days ago -->
|
||||
<!-- scikit-learn: 47885, last pushed 0 days ago -->
|
||||
<!-- Tornado: 20263, last pushed 6 days ago -->
|
||||
<!-- Matplotlib: 14498, last pushed 0 days ago -->
|
||||
<!-- pytorch-fairseq: 14377, last pushed 0 days ago -->
|
||||
<!-- MyPy: 11768, last pushed 0 days ago -->
|
||||
<!-- uvloop: 8165, last pushed 6 days ago -->
|
||||
<!-- pydantic: 7995, last pushed 0 days ago -->
|
||||
<!-- psutil: 7806, last pushed 5 days ago -->
|
||||
<!-- vaex: 6691, last pushed 0 days ago -->
|
||||
<!-- Google Benchmark: 5867, last pushed 1 days ago -->
|
||||
<!-- asyncpg: 5169, last pushed 1 days ago -->
|
||||
<!-- Apache Beam: 5065, last pushed 0 days ago -->
|
||||
<!-- scikit-image: 4612, last pushed 0 days ago -->
|
||||
<!-- twisted-iocpsupport: 4417, last pushed 1 days ago -->
|
||||
<!-- cmake: 4256, last pushed 0 days ago -->
|
||||
<!-- duckdb: 3820, last pushed 0 days ago -->
|
||||
<!-- websockets: 3664, last pushed 3 days ago -->
|
||||
<!-- cvxpy: 3586, last pushed 0 days ago -->
|
||||
<!-- Triton: 3342, last pushed 0 days ago -->
|
||||
<!-- PyOxidizer: 3254, last pushed 4 days ago -->
|
||||
<!-- pyzmq: 2947, last pushed 1 days ago -->
|
||||
<!-- OpenSpiel: 2938, last pushed 1 days ago -->
|
||||
<!-- River: 2794, last pushed 0 days ago -->
|
||||
<!-- vispy: 2755, last pushed 0 days ago -->
|
||||
<!-- aiortc: 2644, last pushed 3 days ago -->
|
||||
<!-- Confluent client for Kafka: 2532, last pushed 5 days ago -->
|
||||
<!-- tinyobjloader: 2323, last pushed 31 days ago -->
|
||||
<!-- coverage.py: 1815, last pushed 0 days ago -->
|
||||
<!-- PyCryptodome: 1770, last pushed 1 days ago -->
|
||||
<!-- Dependency Injector: 1686, last pushed 1 days ago -->
|
||||
<!-- numexpr: 1673, last pushed 0 days ago -->
|
||||
<!-- PyYAML: 1653, last pushed 11 days ago -->
|
||||
<!-- h5py: 1608, last pushed 1 days ago -->
|
||||
<!-- PyAV: 1383, last pushed 44 days ago -->
|
||||
<!-- OpenColorIO: 1178, last pushed 0 days ago -->
|
||||
<!-- PyTables: 1075, last pushed 44 days ago -->
|
||||
<!-- Line Profiler: 946, last pushed 11 days ago -->
|
||||
<!-- OpenTimelineIO: 927, last pushed 0 days ago -->
|
||||
<!-- ruptures: 842, last pushed 18 days ago -->
|
||||
<!-- pikepdf: 787, last pushed 0 days ago -->
|
||||
<!-- aioquic: 764, last pushed 7 days ago -->
|
||||
<!-- google neuroglancer: 697, last pushed 0 days ago -->
|
||||
<!-- DeepForest: 673, last pushed 109 days ago -->
|
||||
<!-- AutoPy: 585, last pushed 145 days ago -->
|
||||
<!-- Parselmouth: 584, last pushed 36 days ago -->
|
||||
<!-- H3-py: 442, last pushed 7 days ago -->
|
||||
<!-- python-rapidjson: 434, last pushed 24 days ago -->
|
||||
<!-- markupsafe: 433, last pushed 4 days ago -->
|
||||
<!-- Rtree: 428, last pushed 34 days ago -->
|
||||
<!-- python-snappy: 411, last pushed 6 days ago -->
|
||||
<!-- pybind11 cmake_example: 324, last pushed 14 days ago -->
|
||||
<!-- KDEpy: 307, last pushed 159 days ago -->
|
||||
<!-- tgcalls: 287, last pushed 50 days ago -->
|
||||
<!-- dd-trace-py: 281, last pushed 0 days ago -->
|
||||
<!-- pybind11 python_example: 279, last pushed 13 days ago -->
|
||||
<!-- cyvcf2: 275, last pushed 14 days ago -->
|
||||
<!-- sourmash: 262, last pushed 8 days ago -->
|
||||
<!-- time-machine: 218, last pushed 1 days ago -->
|
||||
<!-- matrixprofile: 208, last pushed 136 days ago -->
|
||||
<!-- CTranslate2: 200, last pushed 0 days ago -->
|
||||
<!-- iminuit: 187, last pushed 25 days ago -->
|
||||
<!-- jq.py: 181, last pushed 99 days ago -->
|
||||
<!-- Tokenizer: 159, last pushed 32 days ago -->
|
||||
<!-- PyGLM: 120, last pushed 4 days ago -->
|
||||
<!-- bx-python: 107, last pushed 11 days ago -->
|
||||
<!-- boost-histogram: 99, last pushed 1 days ago -->
|
||||
<!-- iDynTree: 90, last pushed 0 days ago -->
|
||||
<!-- TgCrypto: 78, last pushed 29 days ago -->
|
||||
<!-- pybase64: 75, last pushed 1 days ago -->
|
||||
<!-- etebase-py: 52, last pushed 309 days ago -->
|
||||
<!-- fathon: 41, last pushed 1 days ago -->
|
||||
<!-- pyjet: 31, last pushed 13 days ago -->
|
||||
<!-- numpythia: 31, last pushed 13 days ago -->
|
||||
<!-- Imagecodecs (fork): 26, last pushed 28 days ago -->
|
||||
<!-- polaroid: 25, last pushed 38 days ago -->
|
||||
<!-- ninja: 20, last pushed 1 days ago -->
|
||||
<!-- clang-format: 19, last pushed 26 days ago -->
|
||||
<!-- pybind11 scikit_build_example: 18, last pushed 13 days ago -->
|
||||
<!-- GSD: 18, last pushed 5 days ago -->
|
||||
<!-- pyinstrument_cext: 10, last pushed 32 days ago -->
|
||||
<!-- xmlstarlet: 7, last pushed 1 days ago -->
|
||||
<!-- CorrectionLib: 7, last pushed 4 days ago -->
|
||||
<!-- SiPM: 4, last pushed 2 days ago -->
|
||||
<!-- pillow-heif: 4, last pushed 4 days ago -->
|
||||
|
||||
<!-- END bin/projects.py -->
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ stack: python 3.7
|
||||
init:
|
||||
- cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH%
|
||||
|
||||
install: python -m pip install cibuildwheel==2.2.0b1
|
||||
install: python -m pip install cibuildwheel==2.2.2
|
||||
|
||||
build_script: python -m cibuildwheel --output-dir wheelhouse
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ jobs:
|
||||
- bash: |
|
||||
set -o errexit
|
||||
python3 -m pip install --upgrade pip
|
||||
pip3 install cibuildwheel==2.2.0b1
|
||||
pip3 install cibuildwheel==2.2.2
|
||||
displayName: Install dependencies
|
||||
- bash: cibuildwheel --output-dir wheelhouse .
|
||||
displayName: Build wheels
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
- bash: |
|
||||
set -o errexit
|
||||
python3 -m pip install --upgrade pip
|
||||
python3 -m pip install cibuildwheel==2.2.0b1
|
||||
python3 -m pip install cibuildwheel==2.2.2
|
||||
displayName: Install dependencies
|
||||
- bash: cibuildwheel --output-dir wheelhouse .
|
||||
displayName: Build wheels
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
- bash: |
|
||||
set -o errexit
|
||||
python -m pip install --upgrade pip
|
||||
pip install cibuildwheel==2.2.0b1
|
||||
pip install cibuildwheel==2.2.2
|
||||
displayName: Install dependencies
|
||||
- bash: cibuildwheel --output-dir wheelhouse .
|
||||
displayName: Build wheels
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
- run:
|
||||
name: Build the Linux wheels.
|
||||
command: |
|
||||
pip3 install --user cibuildwheel==2.2.0b1
|
||||
pip3 install --user cibuildwheel==2.2.2
|
||||
cibuildwheel --output-dir wheelhouse
|
||||
- store_artifacts:
|
||||
path: wheelhouse/
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- run:
|
||||
name: Build the OS X wheels.
|
||||
command: |
|
||||
pip3 install cibuildwheel==2.2.0b1
|
||||
pip3 install cibuildwheel==2.2.2
|
||||
cibuildwheel --output-dir wheelhouse
|
||||
- store_artifacts:
|
||||
path: wheelhouse/
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.2.0b1
|
||||
uses: pypa/cibuildwheel@v2.2.2
|
||||
env:
|
||||
CIBW_ARCHS_MACOS: x86_64 universal2
|
||||
|
||||
|
||||
@@ -21,13 +21,8 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
name: Install Python
|
||||
with:
|
||||
python-version: '3.8'
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.2.0b1
|
||||
uses: pypa/cibuildwheel@v2.2.2
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
@@ -39,13 +34,8 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
name: Install Python
|
||||
with:
|
||||
python-version: '3.8'
|
||||
|
||||
- name: Build sdist
|
||||
run: python setup.py sdist
|
||||
run: pipx run build --sdist
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.2.0b1
|
||||
uses: pypa/cibuildwheel@v2.2.2
|
||||
# to supply options, put them in 'env', like:
|
||||
# env:
|
||||
# CIBW_SOME_OPTION: value
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
platforms: all
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.2.0b1
|
||||
uses: pypa/cibuildwheel@v2.2.2
|
||||
env:
|
||||
# configure cibuildwheel to build native archs ('auto'), and some
|
||||
# emulated ones
|
||||
|
||||
@@ -12,7 +12,7 @@ linux:
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
script:
|
||||
- curl -sSL https://get.docker.com/ | sh
|
||||
- python -m pip install cibuildwheel==2.2.0b1
|
||||
- python -m pip install cibuildwheel==2.2.2
|
||||
- cibuildwheel --output-dir wheelhouse
|
||||
artifacts:
|
||||
paths:
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||
|
||||
install:
|
||||
- python3 -m pip install cibuildwheel==2.2.0b1
|
||||
- python3 -m pip install cibuildwheel==2.2.2
|
||||
|
||||
script:
|
||||
# build the wheels, put them into './wheelhouse'
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- ln -s /c/Python38/python.exe /c/Python38/python3.exe
|
||||
|
||||
install:
|
||||
- python3 -m pip install cibuildwheel==2.2.0b1
|
||||
- python3 -m pip install cibuildwheel==2.2.2
|
||||
|
||||
script:
|
||||
# build the wheels, put them into './wheelhouse'
|
||||
|
||||
@@ -26,7 +26,7 @@ install:
|
||||
- python3 -m pip install pytest
|
||||
|
||||
script:
|
||||
- python3 setup.py install
|
||||
- python3 -m pip install .
|
||||
- pytest
|
||||
|
||||
stages:
|
||||
@@ -48,30 +48,24 @@ jobs:
|
||||
# Deploy source distribution
|
||||
- stage: deploy
|
||||
name: Deploy source distribution
|
||||
install: skip
|
||||
script: python3 setup.py sdist --formats=gztar
|
||||
after_success: |
|
||||
python3 -m pip install twine
|
||||
python3 -m twine upload --skip-existing dist/*.tar.gz
|
||||
install: python3 -m pip install build twine
|
||||
script: python3 -m build --sdist --formats=gztar
|
||||
after_success: python3 -m twine upload --skip-existing dist/*.tar.gz
|
||||
# Deploy on linux
|
||||
- stage: deploy
|
||||
name: Build and deploy Linux wheels
|
||||
services: docker
|
||||
install: python3 -m pip install cibuildwheel==2.2.0b1
|
||||
install: python3 -m pip install cibuildwheel==2.2.2 twine
|
||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||
after_success: |
|
||||
python3 -m pip install twine
|
||||
python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||
# Deploy on windows
|
||||
- stage: deploy
|
||||
name: Build and deploy Windows wheels
|
||||
os: windows
|
||||
language: shell
|
||||
install: python3 -m pip install cibuildwheel==2.2.0b1
|
||||
install: python3 -m pip install cibuildwheel==2.2.2 twine
|
||||
script: python3 -m cibuildwheel --output-dir wheelhouse
|
||||
after_success: |
|
||||
python3 -m pip install twine
|
||||
python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||
after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl
|
||||
|
||||
env:
|
||||
global:
|
||||
|
||||
+11
-1
@@ -4,7 +4,7 @@ from pathlib import Path
|
||||
|
||||
import nox
|
||||
|
||||
nox.options.sessions = ["lint", "tests"]
|
||||
nox.options.sessions = ["lint", "check_manifest", "tests"]
|
||||
|
||||
PYTHON_ALL_VERSIONS = ["3.6", "3.7", "3.8", "3.9"]
|
||||
|
||||
@@ -34,6 +34,16 @@ def lint(session: nox.Session) -> None:
|
||||
session.run("pre-commit", "run", "--all-files", *session.posargs)
|
||||
|
||||
|
||||
@nox.session
|
||||
def check_manifest(session: nox.Session) -> None:
|
||||
"""
|
||||
Ensure all needed files are included in the manifest.
|
||||
"""
|
||||
|
||||
session.install("check-manifest")
|
||||
session.run("check-manifest", *session.posargs)
|
||||
|
||||
|
||||
@nox.session(python=PYTHON_ALL_VERSIONS)
|
||||
def update_constraints(session: nox.Session) -> None:
|
||||
"""
|
||||
|
||||
+18
-4
@@ -32,7 +32,8 @@ files = [
|
||||
"cibuildwheel/*.py",
|
||||
"test/**/*.py",
|
||||
"unit_test/**/*.py",
|
||||
"bin/*.py"
|
||||
"bin/*.py",
|
||||
"noxfile.py",
|
||||
]
|
||||
warn_unused_configs = true
|
||||
warn_redundant_casts = true
|
||||
@@ -58,12 +59,25 @@ module = [
|
||||
"setuptools",
|
||||
"pytest", # ignored in pre-commit to speed up check
|
||||
"bashlex",
|
||||
"bracex",
|
||||
"importlib_resources",
|
||||
"nox",
|
||||
"github",
|
||||
"ghapi.*",
|
||||
]
|
||||
ignore_missing_imports = true
|
||||
|
||||
[tool.pycln]
|
||||
all = true
|
||||
|
||||
[tool.check-manifest]
|
||||
ignore = [
|
||||
".*",
|
||||
".circleci/**",
|
||||
"test/**",
|
||||
"unit_test/**",
|
||||
"docs/**",
|
||||
"examples/**",
|
||||
"bin/**",
|
||||
"*.yml",
|
||||
"CI.md", # TODO: can change test/test_ssl and remove this
|
||||
"requirements-dev.txt",
|
||||
"noxfile.py",
|
||||
]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[metadata]
|
||||
name = cibuildwheel
|
||||
version = 2.2.0b1
|
||||
version = 2.2.2
|
||||
description = Build Python wheels on CI with minimal configuration.
|
||||
long_description = file: README.md
|
||||
long_description_content_type = text/markdown
|
||||
@@ -37,7 +37,7 @@ install_requires =
|
||||
packaging
|
||||
tomli
|
||||
dataclasses;python_version < '3.7'
|
||||
typing_extensions;python_version < '3.8'
|
||||
typing-extensions>=3.10.0.0;python_version < '3.8'
|
||||
python_requires = >=3.6
|
||||
include_package_data = True
|
||||
zip_safe = False
|
||||
|
||||
+1
-1
@@ -130,7 +130,7 @@ def expected_wheels(
|
||||
python_abi_tags = ["cp36-cp36m", "cp37-cp37m", "cp38-cp38", "cp39-cp39", "cp310-cp310"]
|
||||
|
||||
if machine_arch in ["x86_64", "AMD64", "x86", "aarch64"]:
|
||||
python_abi_tags += ["pp37-pypy37_pp73"]
|
||||
python_abi_tags += ["pp37-pypy37_pp73", "pp38-pypy38_pp73"]
|
||||
|
||||
if platform == "macos" and machine_arch == "arm64":
|
||||
# currently, arm64 macs are only supported by cp39 & cp310
|
||||
|
||||
@@ -53,6 +53,9 @@ def test_skip():
|
||||
|
||||
assert not build_selector("pp36-manylinux_x86_64")
|
||||
assert build_selector("pp37-manylinux_x86_64")
|
||||
assert build_selector("pp38-manylinux_x86_64")
|
||||
assert build_selector("pp37-manylinux_i686")
|
||||
assert build_selector("pp38-manylinux_i686")
|
||||
assert build_selector("cp36-manylinux_x86_64")
|
||||
assert build_selector("cp37-manylinux_x86_64")
|
||||
assert not build_selector("cp36-manylinux_i686")
|
||||
|
||||
@@ -11,7 +11,7 @@ import pytest
|
||||
from cibuildwheel import linux, util
|
||||
from cibuildwheel.__main__ import main
|
||||
|
||||
ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "pp37"}
|
||||
ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "pp37", "pp38"}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -132,7 +132,9 @@ before-all = "true"
|
||||
assert not kwargs["docker"]["simulate_32_bit"]
|
||||
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
assert identifiers == {f"{x}-manylinux_x86_64" for x in ALL_IDS - {"cp36", "cp310", "pp37"}}
|
||||
assert identifiers == {
|
||||
f"{x}-manylinux_x86_64" for x in ALL_IDS - {"cp36", "cp310", "pp37", "pp38"}
|
||||
}
|
||||
assert kwargs["options"].build_options("cp37-manylinux_x86_64").before_all == ""
|
||||
|
||||
kwargs = build_on_docker.call_args_list[2][1]
|
||||
@@ -140,7 +142,11 @@ before-all = "true"
|
||||
assert kwargs["docker"]["cwd"] == Path("/project")
|
||||
assert not kwargs["docker"]["simulate_32_bit"]
|
||||
identifiers = {x.identifier for x in kwargs["platform_configs"]}
|
||||
assert identifiers == {"cp310-manylinux_x86_64", "pp37-manylinux_x86_64"}
|
||||
assert identifiers == {
|
||||
"cp310-manylinux_x86_64",
|
||||
"pp37-manylinux_x86_64",
|
||||
"pp38-manylinux_x86_64",
|
||||
}
|
||||
|
||||
kwargs = build_on_docker.call_args_list[3][1]
|
||||
assert "quay.io/pypa/manylinux2010_i686" in kwargs["docker"]["docker_image"]
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ def get_default_command_line_arguments() -> CommandLineArguments:
|
||||
defaults.platform = "auto"
|
||||
defaults.allow_empty = False
|
||||
defaults.archs = None
|
||||
defaults.config_file = None
|
||||
defaults.config_file = ""
|
||||
defaults.output_dir = None
|
||||
defaults.package_dir = "."
|
||||
defaults.prerelease_pythons = False
|
||||
|
||||
Reference in New Issue
Block a user