First off, thank you for considering contributing to the QCML project! Your involvement is key to improving this project, and we’re excited to collaborate with you.
- How to Contribute
- Code of Conduct
- Bug Reports
- Feature Requests
- Coding Standards
- Testing
- Documentation
- Pull Request Process
-
Fork the repository:
Use the "Fork" button at the top right of the repository page on GitHub to create a copy of the project in your own GitHub account. -
Clone your fork:
git clone https://github.com/albertnieto/qcml.git cd qcml
-
Create a new branch:
Create a branch for your contribution.git checkout -b my-feature-branch
-
Make your changes:
Ensure your changes follow the coding standards and are accompanied by relevant tests. -
Commit your changes:
Write clear and concise commit messages.git commit -m "Add feature X"
-
Push your branch:
Push to your fork on GitHub.git push origin my-feature-branch
-
Submit a pull request:
Open a pull request from your branch to the mainqcml
repository. Follow the pull request template and describe your changes in detail.
We adhere to the Contributor Covenant Code of Conduct. Please read it carefully to understand the expected behavior when interacting with the project.
If you find a bug, please help us by reporting it via the GitHub issues. Before reporting, please:
- Search existing issues: Your issue may already be reported.
- Include details: Describe the bug, expected behavior, and steps to reproduce it.
- Provide logs and screenshots (if applicable): Help us understand the issue better by attaching logs or screenshots.
We welcome suggestions for new features or improvements! To propose a new feature:
- Open an issue with the tag
enhancement
. - Provide a detailed explanation of the feature and its benefits.
- If possible, describe how it could be implemented.
Please adhere to the following coding standards:
- Python Style: Follow PEP 8.
- Naming Conventions: Use meaningful names for variables, functions, classes, etc.
- Type Hints: Include Python type hints where possible to improve code readability.
- Docstrings: Write clear and concise docstrings for all public modules, functions, and classes following PEP 257.
Ensure that your contribution includes adequate tests:
- Add new tests in the
tests/
folder. - Use
pytest
to run all tests. bash pytest - If fixing a bug, write a regression test that fails before your fix and passes afterward.
- Coverage should not decrease—ensure tests cover all new functionality.
Documentation is an essential part of the QCML project. All public classes, functions, and modules must be well documented. The documentation is located in the docs/
directory and can be built using:
bash mkdocs serve
Please update the documentation accordingly if you add new features or make significant changes.
To submit a pull request (PR):
- Ensure all changes are committed and pushed to your fork.
- Submit your PR to the
main
branch. - Your PR will be reviewed by a project maintainer. Please be patient, as reviews can take time.
- Once approved, your branch will be merged into
main
. - If requested, please make any necessary changes based on the reviewer’s feedback.
When submitting your pull request:
- Make sure all tests pass: Run
pytest
to verify. - Keep it small: Large pull requests are harder to review. Try to break down large changes into smaller, self-contained contributions.
- Update documentation: If your change modifies functionality, ensure the documentation reflects those changes.
Thank you for contributing to QCML! We look forward to seeing your work improve this project.