Skip to content

Commit

Permalink
Merge branch 'master' into add_type_hints_2183
Browse files Browse the repository at this point in the history
# Conflicts:
#	pyproject.toml
  • Loading branch information
CaselIT committed Aug 20, 2024
2 parents 3296944 + 6a9fc76 commit 269155d
Show file tree
Hide file tree
Showing 58 changed files with 684 additions and 639 deletions.
141 changes: 141 additions & 0 deletions .github/workflows/cibuildwheel.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# Build wheels using cibuildwheel (https://cibuildwheel.pypa.io/)
name: Build wheels

on:
# Run when a release has been created
release:
types: [created]

# NOTE(vytas): Also allow to release to Test PyPi manually.
workflow_dispatch:

jobs:
build-sdist:
name: sdist
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Build sdist
run: |
pip install build
python -m build --sdist
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz

build-wheels:
name: ${{ matrix.python }}-${{ matrix.platform.name }}
needs: build-sdist
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- name: manylinux_x86_64
os: ubuntu-latest
- name: musllinux_x86_64
os: ubuntu-latest
- name: manylinux_aarch64
os: ubuntu-latest
emulation: true
- name: musllinux_aarch64
os: ubuntu-latest
emulation: true
- name: manylinux_s390x
os: ubuntu-latest
emulation: true
- name: macosx_x86_64
os: macos-13
- name: macosx_arm64
os: macos-14
- name: win_amd64
os: windows-latest
python:
- cp39
- cp310
- cp311
- cp312
- cp313
include:
- platform:
name: manylinux_x86_64
os: ubuntu-latest
python: cp38
- platform:
name: musllinux_x86_64
os: ubuntu-latest
python: cp38

defaults:
run:
shell: bash

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
if: ${{ matrix.platform.emulation }}
with:
platforms: all

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: all
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.platform.name }}

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: cibw-wheel-${{ matrix.python }}-${{ matrix.platform.name }}
path: wheelhouse/*.whl

publish-wheels:
name: publish
needs:
- build-sdist
- build-wheels
runs-on: ubuntu-latest

steps:
- name: Download packages
uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true

- name: Check collected artifacts
# TODO(vytas): Run a script to perform version sanity checks instead.
run: ls -l dist/

- name: Publish artifacts to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: github.event_name == 'workflow_dispatch'
with:
password: ${{ secrets.TEST_PYPI_TOKEN }}
repository-url: https://test.pypi.org/legacy/

# TODO(vytas): Enable this nuclear option once happy with other tests.
# - name: Publish artifacts to PyPI
# uses: pypa/gh-action-pypi-publish@release/v1
# if: github.event_name == 'release'
# with:
# password: ${{ secrets.PYPI_TOKEN }}
20 changes: 8 additions & 12 deletions .github/workflows/create-wheels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ jobs:
- "windows-latest"
- "macos-latest"
python-version:
- "3.6"
- "3.7"
- "3.8"
- "3.9"
- "3.10"
Expand All @@ -38,12 +36,12 @@ jobs:

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
Expand Down Expand Up @@ -95,7 +93,6 @@ jobs:
- "ubuntu-latest"
python-version:
# the versions are <python tag>-<abi tag> as specified in PEP 425.
- cp37-cp37m
- cp38-cp38
- cp39-cp39
- cp310-cp310
Expand All @@ -108,7 +105,7 @@ jobs:

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2

Expand All @@ -123,7 +120,7 @@ jobs:
echo "::set-output name=python-version::$version"
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ steps.linux-py-version.outputs.python-version }}
architecture: ${{ matrix.architecture }}
Expand Down Expand Up @@ -181,12 +178,12 @@ jobs:

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
Expand Down Expand Up @@ -227,7 +224,6 @@ jobs:
- "ubuntu-latest"
python-version:
# the versions are <python tag>-<abi tag> as specified in PEP 425.
- cp37-cp37m
- cp38-cp38
- cp39-cp39
- cp310-cp310
Expand All @@ -241,7 +237,7 @@ jobs:

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2

Expand Down Expand Up @@ -308,7 +304,7 @@ jobs:
files: 'dist/*manylinux*'

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"
architecture: "x64"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/mintest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,16 @@ jobs:

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: ${{ matrix.python-version != '3.13' }}
with:
python-version: ${{ matrix.python-version }}

- name: Set up Python 3.13
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: ${{ matrix.python-version == '3.13' }}
with:
python-version: "3.13.0-rc.1 - 3.13"
Expand Down
73 changes: 13 additions & 60 deletions .github/workflows/tests-emulated.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,76 +8,29 @@ on:
- master

jobs:
run_tox_emulate:
name: tox -e py310_cython (${{ matrix.architecture }})
test-emulated:
name: "cibuildwheel: ${{ matrix.platform }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
architecture:
- s390x
- arm64v8
platform:
- "cp312-manylinux_aarch64"
- "cp312-manylinux_s390x"

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Cache PIP
uses: actions/cache@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
path: |
.pip
key: python-${{ matrix.architecture }}-${{ hashFiles('requirements/tests') }}
platforms: all

- name: Set up emulation
run: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
# TODO(vytas): Revisit second half of 2021 to see if we still need to pin tox
#
# See also: https://github.com/tox-dev/tox/issues/1777
#
- name: Run tox s390x
if: ${{ matrix.architecture == 's390x' }}
uses: docker://s390x/python:3.10-buster
env:
PIP_CACHE_DIR: /github/workspace/.pip/
with:
# NOTE: without 'pip install ujson' tox fails to install it with "Requested ujson from <url> has different version in metadata: '0.0.0'"
# NOTE(vytas): installing fixtures/pbr because otherwise pip install
# inside tox fails with an import error on some older CPythons
args: |
/bin/bash -c "
lscpu &&
mkdir -p $PIP_CACHE_DIR &&
chown -R $(whoami) $PIP_CACHE_DIR &&
pip install -U fixtures pip tox &&
python --version &&
pip --version &&
tox --version &&
pip install ujson &&
tox -e py310_cython"
- name: Run tox arm64v8
if: ${{ matrix.architecture == 'arm64v8' }}
uses: docker://arm64v8/python:3.10-buster
- name: Build wheels
uses: pypa/[email protected]
env:
PIP_CACHE_DIR: /github/workspace/.pip/
with:
args: |
/bin/bash -c "
lscpu &&
mkdir -p $PIP_CACHE_DIR &&
chown -R $(whoami) $PIP_CACHE_DIR &&
pip install -U fixtures pip tox &&
python --version &&
pip --version &&
tox --version &&
tox -e py310_cython"
- name: Fix cache permission
run: |
sudo chmod -R 777 .pip
sudo chmod -R 777 .tox
CIBW_ARCHS_LINUX: all
CIBW_BUILD: ${{ matrix.platform }}
11 changes: 4 additions & 7 deletions .github/workflows/tests-mailman.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,9 @@ name: Run tests (GNU Mailman 3)
on:
# Trigger the workflow on master but also allow it to run manually.
workflow_dispatch:

# NOTE(vytas): Disabled as it is failing as of 2023-09.
# Maybe @maxking just needs to update the Docker image (?)
# push:
# branches:
# - master
push:
branches:
- master

jobs:
run_tox:
Expand All @@ -17,7 +14,7 @@ jobs:

steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 2

Expand Down
Loading

0 comments on commit 269155d

Please sign in to comment.