# Brainstorming outline for development guide [Nick] I'm putting this together to gather my thoughts. I'm also curious if there are existing guides with a compatible open source license we can copy & paste from, and then adapt. * Overview * Welcome! * Imposter syndrome disclaimer * Code of conduct * Navigating the PlasmaPy Project * GitHub organization and repository * Webpage * Matrix chat * Communication channels * PLEPs * Affiliated packages * Many ways to contribute * Providing user * support * Organizing events * Providing feedback * Making feature requests * Making bug reports * Providing knowledge on plasma physics topics * Creating educational materials (introduce plasma concepts while introducing PlasmaPy) * Background tutorials * Python * Research software engineering with Python open access book * `astropy.units` * git & GitHub: how to make a pull request * reStructuredText * Markdown * Getting set up to contribute * Fork & clone repo * Set up remotes * Install PlasmaPy for development * Choosing an IDE * Running tests * Helpful practice: run tests often! * Workflow (assuming completion of previous tasks) * Create a branch * Pushing branch to fork on GitHub * * Code guidelines * pre-commit * Documentation * Overview * reStructuredText * numpydoc standard * Example docstring * How to build documentation locally * Sphinx * `plasmapy-sphinx` * Documentation guidelines * Best practices * Tests * Overview * Test are run using pytest * How tests are run * Command line * Inside Python * * Floating point comparisons * Test independence & parametrization * `plasmapy-test` * Release guide * NEP 28 guidelines