Thank you for your interest in contributing to Ory Talos!
- Go 1.23 or later
- Make
- Git
- Node.js 18+ (for documentation testing)
# Clone the repository
git clone https://github.com/ory/talos.git
cd talos
# Install dependencies
make deps
# Build the binary
make build
# Run tests
make test
# Run full verification
make verify- Fork the repository
- Create a feature branch -
git checkout -b feat/my-feature - Make your changes
- Add tests - All new code must have tests
- Run verification -
make verifymust pass - Commit with clear messages - Follow conventional commits
- Push and create PR - Target the
first-implementationbranch
Please follow the guidelines in CLAUDE.md:
- ✅ No global state; inject all dependencies
- ✅ Always pass
context.Contextfrom caller - ✅ Use structured JSON logging (slog)
- ✅ Never use
COUNT(*),SELECT *, orOFFSET - ✅ Commercial code under
/commercial/with build tags
- Coverage - Target ≥85% (goal 90%)
- Table-driven tests - Use
t.Run()for subtests - Parallel execution - Use
t.Parallel()where safe - Happy + unhappy paths - Test error cases
- Documentation tests - Ensure examples work
- API docs - Auto-generated from protobuf
- Tutorials - Must have executable examples
- Guides - Clear, actionable content
Run documentation tests:
make docs-test- Update documentation if needed
- Add/update tests for your changes
- Ensure
make verifypasses - Request review from maintainers
- Address review feedback
- Squash commits if requested
- Be respectful and constructive
- Focus on the code, not the person
- Help others learn and grow
- Assume good intentions
- Open an issue for bugs or feature requests
- Join discussions for questions
- Check existing issues before creating new ones
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.