# 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 engine’s `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`.