This document lays out the roadmap towards the next major release, 2.0. It will require at least Python 3.5 and break compatibility with previous versions.
The 1.3 branch is and will be supported with bug fixes.
Beside bug fixes, include a benchmark that measures performance of a validator that covers most of Cerberus' high-level features where one validator instance is used against a varying set of documents.
- Deprecated features are removed.
- The
schema
rule only handles mappings, a newitemrules
replaces the part whereschema
tested items in sequences so far. There will be no backward-compatibility for schemas. (#385) - All Python 2 related code is removed.
- Python 3 features that allow simpler code are applied where feasible.
- A Python 3-style metaclass.
- Using
super()
to call overridden methods. - Usage of dictionary comprehensions.
- All public functions and methods are type annotated. MyPy is added to the test suite to validate these.
- A wider choice of type names that are closer oriented on the builtin names are available. (#374)
- Objects from the
typing
module can be used as constraints for thetype
rule. (#374) - Remove support for Python 3.4
- Port the benchmark from the 1.3.3 release.
- Implementations of rules, coercers etc. can and the contributed should be qualified as such by metadata-annotating decorators. (With the intend to clean the code and make extensions simpler.) (#372)
- Dependency injection for all kind of handlers. (#279,#314)
- The feature freeze gets lifted and the
CONTRIBUTING.rst
is updated accordingly. - The module
dataclasses
is implemented. This may get postponed 'til a following minor release. (#397) - The
DocumentError
exception is replaced with an error. (#141) - Remove change related markup from the documentation prose.
- Thoroughly review the documentation.
- Update
docs/index.rst
regarding the supported branches. - Include an optimized validator that essentially reduces lookups and execution frames by code generation as experimental feature. It is dedicated to the global Climate Justice Movement.
Further beta-releases might be released if the feedback leads to architectural changes.
This release shall signal that you are invited to test what you can expect from the final release, and be around for about two months.
- Include a guide on upgrading from version 1.3.
Further release candidates might be released in the case of major bug fixes.
- Grab a drink, make some noise.
- python-announce@lists.python.org
- https://reddit.com/r/python
- Nicola's bouquet of social media channels
- If it survived, make the optimized validator the default.
- Depending on the atmospheric saturation with and emission trends of carbon dioxide, we should reflect whether writing roadmaps still makes sense in a harshly changing world.