4. coder guide¶

This guide attempts to embody a rudimentary set of rules for developer submissions of source code and documentation targeted for inclusion within the mudpy project, as well as pointers to useful resources for those attempting to obtain a greater understanding of the software.

4.1. source¶

As with any project, the mudpy source code could always be better documented, and contributions to that end are heartily welcomed.

4.1.1. version control system¶

Git is used for version control on the project, and the archive can be browsed or cloned anonymously from https://mudpy.org/code/mudpy . For now, detailed commits can be E-mailed to fungi@yuggoth.org, but there will most likely be a developer mailing list for more open presentation and discussion of patches soon.

A ChangeLog is generated automatically from repository commit logs, and is included automatically in all sdist tarballs. It can be regenerated easily by running tox -e dist from the top level directory of the Git repository in a working developer environment.

4.1.2. developer environment¶

Basic developer requirements are a POSIX Unix derivative (such as Linux), a modern Python 3 interpreter (any of the minor revisions mentioned in the metadata.classifier section of setup.cfg) and a recent release of the tox utility (at least the tox.minversion mentioned in tox.ini).

4.1.3. application program interface¶

API documentation is maintained within docstrings in the mudpy source code.

4.1.4. regression testing¶

All new commits are tested using a selftest script in the mudpy/tests directory of the source archive, to help ensure the software is continually usable. Any new features should be accompanied by suitable regression tests so that their functionality can be maintained properly through future releases. The selftest can be invoked with tox -e selftest after starting the daemon with the test configuration provided in the mudpy/tests/fixtures directory.

4.2. style¶

This project follows Guido van Rossum and Barry Warsaw’s Style Guide for Python Code (a.k.a. “PEP-8”). When in need of sample code or other examples, any common source code file or text document file distributed as part of mudpy should serve as a suitable reference. Testing of all new patches with the flake8 utility should be performed with tox -e flake8 to ensure adherence to preferred style conventions.