Skip to content

Commit

Permalink
Merge branch 'master' into 2182-http-date-dt-aware
Browse files Browse the repository at this point in the history
  • Loading branch information
vytas7 authored Aug 27, 2024
2 parents ac0f84e + 321bda1 commit 26f7fdb
Show file tree
Hide file tree
Showing 126 changed files with 3,289 additions and 2,552 deletions.
8 changes: 5 additions & 3 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ parallel = True

[report]
show_missing = True
exclude_lines =
# https://coverage.readthedocs.io/en/latest/excluding.html#advanced-exclusion
exclude_also =
if TYPE_CHECKING:
if not TYPE_CHECKING:
pragma: nocover
pragma: no cover
pragma: no py39,py310 cover
pragma: no py311 cover
@overload
class .*\bProtocol\):
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 }}
1 change: 0 additions & 1 deletion .github/workflows/mintest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ jobs:
tox --version
- name: Adjust .coveragerc
if: ${{ matrix.python-version != '3.10' }}
run: |
tools/sed_coverage_rc.py
Expand Down
71 changes: 12 additions & 59 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@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 }}
5 changes: 4 additions & 1 deletion .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,10 @@ jobs:
- "look"
- "asgilook"
- "ws_tutorial"
- "check_vendored"
# NOTE(vytas): Temporarily disabled while we are releasing a
# new version of python-mimeparse, and haven't decided yet whether
# to keep vendoring or reimplement.
# - "check_vendored"
- "twine_check"
- "daphne"
- "hypercorn"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ parts
sdist
var
pip-wheel-metadata
wheelhouse

# Installer logs
pip-log.txt
Expand Down
7 changes: 7 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,13 @@ listed below by date of first contribution:
* Aryan Iyappan (aryaniyaps)
* Eujin Ong (euj1n0ng)
* Libor Jelínek (liborjelinek)
* Piotr Kopalko (copalco)
* Kent Bull (kentbull)
* Mario Rivera (MRLab12)
* M-Mueller
* Derk Weijers (derkweijers)
* bssyousefi
* Pavel 宝尔米 (e-io)

(et al.)

Expand Down
11 changes: 9 additions & 2 deletions BACKERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,14 @@ See also: https://opencollective.com/falcon

