Thanks for your interest in the Hydrabus-framework project! There are multiple ways to help beyond just writing code:
- Submit bug and feature requests with detailed information about your issue or idea.
- Help fellow users with open issues.
- Submit an update, a brand new module or a module/core improvement.
Here's a short list of do's and don'ts to make sure your valuable contributions actually make it into Hydrabus-framework's master branch. If you do not care to follow these rules, your contribution will be closed.
- Follow the PEP 8 style guide for python code
- Do one commit for each modification/addition/improvement
- Use explicit commit message
- License your code as GPLv3 clause
- Always start a new module using the hbfmodules.skeleton base repository
Create an issue on hbfmodules.skeleton with these details:
- Module name (hbfmodules.CATEGORY.Name)
- A short description
- Module category (uart, jtag, spi, ...)
If I accept the module, I will create a repository initiated with the hbfmodules.skeleton repository.
Use as much as possible the pyHydrabus
library for protocol interaction.
- Fill the README.md file
- Rename the
category
directory (uart, spi, i2c, ...) - Rename the
module_name.py
file - Modifying the setup.py file
- Update meta variable (into __init__ method)
self.meta.update({
'name': 'Module short description',
'version': '0.0.1',
'description': 'Module long description',
'author': 'Our name and/or email'
})
- Define necessary options (A list of dict) ->
self.options = [
{"Name": "Option1", "Value": "", "Required": True, "Type": "string/int/bool",
"Description": "Option1 description", "Default": "default value if available"},
{"Name": "Option2", "Value": "", "Required": False, "Type": "string/int/bool",
"Description": "Option2 description", "Default": self.config["HYDRABUS"]["read_timeout"]},
]
- Fulfill the
run
method
- Write "WIP" on your PR if submitting working yet unfinished code.
- Include only one module per pull request.
- Always start your work on the master branch to ensure using the latest and stable codebase.
- Use, as possible, function under utils directory.
- Include verification steps on your PR message (target, environment, ...).
- Include a short summary of what your code/module does on your PR message.
- Link any corresponding issues in the format of
See #1234
in your PR description - Explain in a few words how do you fix it in your PR message
- Write a detailed description of your bug and use a descriptive title.
- Give many details as possible of your environment.
- Include reproduction steps, stack traces and anything that might help us fix your bug.
- Search for your bug in opened issues before opening a new issue.
Thank you for taking a few moments to read this contributing guideline!