Skip to content

Latest commit

 

History

History
133 lines (90 loc) · 4.36 KB

CONTRIBUTING.md

File metadata and controls

133 lines (90 loc) · 4.36 KB

Contributing to QCML

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.

Table of Contents


How to Contribute

  1. 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.

  2. Clone your fork:

    git clone https://github.com/albertnieto/qcml.git
    cd qcml
  3. Create a new branch:
    Create a branch for your contribution.

    git checkout -b my-feature-branch
  4. Make your changes:
    Ensure your changes follow the coding standards and are accompanied by relevant tests.

  5. Commit your changes:
    Write clear and concise commit messages.

    git commit -m "Add feature X"
  6. Push your branch:
    Push to your fork on GitHub.

    git push origin my-feature-branch
  7. Submit a pull request:
    Open a pull request from your branch to the main qcml repository. Follow the pull request template and describe your changes in detail.


Code of Conduct

We adhere to the Contributor Covenant Code of Conduct. Please read it carefully to understand the expected behavior when interacting with the project.


Bug Reports

If you find a bug, please help us by reporting it via the GitHub issues. Before reporting, please:

  1. Search existing issues: Your issue may already be reported.
  2. Include details: Describe the bug, expected behavior, and steps to reproduce it.
  3. Provide logs and screenshots (if applicable): Help us understand the issue better by attaching logs or screenshots.

Feature Requests

We welcome suggestions for new features or improvements! To propose a new feature:

  1. Open an issue with the tag enhancement.
  2. Provide a detailed explanation of the feature and its benefits.
  3. If possible, describe how it could be implemented.

Coding Standards

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.

Testing

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

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.


Pull Request Process

To submit a pull request (PR):

  1. Ensure all changes are committed and pushed to your fork.
  2. Submit your PR to the main branch.
  3. Your PR will be reviewed by a project maintainer. Please be patient, as reviews can take time.
  4. Once approved, your branch will be merged into main.
  5. 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.