Compare commits

..
11 Commits
Author SHA1 Message Date
Joe Rickerby 90024def2c Bump version: v2.2.1b1 2021-10-26 18:59:45 +01:00
Joe Rickerby bc3d3d123c Merge pull request #894 from henryiii/henryiii/ci/release
ci: release to PyPI from CI on GitHub Release
2021-10-26 18:42:27 +01:00
Joe Rickerby 88c8e5c2f5 Merge pull request #893 from henryiii/henryiii/fix/manifest
fix: produce working SDists, check in CI
2021-10-26 18:29:43 +01:00
Henry Schreiner a1342c1b53 ci: release to PyPI from CI on GitHub Release 2021-10-26 12:11:08 -04:00
Henry Schreiner 0bfbd5b309 fix: produce working SDists 2021-10-26 12:07:17 -04:00
pre-commit-ci[bot]andpre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> 4515cd2203 [pre-commit.ci] pre-commit autoupdate (#890)
updates:
- [github.com/asottile/yesqa: v1.2.3 → v1.3.0](https://github.com/asottile/yesqa/compare/v1.2.3...v1.3.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-10-25 18:14:46 -04:00
Henry SchreinerandJoe Rickerby 12c64365e2 fix: add missing config-file option to the action (#883)
* fix: add missing config-file option to the action

* feat: empty config-file triggers default behavior

* Apply suggestions from code review

Co-authored-by: Joe Rickerby <joerick@mac.com>

Co-authored-by: Joe Rickerby <joerick@mac.com>
2021-10-22 22:34:38 -04:00
Henry Schreiner e7da7832ef tests: rename a test for consistency (#885) 2021-10-22 20:17:09 -04:00
Joe Rickerby 298a8baef7 Bump version: v2.2.0 2021-10-22 14:00:03 +01:00
Henry Schreiner 6db5229774 fix: artificial limiting in pycln breaks on 3.10 (#886) 2021-10-21 22:23:32 -04:00
Joe Rickerby b4882894ed Update release steps 2021-10-19 19:38:40 +01:00
29 changed files with 154 additions and 58 deletions
+40
View File
@@ -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 }}
+1
View File
@@ -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 }}
+2 -1
View File
@@ -31,6 +31,7 @@ repos:
hooks:
- id: pycln
args: [--config=pyproject.toml]
stages: [manual] # disabled due to artificial limit on Python 3.10
- repo: https://github.com/PyCQA/isort
rev: 5.9.3
@@ -70,7 +71,7 @@ repos:
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
+6
View File
@@ -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
+22 -17
View File
@@ -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.1b1
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
@@ -189,24 +189,36 @@ Changelog
<!-- this section was generated by bin/update_readme_changelog.py -- do not edit manually -->
### v2.2.0 (prerelease)
### v2.2.1
_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)_
- 🛠 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 made
some internal change to our release processes to make them more reliable.
(#893, #894)
- 🌟 TOML option overrides. This provides much greater flexibility in configuration via pyproject.toml.
### 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 v2.2.1 instead.</sup>
### v2.1.3
_6 October 2021_
@@ -229,13 +241,6 @@ _7 August 2021_
<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 -->
---
+5
View File
@@ -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 "${{ input.config-file }}"
2>&1
shell: bash
+1 -1
View File
@@ -1 +1 @@
__version__ = "2.2.0b1"
__version__ = "2.2.1b1"
+4 -3
View File
@@ -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.
""",
)
+3 -2
View File
@@ -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():
+21 -9
View File
@@ -2,24 +2,36 @@
title: Changelog
---
### v2.2.0 (prerelease)
### v2.2.1
_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)_
- 🛠 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 made
some internal change to our release processes to make them more reliable.
(#893, #894)
- 🌟 TOML option overrides. This provides much greater flexibility in configuration via pyproject.toml.
### 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 v2.2.1 instead.</sup>
### v2.1.3
_6 October 2021_
+2 -3
View File
@@ -131,9 +131,8 @@ Finally, cut the release and upload to PyPI/GitHub.
```bash
rm -rf dist
python setup.py sdist bdist_wheel
twine upload dist/*
git push && git push --tags
python -m build
git push && git push --tags && twine upload dist/*
```
Then head to https://github.com/pypa/cibuildwheel/releases and create a GitHub release from the new tag, pasting in the changelog entry.
+2 -2
View File
@@ -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.1b1
```
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.1b1
```
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 -2
View File
@@ -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.1b1
- 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.1b1
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
+1 -1
View File
@@ -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.1b1
build_script: python -m cibuildwheel --output-dir wheelhouse
+3 -3
View File
@@ -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.1b1
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.1b1
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.1b1
displayName: Install dependencies
- bash: cibuildwheel --output-dir wheelhouse .
displayName: Build wheels
+2 -2
View File
@@ -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.1b1
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.1b1
cibuildwheel --output-dir wheelhouse
- store_artifacts:
path: wheelhouse/
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
- uses: actions/checkout@v2
- name: Build wheels
uses: pypa/cibuildwheel@v2.2.0b1
uses: pypa/cibuildwheel@v2.2.1b1
env:
CIBW_ARCHS_MACOS: x86_64 universal2
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
python-version: '3.8'
- name: Build wheels
uses: pypa/cibuildwheel@v2.2.0b1
uses: pypa/cibuildwheel@v2.2.1b1
- uses: actions/upload-artifact@v2
with:
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v2
- name: Build wheels
uses: pypa/cibuildwheel@v2.2.0b1
uses: pypa/cibuildwheel@v2.2.1b1
# to supply options, put them in 'env', like:
# env:
# CIBW_SOME_OPTION: value
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
platforms: all
- name: Build wheels
uses: pypa/cibuildwheel@v2.2.0b1
uses: pypa/cibuildwheel@v2.2.1b1
env:
# configure cibuildwheel to build native archs ('auto'), and some
# emulated ones
+1 -1
View File
@@ -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.1b1
- cibuildwheel --output-dir wheelhouse
artifacts:
paths:
+1 -1
View File
@@ -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.1b1
script:
# build the wheels, put them into './wheelhouse'
+1 -1
View File
@@ -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.1b1
script:
# build the wheels, put them into './wheelhouse'
+2 -2
View File
@@ -57,7 +57,7 @@ jobs:
- 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.1b1
script: python3 -m cibuildwheel --output-dir wheelhouse
after_success: |
python3 -m pip install twine
@@ -67,7 +67,7 @@ jobs:
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.1b1
script: python3 -m cibuildwheel --output-dir wheelhouse
after_success: |
python3 -m pip install twine
+11 -1
View File
@@ -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:
"""
+15
View File
@@ -67,3 +67,18 @@ 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 -1
View File
@@ -1,6 +1,6 @@
[metadata]
name = cibuildwheel
version = 2.2.0b1
version = 2.2.1b1
description = Build Python wheels on CI with minimal configuration.
long_description = file: README.md
long_description_content_type = text/markdown
+1 -1
View File
@@ -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