Thank you for your interest in contributing. These guidelines apply to all repositories in the civic-source organization.
- Fork the repository
- Create a feature branch (
feat/descriptionorfix/description) - Make your changes
- Run tests:
pnpm test - Run linting:
pnpm lint - Run type check:
pnpm typecheck - Submit a pull request
- Language: TypeScript (strict mode, no
any) - Testing: Vitest — write tests alongside or before implementation
- Formatting: Prettier (auto-formatted on commit)
- Commits: Conventional commits (
feat:,fix:,chore:,docs:,test:)
- Correctness over cleverness. Code should be easy to understand and verify.
- Tests define behavior. If it's not tested, it doesn't work.
- Precise documentation. State what something does. Don't exaggerate.
This is an independent community project. It is not affiliated with, endorsed by, or associated with any government agency, employer, or official body. All contributions are made in a personal capacity.
By contributing, you agree that your contributions will be licensed under the project's existing license (Apache 2.0 for code repositories, CC0 1.0 for data repositories).
Use GitHub Issues in the relevant repository. Include:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Relevant logs or error messages