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
## 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
5.2 KiB
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 runin correct environment - Frontend tasks automatically use
yarnin 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 setupconfigures everything for new developerspoe quality-gateruns 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 devreplaces manual docker-compose commands - Scripts: Existing scripts still work, Poe provides unified interface
🎯 Next Steps
- Try it out:
poe setupto get started - Explore tasks:
poe --helpto see all options - Customize: Add project-specific tasks to
backend/pyproject.toml - 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!