<commit_before>*******************************
How to Get Your Change Into Ryu
*******************************

Submitting a change
===================

Send patches to <EMAIL>. Please don't use "Pull
Request" on GitHub. We expect you to send patches in "git-format-patch"
style.

.. code-block:: bash

  # "N" means the number of commits to be included
  $ git format-patch -s HEAD~N

  # To add cover (e.g., [PATCH 0/X]), specify "--cover-letter" option
  $ git format-patch -s --cover-letter HEAD~N

  # You can send patches by "git send-email" command
  $ git send-email --to="<EMAIL>" *.patch

Please check your changes with autopep8, pycodestyle(pep8) and running
unit tests to make sure that they don't break the existing features.
The following command does all for you.

.. code-block:: bash

  # Install dependencies of tests
  $ pip install -r tools/test-requires

  # Execute autopep8
  # Also, it is convenient to add settings of your editor or IDE for
  # applying autopep8 automatically.
  $ autopep8 --recursive --in-place ryu/

  # Execute unit tests and pycodestyle(pep8)
  $ ./run_tests.sh

Of course, you are encouraged to add unit tests when you add new
features (it's not a must though).

Python version and libraries
============================
* Python 2.7, 3.4, 3.5:

  Ryu supports multiple Python version.  CI tests on Travis-CI is running
  on these versions.

* standard library + widely used library:

  Basically widely used == OpenStack adopted.
  As usual there are exceptions.  Or python binding library for other
  component.

Coding style guide
==================
* pep8:

  As python is used, PEP8 is would be hopefully mandatory for
  https://www.python.org/dev/peps/pep-0008/

* pylint:

  Although pylint is useful for finding bugs, but pylint score not very
  important for now because we're still at early development stage.
  https://www.pylint.org/

* Google python style guide is very helpful:<commit_msg>Update how to contribute to Ryu.<commit_after>*******************************
How to Get Your Change Into Ryu
*******************************

Submitting a change
===================

To send patches to ryu, please make a
`pull request <https://github.com/faucetsdn/ryu>`_ on GitHub.

Please check your changes with autopep8, pycodestyle(pep8) and running
unit tests to make sure that they don't break the existing features.
The following command does all for you.

.. code-block:: bash

  # Install dependencies of tests
  $ pip install -r tools/test-requires

  # Execute autopep8
  # Also, it is convenient to add settings of your editor or IDE for
  # applying autopep8 automatically.
  $ autopep8 --recursive --in-place ryu/

  # Execute unit tests and pycodestyle(pep8)
  $ ./run_tests.sh

Of course, you are encouraged to add unit tests when you add new
features (it's not a must though).

Python version and libraries
============================
* Python 2.7, 3.5, 3.6, 3.7:

  Ryu supports multiple Python version.  CI tests on Travis-CI is running
  on these versions.

* standard library + widely used library:

  Basically widely used == OpenStack adopted.
  As usual there are exceptions.  Or python binding library for other
  component.

Coding style guide
==================
* pep8:

  As python is used, PEP8 is would be hopefully mandatory for
  https://www.python.org/dev/peps/pep-0008/

* pylint:

  Although pylint is useful for finding bugs, but pylint score not very
  important for now because we're still at early development stage.
  https://www.pylint.org/

* Google python style guide is very helpful:
{'fraction_non_alphanumeric': 0.14074280927115332, 'fraction_numerical': 0.010890812622172577, 'mean_word_length': 3.8016085790884717, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 5, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2590560', 'n_tokens_mistral': 1075, 'n_tokens_neox': 1001, 'n_words': 453}