Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
351 changes: 184 additions & 167 deletions .github/workflows/ci-cd.yml

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions CHANGES/13363.contrib.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
CI now builds the ``sdist`` (and a pure-Python wheel) once, in a new
``build-pure-python-dists`` job, and shares that build across ``test``,
``autobahn``, ``benchmark``, ``build-wheels``, ``test-mobile`` and the
``sdist``-based half of linting, instead of every one of those jobs
checking out the repository and running ``make cythonize`` on its own
-- by :user:`webknjaz`.

Linting is also now split into ``lint-from-git`` (the
:file:`requirements/runtime-deps.in` sync check and docs spell-checking,
which need real Git history) and ``lint-from-sdist`` (``mypy``,
``slotscheck``, the changelog fragment check, and ``twine check``, which
build from the shared artifact instead), since an ``sdist`` tarball never
contains :file:`.git`.
1 change: 1 addition & 0 deletions CHANGES/13388.contrib.rst
1 change: 1 addition & 0 deletions CHANGES/13388.packaging.rst
6 changes: 6 additions & 0 deletions CHANGES/7632.packaging.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Started publishing an additional pure-Python wheel alongside the existing
per-platform binary wheels and the ``sdist`` -- by :user:`webknjaz`.

This gives users on platforms without a working C compiler, or without a
matching pre-built wheel, an installable fallback that does not require
compilation.
3 changes: 3 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ include CHANGES.rst
include README.rst
include CONTRIBUTORS.txt
include Makefile
include .mypy.ini
include .coveragerc.toml
include .coveragerc-cython.toml
graft aiohttp
graft docs
graft examples
Expand Down
6 changes: 6 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,12 @@ test-command = ""
# don't build PyPy wheels, install from source instead
skip = "pp*"

[tool.cibuildwheel.environment]
PIP_BUILD_CONSTRAINT = "requirements/cython.txt"
PIP_CONSTRAINT = "requirements/cython.txt"
UV_BUILD_CONSTRAINT = "requirements/cython.txt"
UV_CONSTRAINT = "requirements/cython.txt"

[tool.cibuildwheel.ios]
# iOS currently does not support build[uv]
build-frontend = "build"
Expand Down
9 changes: 7 additions & 2 deletions tests/test_circular_imports.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,13 @@ def _discover_path_importables(
if pkg_dir_path.parts[-1] == "__pycache__":
continue

if all(Path(_).suffix != ".py" for _ in file_names):
continue
if all(Path(_).suffix != ".py" for _ in file_names): # pragma: no branch
# NOTE: This is only possible when testing editable installs where
# NOTE: the directory lookup encounters the `aiohttp/.hash/` cache
# NOTE: directory with files like `_http_parser.pyx.hash` in it that
# NOTE: never get included into source distributions or wheels and so
# NOTE: the module discovery mechanism never hits this code branch.
continue # pragma: no cover

rel_pt = pkg_dir_path.relative_to(pkg_pth)
pkg_pref = ".".join((pkg_name,) + rel_pt.parts)
Expand Down
Loading