diff --git a/docs/changes/4.0.0.rst b/docs/changes/4.0.0.rst index 98e1634df..ac078fad5 100644 --- a/docs/changes/4.0.0.rst +++ b/docs/changes/4.0.0.rst @@ -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 `! -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 ` how it went! - -As always, you can grab the new release -`from PyPI `__:: - - pip install falcon==4.0.0rc1 - -(Alternatively, continue reading these docs for more -:ref:`installation options `.) - -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 ` has been simplified +using `cibuildwheel `__, 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 `__. +Some notable sprint contributions include CHIPS support, and a new +:ref:`WebSocket Tutorial `, among others. +In fact, according to the +`statistics on GitHub `__, +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 @@ -42,7 +58,8 @@ Changes to Supported Platforms (`#2074 `__, `#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 diff --git a/docs/user/install.rst b/docs/user/install.rst index 9c5ae3e20..8de6b3690 100644 --- a/docs/user/install.rst +++ b/docs/user/install.rst @@ -127,7 +127,7 @@ Binary Wheels ^^^^^^^^^^^^^ Binary Falcon wheels are automatically built for many CPython platforms, -courtesy of `cibuildwheel `__. +courtesy of `cibuildwheel `__. .. wheels:: .github/workflows/cibuildwheel.yaml diff --git a/falcon/version.py b/falcon/version.py index e123e18a1..c3971dba6 100644 --- a/falcon/version.py +++ b/falcon/version.py @@ -14,5 +14,5 @@ """Falcon version.""" -__version__ = '4.0.0rc1' +__version__ = '4.0.0' """Current version of Falcon."""