We welcome contributions to EventRelay! Please follow these guidelines to ensure a smooth process.
- Fork the repository and clone it locally.
- Set up your environment:
python -m venv .venv source .venv/bin/activate pip install -e .[dev,youtube,ml] npm install # installs all monorepo workspaces
- Start the services:
# Terminal 1 — backend (PYTHONPATH=src is required; see CLAUDE.md) PYTHONPATH=src uvicorn youtube_extension.main:app --reload --port 8000 # Terminal 2 — frontend turbo run dev
- Create a branch for your feature or fix:
git checkout -b feature/my-feature
EventRelay uses multi-agent workflows extensively. When working on multiple branches simultaneously (e.g., testing a new MCP server while fixing a pipeline bug), use git worktrees instead of repeated stash/switch cycles:
# Create a linked worktree for a second branch — no stashing needed
git worktree add ../EventRelay-mcp-dev feature/mcp-enhancement
# List active worktrees
git worktree list
# Remove when done (branch is preserved)
git worktree remove ../EventRelay-mcp-devGitHub Desktop 3.6+ has a built-in worktree switcher in the top toolbar. Copilot coding agents also spin up worktrees automatically for isolated parallel sessions — the same model applies to manual development.
- Real Implementation Only: We enforce a
REAL_MODE_ONLYpolicy. Do not commit simulated code (e.g.,asyncio.sleepfor fake delays, hardcoded responses). - Security First:
- Never commit secrets.
- Validate all inputs.
- Do not use
dangerouslySetInnerHTMLin React. - Use
subprocesscarefully with sanitized inputs.
- Testing:
- Run backend tests:
pytest tests/ - Run frontend tests:
turbo run test - Ensure all tests pass before submitting a PR.
- Run backend tests:
- Description: Clearly describe your changes and the problem they solve.
- Verification: Include steps to verify your changes.
- CI/CD: Ensure all CI checks pass (Security Scan, Tests).
Please be respectful and professional in all interactions.