124 lines
2.7 KiB
Markdown
124 lines
2.7 KiB
Markdown
# 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 `src/` (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 .\src\engines\test\Invoke-TestEngine.ps1
|
||
```
|
||
|
||
Configuration: `src/engines/test/scriptSettings.json`
|
||
|
||
### Release package
|
||
|
||
Builds, tests, packs, and publishes to NuGet and GitHub release flows.
|
||
|
||
```powershell
|
||
pwsh -File .\src\engines\release\Invoke-ReleasePackage.ps1
|
||
```
|
||
|
||
Prerequisites:
|
||
|
||
- Docker Desktop (for Linux test validation)
|
||
- GitHub CLI (`gh`)
|
||
- environment variable `NUGET_MAKS_IT`
|
||
- environment variable `GITHUB_MAKS_IT_COM`
|
||
|
||
Configuration: `src/engines/release/scriptSettings.json`
|
||
|
||
### Update repo utilities
|
||
|
||
Refreshes `src/` from maksit-repoutils while preserving local `scriptSettings.json` files.
|
||
|
||
```powershell
|
||
pwsh -File .\src\tools\Update-RepoUtils\Update-RepoUtils.ps1
|
||
```
|
||
|
||
### Force amend tagged commit
|
||
|
||
Amends the latest tagged commit and force-pushes updated branch and tag.
|
||
|
||
```powershell
|
||
pwsh -File .\src\tools\Force-AmendTaggedCommit\Force-AmendTaggedCommit.ps1
|
||
pwsh -File .\src\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`.
|