summaryrefslogtreecommitdiff
path: root/doc/development_guide
diff options
context:
space:
mode:
authorAshley Whetter <AWhetter@users.noreply.github.com>2017-07-12 05:45:16 +0100
committerGitHub <noreply@github.com>2017-07-12 05:45:16 +0100
commit9f7797ae15bd5e4e5c4ad320afcc15eeb4cdae82 (patch)
treea3316d20d3be3ce78f0aed8b1e39ade7f75176bc /doc/development_guide
parent6794b421d0004c593748df850083914049f11a98 (diff)
downloadpylint-git-9f7797ae15bd5e4e5c4ad320afcc15eeb4cdae82.tar.gz
Expanded documentation for new contributors (#1569)
Diffstat (limited to 'doc/development_guide')
-rw-r--r--doc/development_guide/contribute.rst43
1 files changed, 42 insertions, 1 deletions
diff --git a/doc/development_guide/contribute.rst b/doc/development_guide/contribute.rst
index 924979900..e367a42de 100644
--- a/doc/development_guide/contribute.rst
+++ b/doc/development_guide/contribute.rst
@@ -39,6 +39,8 @@ Archives before April 2013 are available at
http://lists.logilab.org/pipermail/python-projects/
+.. _repository:
+
Repository
----------
@@ -91,7 +93,9 @@ your patch gets accepted.
about this topic)
-Functional tests
+.. _functional_tests:
+
+Functional Tests
----------------
These are residing under '/test/functional' and they are formed of multiple
@@ -128,3 +132,40 @@ current environment in order to have faster feedback. Run with::
.. _`Closing issues via commit messages`: https://help.github.com/articles/closing-issues-via-commit-messages/
.. _`About pull requests`: https://help.github.com/articles/using-pull-requests/
.. _tox: http://tox.readthedocs.io/en/latest/
+
+
+Tips for Getting Started with Pylint Development
+------------------------------------------------
+* Read the :ref:`technical-reference`. It gives a short walkthrough of the pylint
+ codebase and will help you identify where you will need to make changes
+ for what you are trying to implement.
+* :func:`astroid.extract_node` is your friend. Most checkers are AST based,
+ so you will likely need to interact with :mod:`astroid`.
+ A short example of how to use :func:`astroid.extract_node` is given
+ :ref:`here <astroid_extract_node>`.
+* When fixing a bug for a specific check, search the code for the warning
+ message to find where the warning is raised,
+ and therefore where the logic for that code exists.
+
+A Typical Development Workflow
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#. Create a virtualenv in which to work::
+
+ $ tox
+
+#. Write the tests. See :ref:`functional_tests`.
+#. Check that the tests fail::
+
+ $ tox
+
+#. Fix pylint!
+#. Make sure your tests pass::
+
+ $ tox
+
+ It is also possible to give tox a `pytest specifier <https://docs.pytest.org/en/latest/usage.html#specifying-tests-selecting-tests>`_
+ to run only your test::
+
+ $ tox pylint/test/test_functional.py::test_functional
+
+#. Package up and submit your changes as outlined in `repository`_.