Skip to content

Contributing to MacScrape

We welcome contributions to MacScrape! This document provides guidelines for contributing to the project.

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork locally
  3. Set up the development environment
    git clone https://github.com/amacsmith/mac-scrape.git
    cd mac-scrape
    pip install -r requirements.txt
    pip install -r requirements-dev.txt

Development Workflow

  1. Create a new branch for your feature or bugfix
  2. Make your changes
  3. Write or update tests
  4. Run the test suite
  5. Submit a pull request
    git checkout -b feature-or-bugfix-name
    # Make your changes
    pytest
    git push origin feature-or-bugfix-name

Coding Standards

We follow PEP 8 for Python code style. Use black for code formatting and flake8 for linting.

    black .
    flake8

Commit Messages

Follow the Conventional Commits specification:

    <type>[optional scope]: <description>

    [optional body]

    [optional footer(s)]

Example:

    feat(scraper): add support for JavaScript rendering

    This commit adds Playwright integration to render JavaScript-heavy pages
    before scraping.

    Closes #123

Pull Request Process

  1. Ensure your code adheres to the project's coding standards
  2. Update the documentation if you're adding or changing features
  3. Add or update tests to cover your changes
  4. Ensure all tests pass
  5. Update the CHANGELOG.md file
  6. Submit the pull request with a clear title and description

Reporting Bugs

Use the GitHub issue tracker to report bugs. Include:

  • A clear, descriptive title
  • A detailed description of the issue
  • Steps to reproduce the problem
  • Expected behavior
  • Actual behavior
  • MacScrape version and environment details

Requesting Features

Feature requests are welcome. Use the GitHub issue tracker and include:

  • A clear, descriptive title
  • A detailed description of the proposed feature
  • Any relevant examples or use cases
  • Potential drawbacks or challenges

Code of Conduct

This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.

Contribution Workflow

    graph TD
        A[Fork Repository] --> B[Clone Locally]
        B --> C[Create Feature Branch]
        C --> D[Make Changes]
        D --> E[Run Tests]
        E --> F{Tests Pass?}
        F -->|Yes| G[Commit Changes]
        F -->|No| D
        G --> H[Push to Fork]
        H --> I[Create Pull Request]