First off, thanks for taking the time to contribute! 🎉
The following is a set of guidelines for contributing to refry. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
This project and everyone participating in it is governed by refry's Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to @pydanny.
This section guides you through submitting a bug report for refry. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
Before creating a bug report, please check if an issue already exists and has been addressed.
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as many details as possible.
- Provide specific examples to demonstrate the steps.
- Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior.
- Explain which behavior you expected to see instead and why.
- Include screenshots which might help to illustrate the problem.
- If the problem is related to performance or memory, include a profile log with your report.
This section guides you through submitting an enhancement suggestion for refry, including completely new features and minor improvements to existing functionalities.
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Provide specific examples to demonstrate the steps.
- Describe the current behavior and explain which behavior you expected to see instead and why.
- Include screenshots or code snippets which might help to illustrate the suggestion.
The process described here will help you to get your contributions accepted more easily.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the README.md with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
- Ensure that your code conforms to our existing code conventions and test coverage.
- Ensure your feature or fix passes all tests.
- Make sure your commit messages are clear and appropriate.
- Fork the repository.
- Create a new branch from the
main
branch. - Commit your changes to your branch.
- Push your changes to your fork.
- Submit a pull request from your fork to the
main
branch of the original repository.
- Follow Gitflow best practices:
- Use
feature/
,bugfix/
,docs/
,release/
,hotfix/
, andsupport/
prefixes for branch names. - Regularly rebase your feature branch with the
main
branch to keep up to date. - Merge your feature branch into
main
once it is complete.
- Use
- Use the present tense ("Add feature" not "Added feature").
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...").
- Limit the first line to 72 characters or less.
- Reference issues and pull requests liberally after the first line.
- Optionally consider starting the commit message with an applicable emoji:
- 🐛
:bug:
for a bug fix. - ✨
:sparkles:
for a new feature. - 📝
:memo:
for documentation. - 🚀
:rocket:
for performance improvements. - 💄
:lipstick:
for UI improvements.
- 🐛
- Follow PEP 8.
- Use Black for code formatting.
- Write docstrings.
- Use type hints where possible.
- Follow Ruff rules for linting:
- Install Ruff with
pip install ruff
in your development environment or withrye
as documented. - Run Ruff with
ruff check .
to check for linting issues. - Use
ruff --fix
to automatically fix issues where possible.
- Install Ruff with
Thank you for considering contributing to refry!
We look forward to your contributions.