Thank you for your interest in contributing to DRIT.Drawing! This document covers the basics of getting started.
DRIT.Drawing is developed internally in Azure DevOps. The public GitHub repository is a filtered mirror that is synced monthly. Contributions via pull requests on GitHub are welcome and will be reviewed for inclusion in the next monthly sync.
- Check the existing issues to avoid duplicates.
- Open a new issue with a clear title and description.
- Include a minimal reproduction (code snippet, input file, expected vs. actual behavior).
- If applicable, attach the smallest image file that reproduces the issue.
- Open an issue with the
enhancementlabel. - Describe the use case and the proposed API surface.
- Reference the relevant specification if applicable (e.g., SVG 1.1, MS-EMF, PNG spec).
- Fork the repository and create a feature branch from
main. - Keep changes focused — one feature or fix per PR.
- Follow the existing code style. The project uses StyleCop analyzers; warnings will fail the build.
- Add or update unit tests in
DRIT.Drawing.Tests/to cover your changes. - Ensure all tests pass:
dotnet test DRIT.Drawing.sln -c Release - Write a clear commit message following Conventional Commits:
feat: add support for WebP readfix: handle zero-length ICC profile in PNGdocs: clarify SvgImage conversion lifecycle
- C# with
LangVersionset tolatest. - XML documentation comments on all public types and members.
- No
varfor primitive types; prefer explicit types. - 4-space indentation, no tabs.
- Braces on new lines (Allman style).
| Directory | Purpose |
|---|---|
DRIT.Drawing/ |
Core library — graphics, image codecs, font engine, vector model, metafile. |
DRIT.Drawing.Tests/ |
Unit tests. |
DRIT.Drawing.IntegrationTests/ |
Integration tests. |
By contributing, you agree that your contributions will be licensed under the MIT License.