Feel free and welcome to contribute to this project. You can start with filing issues and ideas for improvement in GitHub tracker. Our favorite thoughts from The Zen of Python:
- Beautiful is better than ugly.
- Simple is better than complex.
- Readability counts.
We respect the PEP8 Style Guide for Python Code. Here’s a couple of recommendations to keep on mind when writing code:
- Comments should be complete sentences.
- The first word should be capitalized (unless identifier).
- When using hanging indent, the first line should be empty.
- The closing brace/bracket/parenthesis on multiline constructs is under the first non-whitespace character of the last line
It is challenging to be both concise and descriptive, but that is what a well-written summary should do. Consider the commit message as something that will be pasted into release notes:
- The first line should have up to 50 characters.
- Complete sentence with the first word capitalized.
- Should concisely describe the purpose of the patch.
- Do not prefix the message with file or module names.
- Other details should be separated by a blank line.
Why should I care?
- It helps others (and yourself) find relevant commits quickly.
- The summary line will be re-used later (e.g. for rpm changelog).
- Some tools do not handle wrapping, so it is then hard to read.
- You will make the maintainers happy to read beautiful commits :)
You can get some more context in the stackoverflow article.
In order to experiment, play with the latest bits and develop improvements it is best to use a virtual environment:
mkvirtualenv fmf git clone https://github.com/psss/fmf cd fmf pip install -e .
python3-virtualenvwrapper to easily create and enable
virtual environments using
that if you have freshly installed the package you need to open a
new shell session to enable the wrapper functions.
pre-commit hooks to run all available checks for
your commits to the project:
pip install pre-commit pre-commit install
There are several Makefile targets defined to make the common daily tasks easy & efficient:
- make test
- Execute the test suite.
- make smoke
- Perform quick basic functionality test.
- make coverage
- Run the test suite under coverage and report results.
- make docs
- Build documentation.
- make packages
- Build rpm and srpm packages.
- make tags
- Create or update the Vim
tagsfile for quick searching. You might want to use
set tags=./tags;in your
.vimrcto enable parent directory search for the tags file as well.
- make clean
- Cleanup all temporary files.
Run the default set of tests directly on your localhost:
To run tests using pytest with the test coverage overview:
Install pytest and coverage using dnf or pip:
dnf install python3-pytest python3-coverage pip install pytest coveralls
For building documentation locally install necessary modules:
pip install sphinx sphinx_rtd_theme mock
Make sure docutils are installed in order to build man pages:
dnf install python3-docutils
Building documentation is then quite straightforward:
Find the resulting html pages under the