|
| 1 | +# Contributing |
| 2 | + |
| 3 | +Thank you for your interest in contributing to the Azure Local Load Tools project. Contributions are welcome — especially around testing with different workload profiles, Azure Local configurations, and performance benchmarking tools. |
| 4 | + |
| 5 | +## Before You Start |
| 6 | + |
| 7 | +- Read the [README](README.md) for an overview of the project |
| 8 | +- This project runs performance and load testing tools on Azure Local clusters — **test all changes in a non-production environment** |
| 9 | +- Check open issues and pull requests to avoid duplicate work |
| 10 | + |
| 11 | +## How to Contribute |
| 12 | + |
| 13 | +### Reporting Bugs |
| 14 | + |
| 15 | +Use the [bug report issue template](.github/ISSUE_TEMPLATE/bug_report.md). Include: |
| 16 | +- Azure Local version (22H2, 23H2, etc.) |
| 17 | +- Cluster and storage configuration |
| 18 | +- Which tool or script failed (VMFleet, fio, iPerf, HammerDB, stress-ng) |
| 19 | +- Full error message and relevant log output |
| 20 | + |
| 21 | +### Suggesting Features |
| 22 | + |
| 23 | +Use the [feature request issue template](.github/ISSUE_TEMPLATE/feature_request.md). Describe the use case, not just the solution. |
| 24 | + |
| 25 | +### Documentation Issues |
| 26 | + |
| 27 | +Use the [documentation issue template](.github/ISSUE_TEMPLATE/docs_issue.md) for missing, incorrect, or unclear docs. |
| 28 | + |
| 29 | +### Submitting Pull Requests |
| 30 | + |
| 31 | +1. Fork the repo and create a branch from `main` |
| 32 | +2. Name branches using conventional types: `feat/vmfleet-monitoring`, `fix/iperf-timeout`, `docs/workload-profiles` |
| 33 | +3. Keep changes focused — one logical change per PR |
| 34 | +4. Update the README and relevant `docs/` pages if your change affects usage or prerequisites |
| 35 | +5. Add an entry to [CHANGELOG.md](CHANGELOG.md) under `[Unreleased]` |
| 36 | +6. Test your changes against at least one real Azure Local environment before submitting |
| 37 | +7. Fill out the pull request template completely |
| 38 | + |
| 39 | +## Commit Messages |
| 40 | + |
| 41 | +This project uses [Conventional Commits](https://www.conventionalcommits.org/): |
| 42 | + |
| 43 | +``` |
| 44 | +<type>(<scope>): <description> |
| 45 | +``` |
| 46 | + |
| 47 | +| Type | When | |
| 48 | +|------|------| |
| 49 | +| `feat` | New feature | |
| 50 | +| `fix` | Bug fix | |
| 51 | +| `docs` | Documentation only | |
| 52 | +| `infra` | CI/CD, workflows, config | |
| 53 | +| `chore` | Maintenance | |
| 54 | +| `refactor` | Code improvement, no behavior change | |
| 55 | +| `test` | Tests | |
| 56 | + |
| 57 | +Examples: |
| 58 | +- `feat(vmfleet): add IOPS trending dashboard` |
| 59 | +- `fix(fio): correct block size parameter parsing` |
| 60 | +- `docs(getting-started): add cluster prerequisites` |
| 61 | + |
| 62 | +## Development Guidelines |
| 63 | + |
| 64 | +### PowerShell Style |
| 65 | + |
| 66 | +- Use approved PowerShell verbs (`Get-`, `Set-`, `New-`, `Remove-`, etc.) |
| 67 | +- Include `[CmdletBinding()]` and `param()` blocks on all scripts |
| 68 | +- Use `Write-Verbose` for diagnostic output, `Write-Warning` for non-fatal issues, `Write-Error` for failures |
| 69 | +- Guard destructive operations with `-WhatIf` / `-Confirm` where practical |
| 70 | + |
| 71 | +### Testing |
| 72 | + |
| 73 | +- Test against a real Azure Local environment before submitting |
| 74 | +- Include performance baselines or comparative results when relevant |
| 75 | +- Describe your test environment and results in the PR |
| 76 | + |
| 77 | +## Code of Conduct |
| 78 | + |
| 79 | +Be respectful and constructive. Keep discussions on-topic and collaborative. |
0 commit comments