Skip to content

Latest commit

 

History

History
225 lines (166 loc) · 4.46 KB

File metadata and controls

225 lines (166 loc) · 4.46 KB

parallel-requests v2.0.0 - Project Board

Current Phase: Preparation Complete ✅

Progress Overview

  • PRD written and approved
  • Code archived to legacy/v0.2.x branch
  • Clean main branch initialized
  • Repository ready for development

Phase 1: Foundation (Week 1) - NOT STARTED

Tasks

  • exceptions.py - Exception hierarchy
  • backends/base.py - Backend interface
  • config.py - Configuration management
  • Type checking configured (mypy)
  • Unit tests for exceptions

Deliverables

  • Working interface contracts
  • Type-safe foundation
  • Configuration system

Timeline

  • Day 1-2: Exception hierarchy
  • Day 3-4: Backend interface
  • Day 5: Configuration

Phase 2: Core Utilities (Week 2) - NOT STARTED

Tasks

  • utils/retry.py - Retry strategy
  • utils/rate_limiter.py - Rate limiting
  • utils/validators.py - Input validation
  • Remove pandas dependency (already removed)
  • Unit tests (90%+ coverage)

Deliverables

  • Working retry logic
  • Rate limiting with RPS control
  • Input validation
  • Zero pandas dependency

Phase 3: Proxy & Headers (Week 2-3) - NOT STARTED

Tasks

  • utils/headers.py - Header management
  • utils/proxies.py - Proxy manager
  • Webshare integration
  • Free proxies (opt-in)
  • Unit tests (90%+ coverage)

Deliverables

  • Complete proxy management with webshare integration
  • User agent rotation
  • All requirements met

Phase 4: Niquests Backend (Week 3-4) - NOT STARTED

Tasks

  • backends/niquests.py - Implementation
  • HTTP/2 support
  • Streaming support
  • Integration tests

Deliverables

  • Primary backend fully functional
  • HTTP/2 working
  • All features supported

Phase 5: Aiohttp Backend (Week 4) - NOT STARTED

Tasks

  • backends/aiohttp.py - Implementation
  • HTTP/2 support
  • Streaming support
  • Integration tests

Deliverables

  • Secondary backend fully functional
  • Fallback option ready

Phase 6: Requests Backend (Week 5) - NOT STARTED

Tasks

  • backends/requests.py - Implementation
  • asyncio.to_thread() integration
  • Integration tests
  • Benchmarks

Deliverables

  • Fallback backend for sync users
  • Complete backend coverage

Phase 7: Main Client (Week 5-6) - NOT STARTED

Tasks

  • client.py - ParallelRequests class
  • Backend auto-selection
  • Request orchestration
  • Error handling
  • Context managers
  • Standalone functions

Deliverables

  • Working main API
  • All features integrated
  • End-to-end tests passing

Phase 8: Advanced Features (Week 6) - NOT STARTED

Tasks

  • Streaming in main client
  • Progress bar integration
  • Rate limiting integration

Deliverables

  • Complete feature set
  • Streaming examples

Phase 9: Testing & Documentation (Week 6-7) - NOT STARTED

Tasks

  • Unit tests (95%+ coverage)
  • Integration tests
  • Performance tests
  • Complete README
  • API reference
  • Examples
  • Migration guide

Deliverables

  • Production-ready library
  • Complete documentation
  • Comprehensive test suite

Phase 10: Release (Week 7) - NOT STARTED

Tasks

  • Code quality checks
  • CI/CD setup
  • CHANGELOG.md
  • Release v2.0.0

Deliverables

  • Release v2.0.0
  • CI/CD pipeline
  • Complete documentation

Quality Gates

Each phase must meet:

  • 100% type coverage (mypy --strict)
  • 90%+ test coverage (pytest-cov)
  • 0 linting errors (ruff)
  • 0 formatting issues (black, isort)
  • All tests pass (pytest)

Estimated Timeline

Week Phase Status
1 Foundation ⏳ Not Started
2 Core Utilities ⏳ Not Started
2-3 Proxy & Headers ⏳ Not Started
3-4 Niquests Backend ⏳ Not Started
4 Aiohttp Backend ⏳ Not Started
5 Requests Backend ⏳ Not Started
5-6 Main Client ⏳ Not Started
6 Advanced Features ⏳ Not Started
6-7 Testing & Documentation ⏳ Not Started
7 Release ⏳ Not Started

Total: 7 weeks to production-ready v2.0.0


Git Commands Reference

# Start new feature branch
git checkout -b feature/phase-X-component-Y

# Run tests
pytest tests/ -v --cov

# Type checking
mypy src/parallel_requests/

# Linting
ruff check src/parallel_requests/
black --check src/parallel_requests/

# Commit feature
git add .
git commit -m "Implement component Y"
git push origin feature/phase-X-component-Y