3.8 KiB
3.8 KiB
Contributing to MaksIT.Results
Thank you for your interest in contributing to MaksIT.Results! This document provides guidelines for contributing to the project.
Getting Started
- Fork the repository
- Clone your fork locally
- Create a new branch for your changes
- Make your changes
- Submit a pull request
Development Setup
Prerequisites
- .NET 10 SDK or later
- Git
Building the Project
cd src
dotnet build MaksIT.Results.slnx
Running Tests
cd src
dotnet test MaksIT.Results.Tests
Commit Message Format
This project uses the following commit message format:
(type): description
Commit Types
| Type | Description |
|---|---|
(feature): |
New feature or enhancement |
(bugfix): |
Bug fix |
(refactor): |
Code refactoring without functional changes |
(perf): |
Performance improvement without changing behavior |
(test): |
Add or update tests |
(docs): |
Documentation-only changes |
(build): |
Build system, dependencies, packaging, or project file changes |
(ci): |
CI/CD pipeline or automation changes |
(style): |
Formatting or non-functional code style changes |
(revert): |
Revert a previous commit |
(chore): |
General maintenance tasks that do not fit the types above |
Examples
(feature): add support for custom json options in object result
(bugfix): fix objectresult using app json options when request services null
(refactor): simplify result to action result conversion
(perf): reduce allocations in problem details serialization
(test): add coverage for addjsonoptions whenwritingnull
(docs): clarify json options in readme
(build): update package metadata in MaksIT.Results.csproj
(ci): update GitHub Actions workflow for .NET 10
(style): normalize using directives in mvc tests
(revert): revert breaking change in toactionresult behavior
(chore): update copyright year to 2026
Guidelines
- Use lowercase for the description
- Keep the description concise but descriptive
- No period at the end of the description
Code Style
- Follow standard C# naming conventions
- Use XML documentation comments for public APIs
- Keep methods focused and single-purpose
- Write unit tests for new functionality
Pull Request Process
- Ensure all tests pass
- Update documentation if needed
- Update CHANGELOG.md with your changes under the appropriate version section
- Submit your pull request against the
mainbranch
Versioning
This project follows Semantic Versioning:
- MAJOR - Breaking changes
- MINOR - New features (backward compatible)
- PATCH - Bug fixes (backward compatible)
Release Process
Orchestration lives in utils/ (from maksit-repoutils).
Prerequisites
- .NET SDK, PowerShell 7+, Git, GitHub CLI (
gh) - Environment variables (names match logical secrets in
scriptSettings.json):GitHub— GitHub token (reposcope)NuGet— NuGet.org API key
| Entry | Purpose |
|---|---|
utils\Invoke-TestEngine.bat |
Tests and coverage badges |
utils\Invoke-ReleasePackage-Single.bat |
Release (build, test, pack, publish) |
utils\Update-RepoUtils.bat |
Sync engines from maksit-repoutils |
utils\Force-AmendTaggedCommit.bat |
Amend last tagged commit |
Workflow
- Bump
<Version>insrc/MaksIT.Results/MaksIT.Results.csprojand CHANGELOG.md - Commit, tag
vX.Y.Zonmain - Set
$env:GitHub,$env:NuGet, runutils\Invoke-ReleasePackage-Single.bat
Dry-run: pwsh -File utils\engines\release\Invoke-ReleasePackage.ps1 -DryRun
Configuration: utils/engines/release/scriptSettings.json, utils/engines/test/scriptSettings.json
License
By contributing, you agree that your contributions are licensed under the terms in LICENSE.md.