61 lines
2.3 KiB
ReStructuredText
61 lines
2.3 KiB
ReStructuredText
=================
|
|
Development Guide
|
|
=================
|
|
|
|
Some general guidelines regarding development in pytest for maintainers and contributors. Nothing here
|
|
is set in stone and can't be changed, feel free to suggest improvements or changes in the workflow.
|
|
|
|
|
|
Code Style
|
|
----------
|
|
|
|
* `PEP-8 <https://www.python.org/dev/peps/pep-0008>`_
|
|
* `flake8 <https://pypi.org/project/flake8/>`_ for quality checks
|
|
* `invoke <http://www.pyinvoke.org/>`_ to automate development tasks
|
|
|
|
|
|
Branches
|
|
--------
|
|
|
|
We have two long term branches:
|
|
|
|
* ``master``: contains the code for the next bug-fix release.
|
|
* ``features``: contains the code with new features for the next minor release.
|
|
|
|
The official repository usually does not contain topic branches, developers and contributors should create topic
|
|
branches in their own forks.
|
|
|
|
Exceptions can be made for cases where more than one contributor is working on the same
|
|
topic or where it makes sense to use some automatic capability of the main repository, such as automatic docs from
|
|
`readthedocs <readthedocs.org>`_ for a branch dealing with documentation refactoring.
|
|
|
|
Issues
|
|
------
|
|
|
|
Any question, feature, bug or proposal is welcome as an issue. Users are encouraged to use them whenever they need.
|
|
|
|
GitHub issues should use labels to categorize them. Labels should be created sporadically, to fill a niche; we should
|
|
avoid creating labels just for the sake of creating them.
|
|
|
|
Each label should include a description in the GitHub's interface stating its purpose.
|
|
|
|
Labels are managed using `labels <https://github.com/hackebrot/labels>`_. All the labels in the repository
|
|
are kept in ``.github/labels.toml``, so any changes should be via PRs to that file.
|
|
After a PR is accepted and merged, one of the maintainers must manually synchronize the labels file with the
|
|
GitHub repository.
|
|
|
|
Temporary labels
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
To classify issues for a special event it is encouraged to create a temporary label. This helps those involved to find
|
|
the relevant issues to work on. Examples of that are sprints in Python events or global hacking events.
|
|
|
|
* ``temporary: EP2017 sprint``: candidate issues or PRs tackled during the EuroPython 2017
|
|
|
|
Issues created at those events should have other relevant labels added as well.
|
|
|
|
Those labels should be removed after they are no longer relevant.
|
|
|
|
|
|
.. include:: ../../RELEASING.rst
|