maksit-dapr/CONTRIBUTING.md
2026-06-28 11:37:38 +02:00

130 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Contributing to MaksIT.Dapr
Thank you for your interest in contributing to `MaksIT.Dapr`.
## Getting Started
1. Fork the repository.
2. Clone your fork locally.
3. Create a feature branch.
4. Implement and test your changes.
5. Submit a pull request to `main`.
## Development Setup
### Prerequisites
- .NET 8 SDK or later
- Git
- PowerShell 7+ (recommended for utility scripts)
### Build
```bash
cd src
dotnet build MaksIT.Dapr.slnx
```
### Test
```bash
cd src
dotnet test MaksIT.Dapr.Tests
```
## Commit Message Format
Use:
```text
(type): description
```
### Commit Types
| Type | Description |
|------|-------------|
| `(feature):` | New feature or enhancement |
| `(bugfix):` | Bug fix |
| `(refactor):` | Refactoring without behavior change |
| `(chore):` | Maintenance tasks (dependencies, tooling, docs) |
### Guidelines
- Use lowercase in the description.
- Keep it concise and specific.
- Do not end with a period.
## Pull Request Checklist
1. Ensure build and tests pass.
2. Update `README.md` if behavior or usage changed.
3. Update `CHANGELOG.md` under the target version.
4. Keep changes scoped and explain rationale in the PR description.
## Versioning
This project follows [Semantic Versioning](https://semver.org/):
- **MAJOR**: breaking API changes
- **MINOR**: backward-compatible features
- **PATCH**: backward-compatible fixes
## Utility Scripts
Automation lives under `utils/` (synced from [maksit-repoutils](https://github.com/MAKS-IT-COM/maksit-repoutils) via `Update-RepoUtils`). Product-specific settings are in each engines `scriptSettings.json`.
### Run tests and coverage badges
```powershell
pwsh -File .\utils\engines\test\Invoke-TestEngine.ps1
```
Or double-click `utils\Invoke-TestEngine.bat`.
Configuration: `utils/engines/test/scriptSettings.json`
### Release package
Builds, tests, packs, and publishes to NuGet and GitHub release flows.
```powershell
pwsh -File .\utils\engines\release\Invoke-ReleasePackage.ps1
```
Or double-click `utils\Invoke-ReleasePackage.bat`.
Prerequisites:
- Docker Desktop (for Linux test validation)
- GitHub CLI (`gh`)
- environment variable `NUGET_MAKS_IT`
- environment variable `GITHUB_MAKS_IT_COM`
Configuration: `utils/engines/release/scriptSettings.json`
### Update repo utilities
Refreshes `utils/` from maksit-repoutils while preserving local `scriptSettings.json` files.
```powershell
pwsh -File .\utils\tools\Update-RepoUtils\Update-RepoUtils.ps1
```
Or double-click `utils\Update-RepoUtils.bat`.
### Force amend tagged commit
Amends the latest tagged commit and force-pushes updated branch and tag.
```powershell
pwsh -File .\utils\tools\Force-AmendTaggedCommit\Force-AmendTaggedCommit.ps1
pwsh -File .\utils\tools\Force-AmendTaggedCommit\Force-AmendTaggedCommit.ps1 -DryRun
```
Warning: this rewrites git history.
## License
By contributing, you agree that your contributions are licensed under the terms in `LICENSE.md`.