First off, thank you for considering contributing to SharpIppNext! It's people like you who make the open-source community such an amazing place to learn, inspire, and create.
To contribute to this project, you will need:
- .NET SDK 10.0 or later.
- A C# IDE (e.g., Visual Studio 2026 or VS Code).
It is recommended to create a fork of the repository (fork button in GitHub) and clone your fork. Alternatively, you can clone the main repository directly:
git clone https://github.com/danielklecha/SharpIppNext.git
cd SharpIppNextYou can build the project using the .NET CLI:
dotnet build --configuration ReleaseWe use MSTest V2 for testing. To run all tests and collect coverage information, use:
dotnet test --configuration Release /p:CollectCoverage=true /p:CoverletOutput=TestResults/ /p:CoverletOutputFormat="opencover,lcov"Please ensure all tests pass before submitting a pull request.
When running tests with the coverage flags as shown above, coverage reports are generated in the TestResults/ directory.
- Local Review: You can use tools like ReportGenerator to convert the
opencoverorlcovreports into a human-readable HTML format for local review. - CI/CD Integration: Our CI pipeline automatically publishes coverage reports to Coveralls for every push and pull request.
- Follow standard C# naming conventions and best practices.
- Adhere to the rules defined in the .editorconfig file.
- Keep methods focused and classes loosely coupled.
- Create a Branch: Use a descriptive name for your branch (e.g.,
feature/add-cups-operationorbugfix/fix-serialization-error). - Commit Changes: Make atomic commits with clear, descriptive messages.
- Draft Pull Request: If your work is still in progress, open a Draft Pull Request to get early feedback.
- Final Pull Request: Ensure your branch is up-to-date with
masterand all CI checks pass. - Review: At least one maintainer will review your PR before merging.
When creating a maintenance branch for an older version (e.g., creating branch v3.x after v4 is already released):
- Modify Release Workflow: In the new maintenance branch, update the
.github/workflows/create-release.ymlfile so that new releases do not overwrite the "Latest" tag on GitHub:# Change this: # gh release create "$tag" --generate-notes # To this: gh release create "$tag" --generate-notes --latest=false
- Push Tags: When you push a new release tag from this branch (e.g.,
v3.1.2), the GitHub Action will build and publish it to NuGet, but it will not mark it as the latest release on GitHub.
If you find a bug or have a feature request, please search the existing issues before opening a new one.
By contributing to this project, you agree that your contributions will be licensed under the project's MIT License.