Thank you for your interest in contributing to the Azure Local VM Conversion Toolkit. This project is in early development, and contributions are welcome — especially around testing across different Azure Local versions, OS configurations, and cluster topographies.
- Read the README thoroughly, including the warnings about destructive operations
- This toolkit modifies partition tables, VM configurations, and Azure resource registrations — test all changes in a non-production environment
- Check open issues and pull requests to avoid duplicate work
Use the bug report issue template. Include:
- Azure Local version (22H2, 23H2, etc.)
- Windows Server version running inside the guest VM
- Which script failed and at which step
- Full error message and relevant log output from the working directory
Use the feature request issue template. Describe the use case, not just the solution.
- Fork the repo and create a branch from
main - Name branches descriptively:
fix/mbr2gpt-validation,feat/linux-support, etc. - Keep changes focused — one logical change per PR
- Update the README and relevant
docs/pages if your change affects usage or prerequisites - Add an entry to CHANGELOG.md under
[Unreleased] - Test your changes against at least one real Azure Local environment before submitting
- Fill out the pull request template completely
- Use approved PowerShell verbs (
Get-,Set-,New-,Remove-, etc.) - Include
[CmdletBinding()]andparam()blocks on all scripts - Use
Write-Verbosefor diagnostic output,Write-Warningfor non-fatal issues,Write-Errorfor failures - Log to the working directory
Logs/subfolder, not just the console - Guard all destructive operations with a
-WhatIf/-Confirmpattern where practical
- There is currently no automated test suite — Pester-based tests are a welcome contribution
- At minimum, run
.\01-Setup-ConversionEnvironment.ps1against a real cluster to validate your changes don't break inventory/export - Test
.\02-Convert-MBRtoGPT.ps1 -ValidateOnlyinside a guest VM before testing the full conversion
This project follows the org-wide AzureLocal standards documented at azurelocal.cloud/standards. Key references:
- Repository Structure — Required files, directories, labels, branch naming
- Scripting Standards — PowerShell conventions
- Documentation Standards — Writing and formatting
- Variable Management — Config file patterns
- Fictional Company Policy — Use IIC, never Contoso
This repository can be used as a standalone project without the parent multi-root workspace.
- Open VS Code
- File > Open Workspace from File > select
azurelocal-vm-conversion-toolkit.code-workspace - All recommended extensions will be prompted for installation
- Python 3.x and pip (for MkDocs documentation)
- MkDocs Material:
pip install mkdocs-material
mkdocs serveBrowse to http://127.0.0.1:8000
mkdocs buildBe respectful and constructive. This is a small project focused on solving a real operational problem — keep discussions on-topic and collaborative.