Thank you for your interest in contributing to Oathkeeper!
- Fork the repository
- Clone your fork
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes
- Test thoroughly
- Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
- Engine (C++): Visual Studio 2026 with C++ Desktop workload, Windows SDK
- UI (C#): .NET 9.0 SDK
- Installer: Inno Setup 6
build.bat # Build everything
build.bat engine # Build C++ engine only
build.bat ui # Build C# UI only
build.bat installer # Build installer onlyOr use PowerShell:
.\cook.ps1 # Build everything
.\cook.ps1 verify # Build + run self-checks- Use C++20 features where appropriate
- Use Unicode (UNICODE defined)
- Follow existing naming conventions (PascalCase for functions, camelCase for locals)
- Follow standard .NET conventions
- Use WPF MVVM pattern where possible
- Keep code-behind minimal
See TESTING.md for testing guidelines.
Use the GitHub issue tracker. Include:
- Windows version
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
By contributing, you agree that your contributions will be licensed under the GPL v3 License.