Contributing to Marvox
Thanks for contributing to Marvox. This guide reflects the current workflow for beta-integration-clean.
Development Setup
- Clone the repository.
- Install dependencies:
bashpip install -r requirements.txt npm install
- Configure environment variables:
bashcp .env.example .env
# Set OPENAI_API_KEY and JWT_SECRET_KEY at minimum
Branch Strategy
- Base all work on
origin/beta-integration-clean. - PRs only. Do not push directly to the base branch.
- Keep PRs small and focused.
If your working tree has unrelated changes, create a wip/dirty-snapshot branch and rebase from a clean base before opening PRs.
Making Changes
- Create a feature branch:
bashgit checkout -b feat/short-description
- Make changes and add tests if needed.
- Run relevant tests.
Testing
Backend:
bashpytest tests/
Frontend:
bashnpm run type-check
E2E (Playwright):
bashnpx playwright test
Documentation Updates
If you change API behavior, regenerate OpenAPI and the API reference:
bashPYTHONPATH=. ./.venv/bin/python scripts/export_openapi.py --output docs/openapi.json PYTHONPATH=. ./.venv/bin/python scripts/generate_api_reference.py --input docs/openapi.json --output docs/API.md
Commit Message Convention
Use conventional commits:
feat:new featuresfix:bug fixesdocs:documentation changesrefactor:code refactoringtest:adding or updating testschore:maintenance tasks
Pull Request Guidelines
- Provide a clear summary and test coverage.
- Note any breaking changes.
- Include documentation updates for public API changes.