Thanks for taking the time to contribute! This project aims to provide a small, robust, and easy-to-use resilient HTTP client for .NET.
- Keep the library focused and minimal. Avoid scope creep.
- Preserve backward compatibility unless a breaking change is justified and discussed.
- Prefer clarity and readability over cleverness.
- Follow the existing code style and formatting.
- Fork the repository and create a feature branch.
- Install dependencies and build:
dotnet build
- Run tests (add a test project if contributing tests):
dotnet test
- Target .NET 8.
- Use explicit types for public APIs; avoid
dynamic/object. - Keep classes small and cohesive; prefer composition.
- Guard clauses for input validation; fail fast with clear exceptions.
- Add XML doc comments for public types and members.
- Write meaningful commit messages (imperative mood): "Add X", "Fix Y".
- Keep PRs small and focused; one logical change per PR.
- Include tests for bug fixes and new features when applicable.
- Update README or XML docs if API behavior changes.
- Link related issues and describe the rationale.
- Builds locally (
dotnet build) - Tests pass or are updated (
dotnet test) - Public API documented (XML docs) where applicable
- No unnecessary breaking changes
- Changelog/README/docs updated if needed
Be respectful and constructive. Harassment or discrimination is not tolerated.
By contributing, you agree that your contributions will be licensed under the MIT License.