If you have a bug report or idea for improvement, please create an issue on GitHub, or a pull request with the fix.
All pull requests are subject to professional code review. If you do not want your code reviewed, do not submit it.
See installation instructions for details on installing boofuzz from source with developer options.
Install python version 3.8+
Verify tests pass:
tox
Note
(Re-)creating a tox environment on Linux requires root rights because some of your unit tests work with raw sockets. tox will check if
cap_net_admin
andcap_net_raw+eip
are set on the tox environment python interpreter and if not, will do so.Once the capabilities have been set, running tox won't need extended permissions.
Attention!
If the tests pass, check the output for new flake8 warnings that indicate PEP8 violations.
Format the code to meet our code style requirements:
black .
Use
# fmt: off
and# fmt: on
around a block to disable formatting locally.If you have PyCharm, use it to see if your changes introduce any new static analysis warnings.
Modify CHANGELOG.rst to say what you changed.
If adding a new module, consider adding it to the Sphinx docs (see
docs
folder).
On every pull request:
- Verify changes are sensible and in line with project goals.
- Verify tests pass (continuous integration is OK for this).
- Use PyCharm to check static analysis if changes are significant or non-trivial.
- Verify CHANGELOG.rst is updated.
- Merge in.
Releases are deployed from GitHub Actions when a new release is created on GitHub.
Create release branch.
Increment version number from last release according to PEP 0440 and roughly according to the Semantic Versioning guidelines.
- In
pyproject.toml
. - In
docs/conf.py
. - Add new version to
.github/ISSUE_TEMPLATE/2_bug_report.yml
.
- In
Modify CHANGELOG file for publication if needed.
Merge release branch.
- Create release on Github.
- Verify GitHub Actions deployment succeeds.