Skip to content

Latest commit

 

History

History
52 lines (42 loc) · 1.93 KB

File metadata and controls

52 lines (42 loc) · 1.93 KB

Contributing to Pocket Casts Python Client

Thank you for your interest in contributing! Please follow these guidelines to help maintain code quality and project consistency.

Code Style & Linting

  • Use black for code formatting and flake8 for linting.
  • All code must pass pre-commit checks before submitting a pull request.
  • Follow PEP8 and project-specific conventions (see .flake8 and ARCHITECTURE.md).

Testing

  • All new code must include unit tests (and integration tests if relevant) using pytest.
  • Use descriptive test names and function docstrings.
  • Mark tests with @pytest.mark.unit or @pytest.mark.integration as appropriate.
  • Ensure all tests pass locally and in CI before submitting a PR.

Documentation

  • Update docs/usage.md and reference/data-model.md for new features, endpoints, or changes.
  • Add docstrings to all public functions and classes.
  • Document any new or changed API contracts.

Pull Requests

  • PRs should be focused and atomic (one feature or fix per PR).
  • Reference related issues in the PR description.
  • Ensure all CI checks pass before requesting review.
  • Add clear descriptions and testing instructions.

Issues

  • Provide clear reproduction steps, expected/actual behavior, and environment details.
  • Use labels to categorize issues (bug, enhancement, question, etc.).
  • If reporting a bug, include relevant logs, error messages, and test cases.

Unfinished Endpoints

  • See README.md and ARCHITECTURE.md for endpoints that are not yet implemented.
  • If you are working on a pending endpoint, mention it in your PR or issue.

Getting Started

  • Clone the repository and create a Python virtual environment:
     python -m venv .venv && source .venv/bin/activate
     pip install -e .
  • Run pre-commit checks:
     bash .pre-commit.sh
  • Run tests:
     PYTHONPATH=./src pytest

For more details, see ARCHITECTURE.md and README.md.