To start with, thank you for taking the time to contribute! ❤️
There are a lot of ways with which one can contribute to this project.
- As a user of the project, if one comes across a certain discrepancy or if one wants a certain feature to be implemented, they can open up an issue ticket at https://github.com/CentOS/duffy/issues.
- As a developer of the project, one can help with providing the code that helps fix a certain issue or helps attain a certain new feature by opening up a pull request against the primary branch.
- As a user or developer of the project, one can help with documenting the ins and outs of the project with respect to its usage, development, contribution, maintenance, deployment etc.
- Fork the repository to your own GitHub namespace.
- Clone the forked repository and navigate into the project directory.
git clone https://github.com/<namespace>/duffy.git cd duffy
- Set up and activate a virtual environment.
- Using native virtual environment
python3 -m venv duffyenv source duffyenv/bin/activate
- Using virtualenv wrapper
virtualenv duffyenv source duffyenv/bin/activate
- Using Poetry virtual environment shell
poetry shell
- Using native virtual environment
- Install using Poetry
poetry install
- Checkout to a new branch with a clear descriptive name.
git checkout -b <some-branch-name>
- Open up the project in an IDE or a code-editor to start adding your contributions.
- Test your changes by running the server using
duffy -p 8000 -4 -l trace
- Please choose a port number that you have the permissions for and is not already in use.
- Please make use of the variety of log levels in order to better facilitate the debugging process
critical
- Exhibit extremely severe error events, which may result in the application's terminationerror
- Exhibit significant error events that will halt normal programme execution but may still allow the application to executewarning
- Exhibit potentially dangerous circumstances that may be of interest to end users or system administrators and identify potential issuesinfo
- Exhibit informational messages that may be useful to end users and system administrators, as well as the application's progressdebug
- Exhibit application developers' usage of relatively detailed debuggingtrace
- Exhibits all related messages.
- Once done making the changes, be sure to add tests for the code and see if your code changes comply with them by running
pytest
- Please commit with a precise commit message and signature.
git commit -sm "<some-commit-message-which-actually-makes-sense>"
- Push your local commits to the remote branch of your fork.
git push origin <some-branch-name>
- Please follow the following standard for your commit messages,
- Limit the subject line of a commit to 50 characters and the body of a commit to 72 characters.
- Use the imperative sense of a verb in the subject line (eg. Use
Update ...
and notUpdated ...
). - Capitalize the subject line and do not use periods at the end of the sentence.
- Use the body to justify and describe the changes and start it after leaving a blank line under the subject.
- Be sure to sign your commits before pushing them to the remote branch of your fork.
- For every code addition made to the project,
- Add inline comments to the parts of the code which require additional context and add to the documentation as well.
- Ensure that the code is semantic and the names provided to variables, functions and classes describe their purpose.
- Tests must be added in the same pull request to ensure that a good coverage and great overall code quality.
- If there are parts in the code that do not require testing or cannot be tested, be sure to exclude them in the config.
- Use
black .
to format the code andisort .
to automatically sort the imports before pushing the changes.
The current maintainers of the project are available at the #centos-ci IRC channel of libera.chat. Please feel free to reach out to them. As the team members hail from a various countries across the world, patience in waiting for a reply back is greatly appreciated.