Skip to content

Commit

Permalink
Merge branch 'master' into testing-helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
vytas7 authored Aug 16, 2024
2 parents bb056b2 + c124e3a commit 0b23def
Show file tree
Hide file tree
Showing 59 changed files with 1,433 additions and 351 deletions.
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
13 changes: 10 additions & 3 deletions .github/workflows/mintest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,27 @@ jobs:
fail-fast: false
matrix:
python-version:
- "3.8"
- "3.10"
- "3.11"
- "3.12"
- "3.13"

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@v5
if: ${{ matrix.python-version == '3.13' }}
with:
python-version: "3.13.0-rc.1 - 3.13"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests-emulated.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

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

Expand Down
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
27 changes: 19 additions & 8 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:
matrix:
python-version:
- "3.12"
python-dev-version:
- ""
os:
- "ubuntu-latest"
toxenv:
Expand Down Expand Up @@ -50,15 +52,9 @@ jobs:
- python-version: pypy3.9
os: ubuntu-latest
toxenv: pypy3
- python-version: "3.7"
os: ubuntu-latest
toxenv: py37
- python-version: "3.8"
os: ubuntu-latest
toxenv: py38
- python-version: "3.8"
os: ubuntu-latest
toxenv: py38_cython
- python-version: "3.9"
os: ubuntu-latest
toxenv: py39
Expand Down Expand Up @@ -89,6 +85,14 @@ jobs:
- python-version: "3.12"
os: windows-latest
toxenv: py312_nocover
- python-version: "3.13"
python-dev-version: "3.13.0-rc.1 - 3.13"
os: ubuntu-latest
toxenv: py313
- python-version: "3.13"
python-dev-version: "3.13.0-rc.1 - 3.13"
os: ubuntu-latest
toxenv: py313_cython
# These env require 3.8 and 20.04, see tox.ini
- python-version: "3.8"
os: ubuntu-20.04
Expand All @@ -104,17 +108,24 @@ jobs:
# Some are GitHub actions, others run shell commands.
steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
# NOTE(vytas): Work around
# https://github.com/codecov/codecov-action/issues/190
with:
fetch-depth: 2

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

- name: Set up Python (pre-release)
uses: actions/setup-python@v5
if: ${{ matrix.python-dev-version }}
with:
python-version: ${{ matrix.python-dev-version }}

- name: Install smoke test dependencies
if: ${{ matrix.toxenv == 'py38_smoke' || matrix.toxenv == 'py38_smoke_cython' }}
run: |
Expand Down
3 changes: 2 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ $ pip install -U ruff
$ ruff format
```

You can check all this by running ``tox`` from within the Falcon project directory. Your environment must be based on CPython 3.8, 3.10, 3.11 or 3.12:
You can check all this by running ``tox`` from within the Falcon project directory.
Your environment must be based on CPython 3.10, 3.11, 3.12 or 3.13:

```bash
$ pip install -U tox
Expand Down
8 changes: 4 additions & 4 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ clean design that embraces HTTP and the REST architectural style.

Falcon apps work with any `WSGI <https://www.python.org/dev/peps/pep-3333/>`_
or `ASGI <https://asgi.readthedocs.io/en/latest/>`_ server, and run like a
champ under CPython 3.7+ and PyPy 3.7+.
champ under CPython 3.8+ and PyPy 3.8+.

Quick Links
-----------
Expand Down Expand Up @@ -79,7 +79,7 @@ Falcon tries to do as little as possible while remaining highly effective.
- Idiomatic HTTP error responses
- Straightforward exception handling
- Snappy testing with WSGI/ASGI helpers and mocks
- CPython 3.7+ and PyPy 3.7+ support
- CPython 3.8+ and PyPy 3.8+ support

.. Patron list starts here. For Python package, we substitute this section with:
Support Falcon Development
Expand Down Expand Up @@ -210,7 +210,7 @@ PyPy
^^^^

`PyPy <http://pypy.org/>`__ is the fastest way to run your Falcon app.
PyPy3.7+ is supported as of PyPy v7.3.4+.
PyPy3.8+ is supported as of PyPy v7.3.7+.

.. code:: bash
Expand All @@ -226,7 +226,7 @@ CPython
^^^^^^^

Falcon also fully supports
`CPython <https://www.python.org/downloads/>`__ 3.7+.
`CPython <https://www.python.org/downloads/>`__ 3.8+.

The latest stable version of Falcon can be installed directly from PyPI:

