Files
plex-playlist/docs/POE_TASK_REFERENCE.md
Xlorep DarkHelm f627ef018a
Some checks failed
CICD / Build and Publish CICD Base Image (push) Successful in 36s
CICD / Build and Push CICD Image (push) Has been cancelled
CICD / Build CICD Image Failure Postmortem (push) Has been cancelled
CICD / Backend Tests (push) Has been cancelled
CICD / Pre-commit Checks (push) Has been cancelled
CICD / Frontend Tests (push) Has been cancelled
CICD / Backend Doctests (push) Has been cancelled
CICD / Frontend Dependency Audit (push) Has been cancelled
CICD / Backend Dependency Audit (push) Has been cancelled
CICD / CICD Tests Complete (push) Has been cancelled
CICD / Build Backend Base Image (push) Has been cancelled
CICD / Build Frontend Base Image (push) Has been cancelled
CICD / Build Integration Tester Image (push) Has been cancelled
CICD / Build E2E Tester Image (push) Has been cancelled
CICD / Build Frontend Main Image (push) Has been cancelled
CICD / Production Images Complete (push) Has been cancelled
CICD / End-to-End Tests (push) Has been cancelled
CICD / E2E Tests Failure Postmortem (push) Has been cancelled
CICD / Build Backend Main Image (push) Has been cancelled
CICD / Production Image Failures Postmortem (push) Has been cancelled
CICD / Source Lanes Failure Postmortem (push) Has been cancelled
CICD / Runtime Black-Box Integration Tests (push) Has been cancelled
CICD / Integration Tests Failure Postmortem (push) Has been cancelled
feat: integrate security audits into pre-commit and CI/CD with backend pip-audit migration (#74)
## Summary

This PR integrates security-focused checks into the existing quality gates and aligns local workflows with CI/CD execution.

## What changed

- Added Bandit to pre-commit backend checks.
- Integrated eslint-plugin-security into the existing frontend ESLint setup used by pre-commit.
- Added dedicated audit tasks:
  - backend audit via pip-audit
  - frontend audit via yarn npm audit
- Updated CI/CD workflow to include and gate on frontend/backend audit jobs.
- Switched backend vulnerability scanning from Safety to pip-audit to avoid interactive/auth requirements in CI.
- Updated backend dependency set and lockfile to resolve test dependency conflicts and keep the environment solvable.
- Marked backend integration API tests with the integration marker so marker-based unit/integration separation works consistently.

## Validation

- Pre-commit hooks run and pass after formatting/autofixes.
- Branch commit created successfully after hook-driven file updates.
- Branch pushed to remote and tracking is configured.

## Notes

- pip-audit now executes from backend context (for example via uv --directory backend run ...), matching project layout.
- Remaining reported vulnerabilities depend on upstream package fix availability/constraints and may require follow-up once publishable fix versions are consumable.

## Follow-ups (optional)

- Add a curated pip-audit ignore policy for non-actionable/transient advisories with rationale.
- Open a focused follow-up PR for remaining dependency advisories once upstream fixes are practically installable.

Co-authored-by: copilotcoder <copilotcoder@darkhelm.org>
Reviewed-on: #74
2026-07-13 22:19:57 -04:00

5.2 KiB

Poe the Poet Task Reference

This project uses Poe the Poet as a unified task runner to simplify development workflows. All tasks are defined in backend/pyproject.toml and can be run from the project root.

🚀 Quick Start

# Install dependencies and set up development environment
poe setup

# See all available tasks
poe --help

# Interactive task selection
poe

📋 Essential Tasks

Development Environment

poe dev              # Start development environment (Docker Compose)
poe dev-down         # Stop development environment
poe dev-logs         # Follow development logs
poe dev-restart      # Restart development environment

Code Quality (Unified Backend + Frontend)

poe format           # Format all code (Python + TypeScript)
poe lint             # Lint all code (Python + TypeScript)
poe type-check       # Type check all code (Python + TypeScript)

Testing

poe test-unit        # Run all unit tests (backend + frontend)
poe test-all         # Run all tests including integration
poe test-full        # Run all tests with coverage + E2E
poe test-e2e         # Run end-to-end tests only

CI/CD Pipeline

poe ci-quick         # Fast quality checks (format, lint, type-check)
poe ci-full          # Complete CI pipeline simulation
poe quality-gate     # All quality checks (like CI)

Docker Images

poe build-cicd       # Build both base and complete CI/CD images
poe build-cicd-base  # Build only base image (cached dependencies)
poe build-cicd-complete  # Build only complete image (fast)

🏃‍♂️ Performance Tasks (Parallel Execution)

poe lint-parallel         # Run linting in parallel for speed
poe type-check-parallel   # Run type checking in parallel
poe test-parallel         # Run tests in parallel

🧠 Smart Tasks (Conditional Execution)

poe test-if-changed       # Only test if code changed
poe build-if-dockerfile-changed  # Only build if Dockerfiles changed

🛠 Utility Tasks

poe audit-backend   # Run backend pip-audit dependency audit
poe audit-frontend  # Run frontend Yarn npm audit
poe deps-check      # Run dependency checks across backend and frontend
poe deps-install     # Install all dependencies (backend + frontend)
poe deps-update      # Update all dependencies
poe clean            # Clean build artifacts and caches
poe reset            # Complete reset (clean + reinstall)

🔧 Individual Component Tasks

Backend Only

poe format-backend       # Format Python code only
poe lint-backend         # Lint Python code only
poe type-check-backend   # Type check Python only
poe test-backend         # Run backend tests only
poe test-backend-cov     # Backend tests with coverage

Frontend Only

poe format-frontend      # Format TypeScript code only
poe lint-frontend        # Lint TypeScript code only
poe type-check-frontend  # Type check TypeScript only
poe test-frontend        # Run frontend tests only
poe test-frontend-cov    # Frontend tests with coverage

📚 Documentation Tasks

poe docs-backend     # Run docstring tests
poe docs-check       # Check docstring quality

🎣 Pre-commit Integration

poe pre-commit-install   # Install pre-commit hooks
poe pre-commit-run       # Run all pre-commit hooks
poe pre-commit-update    # Update hook versions

💡 Tips & Tricks

Task Discovery

poe --help           # List all tasks with descriptions
poe <task> --help    # Get help for specific task
poe                  # Interactive task picker

Chaining Tasks

# Run multiple tasks in sequence
poe format lint type-check test-unit

# Custom workflows
poe clean deps-install ci-quick

Environment Context

  • All tasks run from project root
  • Backend tasks automatically use uv run in correct environment
  • Frontend tasks automatically use yarn in correct directory
  • Docker tasks use the optimized multi-stage CI/CD setup

Performance Tips

  • Use parallel tasks (*-parallel) for faster feedback
  • Use conditional tasks (*-if-changed) to save time
  • poe setup configures everything for new developers
  • poe quality-gate runs full CI checks locally

🔄 Migration from Manual Commands

Before (Manual)

cd backend && uv run ruff format .
cd frontend && yarn prettier --write src/
cd backend && uv run pytest
cd frontend && yarn test
./scripts/build-cicd-local.sh

After (Poe)

poe format
poe test-unit
poe build-cicd

🏗 Integration with Existing Workflows

  • Pre-commit hooks: Still work as before, Poe complements them
  • CI/CD pipeline: Uses same tools, Poe provides local simulation
  • Docker development: poe dev replaces manual docker-compose commands
  • Scripts: Existing scripts still work, Poe provides unified interface

🎯 Next Steps

  1. Try it out: poe setup to get started
  2. Explore tasks: poe --help to see all options
  3. Customize: Add project-specific tasks to backend/pyproject.toml
  4. Share: Team members can use same unified interface

This unified task system makes development faster, more consistent, and easier for new team members to learn!