Thank you for your interest in contributing! Your help is greatly appreciated.
This document outlines the process for contributing to the project.
This project uses PowerShell for scripting. Follow these PowerShell-specific guidelines:
- Follow PowerShell best practices and the PowerShell Style Guidelines.
- Use approved verbs for functions (see
Get-Verb) and choose clear, descriptive function names. - Prefer advanced functions with
CmdletBinding()so common parameters and-Verbose/-Debugare available. - Use strong typing and parameter validation attributes (
[Parameter()],ValidateSet,ValidateNotNullOrEmpty, etc.). - Support pipeline input for functions where appropriate and implement
Begin/Process/Endblocks when processing pipeline input. - Provide comment-based help for all public functions and scripts (examples, parameters, outputs).
- Avoid aliases and use full cmdlet names in committed code (aliases are fine interactively).
- Use
ShouldProcess/-WhatIffor destructive operations and honor-Confirmwhen appropriate. - Use
Try/Catchfor error handling and throw orWrite-Erroras appropriate; prefer terminating errors when callers must act on failures. - Use
Write-Verbose,Write-Debug,Write-Warning, andWrite-Errorfor structured output and logging; do not write unstructured progress to stdout. - Keep formatting consistent (4-space indentation is recommended), avoid global variables, and keep functions focused and small.
- Use
PSScriptAnalyzerto lint scripts and address reported issues. Include a baseline or configuration if needed. - Organize modules with a
.psm1and.psd1manifest; explicitly export public functions withExport-ModuleMember. - Write unit tests with
Pesterand place tests under atests/folder. Run tests locally and in CI. - Avoid hard-coded credentials/secrets; use secure methods (secure strings, environment variables, or secret stores).
- Use semantic versioning for modules and include a changelog for releases.
- Open an issue on GitHub Issues.
- Use a clear and descriptive title.
- Include steps to reproduce, expected and actual behavior, and environment details.
- Open an issue and label it as an enhancement.
- Clearly describe the feature, why it would be useful, and any ideas for implementation.
- Fork the repository and clone it locally.
- Create a new branch for your feature or fix
git checkout -b feature/YourFeatureName
- Make your changes with clear, concise commits.
- Write or update tests as needed.
- Ensure all tests pass before submitting.
- Push to your fork and submit a pull request to the
mainbranch. - Describe your changes in the pull request and reference any related issues.
- Follow the existing code style and conventions.
- Use meaningful names and XML documentation where appropriate.
- Keep methods and classes focused and concise.
- Use clear, descriptive commit messages.
- Reference issues or pull requests when relevant.
Please be respectful and considerate in all interactions.
See CODE_OF_CONDUCT.md.
Open an issue or contact the maintainer via LinkedIn.
Thank you for helping make TirsvadWeb.JwtAuth better!