docs/contributing.rst
WTForms is an open-source library and changing and evolving over time. To that end, we are supported by the contributions of many people in the python community.
WTForms is now on GitHub_, so all contributions should be either associated
with a pull request or with a ticket & patch.
.. _GitHub: https://github.com/pallets-eco/wtforms
Code submitted should:
Be formatted according to the PEP8_ style guideline except that it
does not need to confirm to the 79-column limit requirement of the
guideline.
Have tests
Use naming schemes consistent with WTForms conventions
Work on all versions of Python that WTForms currently supports. Take
advantage of Github Actions_ for running tests on all supported Python
versions.
.. _Github Actions: https://github.com/pallets-eco/wtforms/actions .. _PEP8: https://www.python.org/dev/peps/pep-0008/
WTForms is a very small library, but yet it's possible to break API compatibility pretty easily. We are okay with breaking API compatibility for compelling features or major changes that we feel are worthwhile inclusions to the WTForms core, but realize that any API compatibility break will delay the inclusion of your ticket to the next major release.
Some examples of API compatibility breaks include:
~wtforms.fields.Field.processHowever, it is still possible to add new features to WTForms without breaking API compatibility. For example, if one were looking to add Babel locale support to DecimalField, it could be done so long as by default, DecimalField behaved the same as it did before. This could look something like:
use_locale to the constructorFalse so the behavior without this arg is
identical to the previous behavior.