ContributingπŸ”—

Thank you for your interest in contributing to autopypath! We always welcome contributions from the community to help improve the project.

Code of ConductπŸ”—

We expect all contributors to adhere to the Code of Conduct of this project.

Ways to ContributeπŸ”—

There are several ways you can contribute to autopypath:

  • Reporting Issues: If you encounter any bugs or have suggestions for new features, please open an issue on the GitHub repository.

  • Submitting Pull Requests: If you would like to contribute code, please fork the repository, make your changes, and submit a pull request. Please ensure that your code follows the project’s coding standards and includes appropriate tests.

  • Improving Documentation: Good documentation is crucial for any project. If you find areas where the documentation can be improved, please submit a pull request with your changes.

  • Testing: Help us ensure the quality of autopypath by testing new features and reporting any issues you encounter.

Getting StartedπŸ”—

To contribute code or documentation updates to autopypath, follow these steps:

  1. Fork the autopypath repository on GitHub.

  2. Clone your fork to your local machine:

    git clone https://github.com/<your-username>/python-autopypath.git
    
  3. Change into the project directory:

    cd python-autopypath
    
  4. Create a new branch for your changes. Please use descriptive names for your branches to indicate the purpose of your changes such as feature/my-feature-branch or fix/issue-123, docs/update-readme, etc.

    git checkout -b feature/my-feature-branch
    
  5. Setup the development environment as described in the Development Installation section by running the bootstrap.py script and activating the virtual environment.

    This will install all necessary dependencies for development and testing including current versions of tox, ruff, mypy, sphinx, etc.

    Running the bootstrap scriptπŸ”—
      python bootstrap.py
    
    Activating the virtual environment on Linux/macOSπŸ”—
      source .venv/bin/activate
    
    Activating the virtual environment on WindowsπŸ”—
      .venv\Scripts\activate
    
    Activating the virtual environment on Windows PowerShellπŸ”—
      .\.venv\Scripts\Activate.ps1
    
  6. Make your changes and test them thoroughly using the existing test suite and by adding new tests if necessary. Our goal is to maintain high code quality and ensure that all code is tested and all tests pass before merging any contributions.

    We use ruff and mypy for linting, code style, and type checking, so please ensure your code adheres to the project’s coding standards. This is largely automated via tox and the tox configuration already includes ruff and mypy checks as part of the test suite.

    If the tests don’t pass or don’t cover your changes, the pull request may be delayed or rejected.

    You can run the test suite using tox:

    tox run
    

    It checks your code against multiple Python versions and runs all tests to ensure compatibility and correctness.

  7. Update the documentation if your changes affect the user experience or introduce new features. Changes to the documentation should be clear and concise. Pull requests that do not include necessary documentation updates may be delayed or rejected.

    The documentation is built using Sphinx and the source files are located in the docs_source directory of the project.

    You can locally build the documentation using tox run -e docs to verify your changes. The built documentation will be available in the documentation directory.

    tox run -e docs
    
  8. Push your changes to your fork:

    git push origin my-feature-branch
    
  9. Open a pull request on the python-autopypath repository.

    Make sure to provide a clear description of your changes, the problem they solve, and any relevant context. Link to any related issues if applicable.

    Please try to make your pull requests focused and concise to facilitate easier review.

    Huge pull requests that cover multiple unrelated changes are harder to review and could be delayed or rejected.

    Checklist for Pull Requests

    Before submitting a pull request, please ensure the following:

    • ☐ All tests pass.

    • ☐ Code is properly formatted and adheres to coding standards.

    • ☐ Documentation is updated if necessary.

    • ☐ Pull request description is clear and comprehensive.

    • ☐ Changes are linked to relevant issues if applicable.

  10. Engage in the code review process and make any necessary changes based on feedback.

uv.lockπŸ”—

uv.lock is included in the source distribution to support reproducible builds and independent verification. Use of uv is optional for contributors.

Need Help?πŸ”—

If you have any questions or need assistance with contributing to autopypath, open an issue on the GitHub repository or reach out to the maintainers.