Contributing ============ We welcome contributions via GitHub pull requests: - `Fork a Repo `_ - `Creating a pull request `_ Developing ---------- Prepare a developer environment. Then, from the telnetlib3 code folder:: pip install --editable . Any changes made in this project folder are then made available to the python interpreter as the 'telnetlib3' module regardless of the current working directory. Running Tests ------------- `Py.test ` is the test runner. Install and run tox :: pip install --upgrade tox tox A convenience target, 'develop' is provided, which adds `-vv` and `--looponfail` arguments, where the tests automatically re-trigger on any file change:: tox -e develop Code Formatting --------------- To make code formatting easy on developers, and to simplify the conversation around pull request reviews, this project has adopted the `black `_ code formatter. This formatter must be run against any new code written for this project. The advantage is, you no longer have to think about how your code is styled; it's all handled for you! To make this even easier on you, you can set up most editors to auto-run ``black`` for you. We have also set up a `pre-commit `_ hook to run automatically on every commit, with just a small bit of extra setup: :: pip install pre-commit pre-commit install --install-hooks Now, before each git commit is accepted, this hook will run to ensure the code has been properly formatted by ``black``. Style and Static Analysis ------------------------- All standards enforced by the underlying tools are adhered to by this project, with the declarative exception of those found in `landscape.yml `_, or inline using ``pylint: disable=`` directives. Perform static analysis using tox target *sa*:: tox -esa