Skip to content

Commit

Permalink
docs(changes): prepare 4.0.0 stable (#2378)
Browse files Browse the repository at this point in the history
* docs(4.0.0): write a paragraph on community contributions

* docs(changes): prepare 4.0.0 stable
  • Loading branch information
vytas7 authored Oct 18, 2024
1 parent 61c1047 commit 5351220
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 26 deletions.
65 changes: 41 additions & 24 deletions docs/changes/4.0.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,45 @@ Changelog for Falcon 4.0.0
Summary
-------

The first release candidate of Falcon 4.0 is here!

As Falcon 4.0 is now nearing a stable release, in preparation for this
milestone, we would really be thankful if you could test this release candidate
with your apps, and :ref:`let us know if you run into any issues <chat>`!
Please also check the list of **breaking changes** below.

If you make use of type annotations in your Falcon app, please run your type
checker of choice without any *typeshed* extensions for Falcon, and
:ref:`report back to us <chat>` how it went!

As always, you can grab the new release
`from PyPI <https://pypi.org/project/falcon/4.0.0rc1/>`__::

pip install falcon==4.0.0rc1

(Alternatively, continue reading these docs for more
:ref:`installation options <install>`.)

This release would have not been possible without contributions from the
fantastic group of 30 community members and maintainers.

Thank You!
We are happy to present Falcon 4.0, a new major version of the framework that
brings a couple of commonly requested features including support for matching
multiple path segments (using :class:`~falcon.routing.PathConverter`), and
a fully typed codebase. (Please read more about typing in the notes below.)

The timeframe for Falcon 4.0 was challenging due to the need to balance our
high standards with the CPython 3.13 timeline. We aimed to deliver the main
development branch in this release, without resorting to another compatibility
micro update (as we did with Falcon 3.1.1-3.1.3). Following community feedback,
we also want to improve our overall release schedule by shipping smaller
increments more often.
To support this goal, we have made several tooling and testing improvements:
the build process for :ref:`binary wheels <binary_wheels>` has been simplified
using `cibuildwheel <https://cibuildwheel.pypa.io/>`__, and our test suite now
only requires ``pytest`` as a hard dependency. Additionally, you can run
``pytest`` against our tests from any directory. We hope that these changes
should also benefit packaging Falcon in Linux distributions.

As with every SemVer major release, we have removed a number of previously
deprecated functions, classes, compatibility shims, as well as made other
potentially breaking changes that we could not risk in a minor version.
If you have been paying attention the deprecation warnings from the 3.x series,
the impact should be minimal, but please do take a look at the list of breaking
changes below.

This release would not have been possible without the numerous contributions
from our community. This release alone comprises a number of pull requests
submitted by a group of 30 talented individuals. What is more, we were
particularly impressed by the high-quality discussions and code submissions
during our
`EuroPython 2024 Sprint <https://ep2024.europython.eu/sprints#the-falcon-web-framework>`__.
Some notable sprint contributions include CHIPS support, and a new
:ref:`WebSocket Tutorial <tutorial-ws>`, among others.
In fact, according to the
`statistics on GitHub <https://github.com/falconry/falcon/graphs/contributors>`__,
we are thrilled to report that the total number of Falcon
contributors has now exceeded 200. We find it fascinating that our framework
has become a collaborative effort involving so many individuals, and would like
to thank everyone who has made this release possible!


Changes to Supported Platforms
Expand All @@ -42,7 +58,8 @@ Changes to Supported Platforms
(`#2074 <https://github.com/falconry/falcon/pull/2074>`__,
`#2273 <https://github.com/falconry/falcon/pull/2273>`__)
- End-of-life Python 3.8 is no longer actively supported, but
the framework should still continue to install from source and function.
the framework should still continue to install from the pure-Python wheel or
source distribution, and function normally.
- 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
Expand Down
2 changes: 1 addition & 1 deletion docs/user/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ Binary Wheels
^^^^^^^^^^^^^

Binary Falcon wheels are automatically built for many CPython platforms,
courtesy of `cibuildwheel <https://cibuildwheel.pypa.io/en/stable/>`__.
courtesy of `cibuildwheel <https://cibuildwheel.pypa.io/>`__.

.. wheels:: .github/workflows/cibuildwheel.yaml

Expand Down
2 changes: 1 addition & 1 deletion falcon/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@

"""Falcon version."""

__version__ = '4.0.0rc1'
__version__ = '4.0.0'
"""Current version of Falcon."""

0 comments on commit 5351220

Please sign in to comment.