Thank you for your interest in contributing to AzKube! Contributing makes projects so much better and more fun (remember?)! This document provides guidelines and information about contributing to this project.
This project follows our Code of Conduct. By participating, you are expected to uphold this code.
- Before creating an issue, please check existing issues to avoid duplicates
- Use the issue templates when available
- Provide as much detail as possible:
- Steps to reproduce
- Expected behavior
- Actual behavior
- PowerShell version
- Azure CLI version
- Operating system
- Fork the repository
- Create a new branch for your changes
- Make your changes
- Write or update tests for your changes
- Run tests locally using Pester
- Update documentation if needed
- Submit a pull request using our pull request template
- Follow the existing code style and conventions
- Include tests for new features
- Update documentation for any changed functionality
- Keep commits focused and atomic
- Use clear commit messages following conventional commits
- Reference any related issues using GitHub's keywords
- Clone the repository
- Install required PowerShell modules for running tests:
Install-Module -Name Pester -Force -SkipPublisherCheck
- Run
.\Local.ps1to set up local development environment (adds the src/AzKube folder to your PATH for the current PS session)- Add
-Package -Analyzeto test packaging locally before you submit a pull request - Add
-RunAfterBuildto runSet-AksClusterscommand right away.
- Add
- Run
.\Undo-Local.ps1to remove any versions of the module for clean slate testing/cleanup. Then runinstall-module -Name AzKubeto reinstall from PowerShell Gallery for normal use.
Run tests using Pester:
- You can run tests in Visual Studio Code using the Pester extension from Pester, and/or use the PowerShell extension from Microsoft for CodeLens runs inline with Tests file(s). If you use both, you should disable Legacy mode for Pester (see Pester and Visual Studio Code documentation on use in VSC).
- You can also run Pester from PowerShell:
$config = New-PesterConfiguration
$config.Run.Path = 'tests'
$config.TestResult.Enabled = $true
$config.CodeCoverage.Enabled = $true
Invoke-Pester -Configuration $config- Use standard PowerShell naming conventions
- Follow PowerShell Best Practices and Style Guide
- Document functions using comment-based help (volunteer to improve existing ones!😁)
- Keep lines under 100 characters where possible
- Use meaningful variable names
- Update README.md for user-facing changes
- Use comment-based help for all public functions
- Keep documentation current with code changes
- GitHub Issues: For bug reports and feature requests
- GitHub Discussions: For general questions and community discussions
Contributors will be automatically recognized in our release notes when PRs are used (so always, right? 😁).
If you have questions about contributing, feel free to:
- Open a GitHub Discussion
- Check existing documentation
- Review closed issues and pull requests
Thank you for contributing to 🧊AzKube!