Thank you for considering contributing to KDTech!
- Clean architecture - https://github.com/kdtech/kdtech-manifesto#clean-architecture
- Security first - https://github.com/kdtech/kdtech-manifesto#security-first
- Modular design - https://github.com/kdtech/kdtech-manifesto#modular-design
- Open source - https://github.com/kdtech/kdtech-manifesto#open-source
- Separation of concerns - https://github.com/kdtech/kdtech-manifesto#separation-of-concerns
- Test-driven development - https://github.com/kdtech/kdtech-manifesto#test-driven-development
- Production-ready code - https://github.com/kdtech/kdtech-manifesto#production-ready-code
- Fork repository
- Create feature branch
- Implement changes
- Submit pull request
We use PHPStan to check the quality of the code. You can run it locally by installing PHPStan and running phpstan analyse --level max src/
All code must follow project standards and be documented.
All libraries must include automated tests.
Recommended tools:
- PHPUnit
- xUnit / NUnit (C# libraries)
Tests should cover:
- Unit tests
- Integration tests
- Core logic
- Edge cases
- Error handling
- Input validation
- Output formatting
- Boundary conditions
- Security
- Performance
Run tests before submitting a Pull Request.
We follow modern engineering standards:
- PSR-12 - https://www.php-fig.org/psr/psr-12/
- .NET coding conventions for C# - https://docs.microsoft.com/en-us/dotnet/csharp/style-coding-guidelines/coding-standards
- .NET naming conventions for C# - https://docs.microsoft.com/en-us/dotnet/csharp/style-coding-guidelines/naming-standards
- Small and focused functions not more than 10 lines
- Clear separation of responsibilities
Before cubmitting a Pull Request:
- Run all tests
- Ensure code follows project conventions
- Update documentation if necessary
- Avoid breaking changes