Expand Down
15 changes: 9 additions & 6 deletions docs/changes/4.0.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,15 @@ Changes to Supported Platforms

- CPython 3.11 is now fully supported. (`#2072 <https://github.com/falconry/falcon/issues/2072>`__)
- CPython 3.12 is now fully supported. (`#2196 <https://github.com/falconry/falcon/issues/2196>`__)
- End-of-life Python 3.5 & 3.6 are no longer supported. (`#2074 <https://github.com/falconry/falcon/pull/2074>`__)
- Python 3.7 is no longer actively supported, but the framework should still
continue to install from source. We may remove the support for 3.7 altogether
later in the 4.x series if we are faced with incompatible ecosystem changes
in typing, Cython, etc.

- CPython 3.13 is now fully supported. (`#2258 <https://github.com/falconry/falcon/issues/2258>`__)
- End-of-life Python 3.5, 3.6 & 3.7 are no longer supported. (`#2074 <https://github.com/falconry/falcon/pull/2074>`__, `#2273 <https://github.com/falconry/falcon/pull/2273>`__)
- Soon end-of-life Python 3.8 is no longer actively supported, but
the framework should still continue to install from source and function.
- The Falcon 4.x series is guaranteed to support CPython 3.10 and
PyPy3.10 (v7.3.16).
This means that we may drop the support for Python 3.8 & 3.9 altogether in a
later 4.x release, especially if we are faced with incompatible ecosystem
changes in typing, Cython, etc.

.. towncrier release notes start
Expand Down
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ Falcon tries to do as little as possible while remaining highly effective.
- Idiomatic :ref:`HTTP error <errors>` responses
- Straightforward exception handling
- Snappy :ref:`testing <testing>` with WSGI/ASGI helpers and mocks
- CPython 3.7+ and PyPy 3.7+ support
- CPython 3.8+ and PyPy 3.8+ support

Who's Using Falcon?
-------------------
Expand Down
4 changes: 2 additions & 2 deletions docs/user/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ PyPy
----

`PyPy <http://pypy.org/>`__ is the fastest way to run your Falcon app.
PyPy3.7+ is supported as of PyPy v7.3.4.
PyPy3.8+ is supported as of PyPy v7.3.7.

.. code:: bash
Expand All @@ -23,7 +23,7 @@ CPython
-------

Falcon fully supports
`CPython <https://www.python.org/downloads/>`__ 3.7+.
`CPython <https://www.python.org/downloads/>`__ 3.8+.

The latest stable version of Falcon can be installed directly from PyPI:

Expand Down
4 changes: 2 additions & 2 deletions docs/user/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ architectural style, and tries to do as little as possible while
remaining highly effective.

Falcon apps work with any WSGI server, and run like a champ under
CPython 3.7+ and PyPy 3.7+.
CPython 3.8+ and PyPy 3.8+.

Features
--------
Expand All @@ -35,7 +35,7 @@ Falcon tries to do as little as possible while remaining highly effective.
- Idiomatic :ref:`HTTP error <errors>` responses
- Straightforward exception handling
- Snappy :ref:`testing <testing>` with WSGI/ASGI helpers and mocks
- CPython 3.7+ and PyPy 3.7+ support
- CPython 3.8+ and PyPy 3.8+ support

How is Falcon different?
------------------------
Expand Down
2 changes: 1 addition & 1 deletion docs/user/recipes/request-id.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,4 @@ In a pinch, you can also output the request ID directly:
.. literalinclude:: ../../../examples/recipes/request_id_log.py
:language: python

.. _thread-local: https://docs.python.org/3.7/library/threading.html#thread-local-data
.. _thread-local: https://docs.python.org/3/library/threading.html#thread-local-data
2 changes: 1 addition & 1 deletion docs/user/tutorial-asgi.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ WSGI tutorial::
└── app.py

We'll create a *virtualenv* using the ``venv`` module from the standard library
(Falcon requires Python 3.7+)::
(Falcon requires Python 3.8+)::

$ mkdir asgilook
$ python3 -m venv asgilook/.venv
Expand Down
3 changes: 2 additions & 1 deletion e2e-tests/server/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@


def create_app() -> falcon.asgi.App:
app = falcon.asgi.App()
# TODO(vytas): Type to App's constructor.
app = falcon.asgi.App() # type: ignore

hub = Hub()
app.add_route('/ping', Pong())
Expand Down
Loading

0 comments on commit 0b23def

Please sign in to comment.