mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-10 06:44:18 +00:00
Add contributing documentation
This commit is contained in:
parent
699d116fb0
commit
eb9fcac064
2 changed files with 201 additions and 0 deletions
200
docs/source/internal/contributing.rst
Normal file
200
docs/source/internal/contributing.rst
Normal file
|
|
@ -0,0 +1,200 @@
|
||||||
|
========================
|
||||||
|
Contributing to Flake8
|
||||||
|
========================
|
||||||
|
|
||||||
|
We encourage multiple methods of participation in Flake8:
|
||||||
|
|
||||||
|
- contributing bug reports and feature requests
|
||||||
|
|
||||||
|
- contributing documenation (and yes that includes this document)
|
||||||
|
|
||||||
|
- reviewing and triaging bugs and merge requests
|
||||||
|
|
||||||
|
Before you go any further, please allow me to reassure you that I do want
|
||||||
|
*your* contribution. If you think your contribution might not be valuable, I
|
||||||
|
reassure you that any help you can provide *is* valuable.
|
||||||
|
|
||||||
|
|
||||||
|
Code of Conduct
|
||||||
|
===============
|
||||||
|
|
||||||
|
Flake8 adheres to the `Python Code Quality Authority's Code of Conduct`_.
|
||||||
|
Any violations of the Code of Conduct should be reported to Ian Cordasco
|
||||||
|
(graffatcolmingov [at] gmail [dot] com).
|
||||||
|
|
||||||
|
|
||||||
|
Setting Up A Development Environment
|
||||||
|
====================================
|
||||||
|
|
||||||
|
To contribute to Flake8's development, you simply need:
|
||||||
|
|
||||||
|
- Python (one of the versions we support)
|
||||||
|
|
||||||
|
- `tox`_
|
||||||
|
|
||||||
|
We suggest installing this like:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
pip install --user tox
|
||||||
|
|
||||||
|
Or
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
python<version> -m pip install --user tox
|
||||||
|
|
||||||
|
- and your favorite editor
|
||||||
|
|
||||||
|
|
||||||
|
Filing a Bug
|
||||||
|
============
|
||||||
|
|
||||||
|
When filing a bug against Flake8, please fill out the issue template as it is
|
||||||
|
provided to you by `GitLab`_. If your bug is in reference to one of the
|
||||||
|
checks that Flake8 reports by default, please do not report them to Flake8
|
||||||
|
unless Flake8 is doing something to prevent the check from running or you
|
||||||
|
have some reason to believe Flake8 is inhibiting the effectiveness of the
|
||||||
|
check.
|
||||||
|
|
||||||
|
**Please search for closed and open bug reports before opening new ones.**
|
||||||
|
|
||||||
|
All bug reports about checks should go to their respective projects:
|
||||||
|
|
||||||
|
- Check codes starting with ``E`` and ``W`` should be reported to
|
||||||
|
`pycodestyle`_.
|
||||||
|
|
||||||
|
- Check codes starting with ``F`` should be reported to `pyflakes`_
|
||||||
|
|
||||||
|
- Check codes starting with ``C`` should be reported to `mccabe`_
|
||||||
|
|
||||||
|
|
||||||
|
Requesting a New Feature
|
||||||
|
========================
|
||||||
|
|
||||||
|
When requesting a new feature in Flake8, please fill out the issue template.
|
||||||
|
Please also note if there are any existing alternatives to your new feature
|
||||||
|
either via plugins, or combining command-line options. Please provide example
|
||||||
|
use cases. For example, do not ask for a feature like this:
|
||||||
|
|
||||||
|
I need feature frobulate for my job.
|
||||||
|
|
||||||
|
Instead ask:
|
||||||
|
|
||||||
|
I need Flake8 to frobulate these files because my team expects them to
|
||||||
|
frobulated but Flake8 currently does not frobulate them. We tried using
|
||||||
|
``--filename`` but we could not create a pattern that worked.
|
||||||
|
|
||||||
|
The more you explain about *why* you need a feature, the more likely we are to
|
||||||
|
understand your needs and help you to the best of our ability.
|
||||||
|
|
||||||
|
|
||||||
|
Contributing Documentation
|
||||||
|
==========================
|
||||||
|
|
||||||
|
To contribute to Flake8's documentation, you should first familiarize yourself
|
||||||
|
with reStructuredText and Sphinx. For the most part, you should be fine
|
||||||
|
following the structure and style of the rest of Flake8's documentation.
|
||||||
|
|
||||||
|
All of Flake8's documentation is written in reStructuredText and rendered by
|
||||||
|
Sphinx. The source (reStructuredText) lives in ``docs/source/``. To build
|
||||||
|
the documentation the way our Continuous Integration does, run:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
tox -e docs
|
||||||
|
|
||||||
|
To view the documentation locally, you can also run:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
tox -e serve-docs
|
||||||
|
|
||||||
|
You can run the latter in a separate terminal and continuously re-run the
|
||||||
|
documentation generation and refresh the documentation you're working on.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
We lint our documentation just like we lint our code.
|
||||||
|
You should also run:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
tox -e linters
|
||||||
|
|
||||||
|
After making changes and before pushing them to ensure that they will
|
||||||
|
pass our CI tests.
|
||||||
|
|
||||||
|
|
||||||
|
Contributing Code
|
||||||
|
=================
|
||||||
|
|
||||||
|
Flake8 development happens on `GitLab`_. Code contributions should be
|
||||||
|
submitted there.
|
||||||
|
|
||||||
|
Merge requests should:
|
||||||
|
|
||||||
|
- Fix one issue and fix it well
|
||||||
|
|
||||||
|
Fix the issue, but do not include extraneous refactoring or code
|
||||||
|
reformatting. In other words, keep the diff short, but only as short
|
||||||
|
as is necessary to fix the bug appropriately and add sufficient testing
|
||||||
|
around it. Long diffs are fine, so long as everything that it includes
|
||||||
|
is necessary to the purpose of the merge request.
|
||||||
|
|
||||||
|
- Have descriptive titles and descriptions
|
||||||
|
|
||||||
|
Searching old merge requests is made easier when a merge request is well
|
||||||
|
described.
|
||||||
|
|
||||||
|
- Have commits that follow this style:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
Create a short title that is 50 characters long
|
||||||
|
|
||||||
|
Ensure the title and commit message use the imperative voice. The
|
||||||
|
commit and you are doing something. Also, please ensure that the
|
||||||
|
body of the commit message does not exceed 72 characters.
|
||||||
|
|
||||||
|
The body may have multiple paragraphs as necessary.
|
||||||
|
|
||||||
|
The final line of the body references the issue appropriately.
|
||||||
|
|
||||||
|
|
||||||
|
Reviewing and Triaging Issues and Merge Requests
|
||||||
|
================================================
|
||||||
|
|
||||||
|
When reviewing other people's merge requests and issues, please be
|
||||||
|
**especially** mindful of how the words you choose can be ready by someone
|
||||||
|
else. We strive for professional code reviews that do not insult the
|
||||||
|
contributor's intelligence or impugn their character. The code review
|
||||||
|
should be focused on the code, it's effectiveness, and whether it is
|
||||||
|
appropriate for Flake8.
|
||||||
|
|
||||||
|
If you have the ability to edit an issue or merge request's labels, please do
|
||||||
|
so to make search and prioritization easier.
|
||||||
|
|
||||||
|
Flake8 uses milestones with both issues and merge requests to provide
|
||||||
|
other contributors direction about when an issue or merge request will be
|
||||||
|
delivered.
|
||||||
|
|
||||||
|
|
||||||
|
.. links
|
||||||
|
.. _Python Code Quality Authority's Code of Conduct:
|
||||||
|
http://meta.pycqa.org/en/latest/code-of-conduct.html
|
||||||
|
|
||||||
|
.. _tox:
|
||||||
|
https://tox.readthedocs.io/
|
||||||
|
|
||||||
|
.. _GitLab:
|
||||||
|
https://gitlab.com/pycqa/flake8
|
||||||
|
|
||||||
|
.. _pycodestyle:
|
||||||
|
https://github.com/pycqa/pycodestyle
|
||||||
|
|
||||||
|
.. _pyflakes:
|
||||||
|
https://github.com/pyflakes/pyflakes
|
||||||
|
|
||||||
|
.. _mccabe:
|
||||||
|
https://github.com/pycqa/mccabe
|
||||||
|
|
@ -15,6 +15,7 @@ pull gently.
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
contributing
|
||||||
checker
|
checker
|
||||||
cli
|
cli
|
||||||
formatters
|
formatters
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue