Thanks for contributing to VoidCode. The project is still pre-MVP, so clear communication, focused changes, and repeatable local verification matter more than speed.
The recommended local environment uses uv for Python and Bun for the frontend. Supported Python version: 3.13.
mise install
uv sync --extra dev
mise run frontend:install
uv run voidcode --helpOptional but recommended:
uv run pre-commit installSee docs/coding-standards.md for repository coding standards.
Current toolchain:
- Ruff for linting and formatting
- basedpyright for static type checking
- pytest for tests
- Bun as the package manager and task runner
- ESLint for linting
- TypeScript for type checking
- Vitest for tests
Run the standard checks with mise:
mise run lint
mise run format
mise run typecheck
mise run test
mise run build
mise run frontend:lint
mise run frontend:typecheck
mise run frontend:test
mise run check
mise run ci
mise run pre-commitWhen needed, you can also invoke the Python tooling directly:
uv run ruff check .
uv run ruff format .
uv run basedpyright --warnings src
uv run pytest
uv run pre-commit run --all-filesPlease add or update tests when behavior changes.
- Run the relevant local checks before opening a pull request.
- Keep linting and type checking clean.
- If you change CLI, runtime, graph, tool, or transport behavior, add test coverage where an existing test surface already exists.
- For frontend changes, run the relevant Bun-based checks as well.
- Public-facing documents in the repository root should be written in English.
- Internal design and planning documents under
docs/may remain in Chinese. - If behavior or workflow changes, update the affected user-facing documentation.
- Start from an up-to-date branch.
- Keep the change focused and explain the motivation in the PR description.
- Run the relevant lint, typecheck, test, and pre-commit checks locally before requesting review.
- Update documentation when behavior, workflow, or contributor expectations change.
- Address review feedback with follow-up commits.
Use Conventional Commits as described in docs/coding-standards.md.
Examples:
feat(runtime): persist sessions in sqlitefix(cli): handle unknown session idsdocs: refresh contribution guide
By participating in this project, you agree to follow CODE_OF_CONDUCT.md.
Do not open public issues for security-sensitive reports. Follow the reporting instructions in SECURITY.md.