Welcome to the HandyGuide API project! We're excited to have you contribute to our open-source Django REST API. Your contributions help make the project better for everyone. Please take a moment to review and follow these guidelines to ensure a smooth and collaborative contribution process.
Before getting started, please read and adhere to our Code of Conduct. We expect all contributors to create a friendly, respectful, and inclusive environment for everyone.
- Fork the repository on GitHub to your own account.
- Clone the forked repository to your local development environment.
- Set up a virtual environment and install the required dependencies:
virtualenv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
pip install -r requirements.txt
- Create a new branch for your work:
git checkout -b feature/your-feature-branch
- Make sure to work on your feature in your branch. Keep your changes focused on a single task or issue.
- Commit your changes with a clear and descriptive commit message:
git add .
git commit -m "Add a clear and concise commit message"
- Push your changes to your GitHub fork:
git push origin feature/your-feature-branch
- Submit a Pull Request (PR) to the main repository from your GitHub page.
- Ensure your PR description explains the changes you made and why they are valuable.
- The maintainers will review your code, provide feedback, and request changes if necessary. Be prepared to make updates to your PR based on feedback.
- Follow the PEP 8 style guide for Python code.
- Use meaningful variable and function names that reflect their purpose.
- Ensure your code is well-documented with clear comments where necessary.
- Write unit tests for your code to maintain code quality and ensure it works as expected.
- Run the existing test suite before making any changes to ensure all tests pass:
python manage.py test
- Add new tests for your changes to prevent regressions and showcase expected behavior.
- Be patient and responsive during the PR review process. Maintainers and other contributors have different schedules and time zones.
- Address all review comments and discuss any suggested changes if needed.
- Squash your commits into a coherent set of changes before merging, using
git rebase
if necessary.
If you find a bug, have a question, or want to propose a new feature, check the GitHub Issues section to see if it has been reported or discussed before. If not, feel free to create a new issue.
By contributing to the HandyGuide API, you agree that your contributions will be licensed under the project's Apache 2.0.
Thank you for contributing to HandyGuide API! Your efforts help make this project better for everyone in the community. Happy coding! 🎉