* [GOVCERT.LU](https://www.govcert.lu/)

## Commercial Patrons
## Gold Patron

* [Sentry](https://sentry.io/)

## Past Commercial Patrons

* [Algolia](https://www.algolia.com/)
* [EaseUS RecExperts](https://recorder.easeus.com/)
* [Examination RU](https://www.kontrolnaya-rabota.ru/s/)
* [Likalo](https://github.com/LikaloLLC)
* [Misaka Network](https://www.misaka.io/)
Expand All @@ -25,6 +30,8 @@ See also: https://opencollective.com/falcon
* Hagar Marmari
* Ivan Petukhov
* Konstantinos Mouratidis
* Vlad Shulkevich
* Markopoulos Spyros
* Vincent Albanese
* Vlad Shulkevich
* William Fuener
* Zach Riddle
60 changes: 23 additions & 37 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
.. raw:: html

<a href="https://falconframework.org" target="_blank">
<img
src="https://raw.githubusercontent.com/falconry/falcon/master/logo/banner.jpg"
alt="Falcon web framework logo"
style="width:100%"
>
</a>
.. image:: https://raw.githubusercontent.com/falconry/falcon/master/logo/banner.jpg
:align: center
:alt: Falcon logo
:target: https://falconframework.org/
:width: 100 %

|Build Status| |Docs| |codecov.io|

Expand Down Expand Up @@ -88,31 +84,12 @@ Falcon tries to do as little as possible while remaining highly effective.
A Big Thank You to Our Patrons!
-------------------------------

.. raw:: html

<p>
<a href="https://www.govcert.lu/" target="_blank"><img src="https://falconframework.org/assets/govcert.png" height="60" alt="CERT Gouvernemental Luxembourg" ></a>
</p>

<p>
<a href="https://www.kontrolnaya-rabota.ru/s/" target="_blank"><img src="https://falconframework.org/assets/rabota.jpg" height="30" alt="Examination RU" style="margin-right: 10px"></a>

<a href="https://www.pnk.sh/python-falcon" target="_blank"><img src="https://falconframework.org/assets/paris.svg" height="30" alt="Paris Kejser" style="margin-right: 10px"></a>

<a href="https://www.algolia.com" target="_blank" style="margin-right: 10px"><img src="https://falconframework.org/assets/algolia.svg" height="30" alt="Algolia"></a>
|Backer:GovCert| |Backer:Sentry|

<a href="https://www.salesforce.com" target="_blank"><img src="https://falconframework.org/assets/salesforce.svg" height="30" alt="Salesforce"></a>
</p>

<p>
<a href="https://www.misaka.io" target="_blank" style="margin-right: 10px"><img src="https://falconframework.org/assets/misaka.svg" height="30" alt="Misaka Network"></a>
<a href="https://github.com/LikaloLLC" target="_blank" style="margin-right: 10px"><img src="https://falconframework.org/assets/likalo.png" height="30" alt="Likalo"></a>
</p>

.. Patron list ends here (see the comment above this section).
Has Falcon helped you make an awesome app? Show your support today with a one-time donation or by becoming a patron. Supporters get cool gear, an opportunity to promote their brand to Python developers, and
prioritized support.
Has Falcon helped you make an awesome app? Show your support today with a
one-time donation or by becoming a patron.
Supporters get cool gear, an opportunity to promote their brand to Python
developers, and prioritized support.

* `Learn how to support Falcon development <https://falconframework.org/#sectionSupportFalconDevelopment>`_

Expand Down Expand Up @@ -991,7 +968,8 @@ we invite you to take a look at the issues listed under our
If you see one you'd like to work on, please leave a quick comment so that we don't
end up with duplicated effort. Thanks in advance!

Please note that all contributors and maintainers of this project are subject to our `Code of Conduct <https://github.com/falconry/falcon/blob/master/CODEOFCONDUCT.md>`_.
Please note that all contributors and maintainers of this project are subject to our
`Code of Conduct <https://github.com/falconry/falcon/blob/master/CODEOFCONDUCT.md>`_.

Before submitting a pull request, please ensure you have added/updated
the appropriate tests (and that all existing tests still pass with your
Expand Down Expand Up @@ -1043,9 +1021,17 @@ See the License for the specific language governing permissions and
limitations under the License.

.. |Docs| image:: https://readthedocs.org/projects/falcon/badge/?version=stable
:target: https://falcon.readthedocs.io/en/stable/?badge=stable
:alt: Falcon web framework docs
:target: https://falcon.readthedocs.io/en/stable/?badge=stable
.. |Build Status| image:: https://github.com/falconry/falcon/workflows/Run%20tests/badge.svg
:target: https://github.com/falconry/falcon/actions?query=workflow%3A%22Run+tests%22
:target: https://github.com/falconry/falcon/actions?query=workflow%3A%22Run+tests%22
.. |codecov.io| image:: https://codecov.io/gh/falconry/falcon/branch/master/graphs/badge.svg
:target: http://codecov.io/gh/falconry/falcon
:target: http://codecov.io/gh/falconry/falcon
.. |Backer:GovCert| image:: https://falconframework.org/assets/govcert.png
:alt: CERT Gouvernemental Luxembourg
:height: 60px
:target: https://www.govcert.lu/
.. |Backer:Sentry| image:: https://falconframework.org/assets/sentry-dark.svg
:alt: Sentry
:height: 60px
:target: https://sentry.io
Binary file removed docs/_content/corinne-kutz-211251.jpg
Binary file not shown.
Loading

0 comments on commit 26f7fdb

Please sign in to comment.