Skip to content

Contributing to Sharif OCW Scrapy's Downloader

Guidelines for contributing to this project

๐Ÿš€ Getting Started

Thank you for considering contributing to Sharif OCW Scrapy's Downloader! This document outlines the process for contributing to the project and addresses common questions.

๐Ÿ“ Code of Conduct

This project adheres to a Code of Conduct that all participants are expected to follow. Please read CODE_OF_CONDUCT.md before contributing.

๐Ÿ”„ Development Workflow

Setting Up the Development Environment

  1. Fork the repository and clone your fork locally

  2. Install dependencies:

    Bash
    make setup_dev
    

or

Bash
make uv_sync_all
  1. Create a branch for your changes:

    Bash
    git checkout -b feature/your-feature-name
    

Making Changes

  1. Make your changes following our coding standards

  2. Write tests for your changes

  3. Run tests to ensure everything passes:

    Bash
    make uv_run_tests
    
  4. Update documentation as needed

Submitting Changes

  1. Commit your changes using conventional commit messages
  2. Push to your fork
  3. Submit a pull request

๐Ÿ“Š Coding Standards

  • Follow PEP 8 guidelines

  • Use type hints

  • Write docstrings in the Google format

  • Ensure code passes our linters:

    Bash
    make uv_sync_lint
    

๐Ÿ“š Documentation

Updates to documentation are just as important as code changes. Please:

  • Update the docs to reflect your changes

  • Add examples where appropriate

  • Use our documentation tools:

    Bash
    make setup_docs
    make uv_mkdoc_build
    

๐Ÿงช Testing

  • Write unit tests for new features
  • Ensure existing tests continue to pass
  • Aim for high test coverage

๐Ÿ” Review Process

  1. A maintainer will review your PR
  2. Changes may be requested
  3. Once approved, your PR will be merged

๐Ÿ“„ License

By contributing, you agree that your contributions will be licensed under the project's MIT License.


Thank you for your contributions! ๐Ÿ™