Contributing to psPAS

2 minute read

All contributions, whether comments, code or otherwise are welcomed and appreciated.

psPAS Issues

If you find an error in psPAS, or have a question relating to the module, log an issue.

Contributing Code

  • Fork the repo.
  • Push your changes to your fork.
  • Write good commit messages
  • If no related issue exists already, open a New Issue describing the feature, or the problem being fixed.
  • Update documentation for the command as required.
  • Submit a pull request to the Dev Branch
    • Keep pull requests limited to a single issue
    • Discussion, or necessary changes may be needed before merging the contribution.
    • Link the pull request to the related issue

PowerShell Styleguide

Use the standard Verb-Noun convention, and only use approved verbs.

All Functions must have a Markdown Help file, and the external help file for the module must be updated (see Command Help & External Help File).

K&R (One True Brace Style variant) preferred.

Updating Documentation

Project documentation, help files, examples and all content of the psPAS Site is able to be updated by editing the files on the project’s GitHub page.

The Docs site content is generated from these files

Command Help

Command Help Markdown files are used to generate the psPAS Documentation.

The files can be edited to correct any errors, or include any additional detail, examples or relevant information.

If changes have been made the the parameters of the related psPAS function, the platyPS module must be used to automatically update markdown files with changes to parameters and command syntax:

#From the module root directory, run:
import-module platyPS
Update-MarkdownHelp -Path .\docs\collections\_commands\

External Help File

Command Help Markdown files are the source of truth for the Get-Help content of the module.

Changes to these markdown files must be reflected in the Get-Help content.

platyPS must be used to automatically generate the external help file:

#From the module root directory, run:
import-module platyPS
New-ExternalHelp -Path .\docs\collections\_commands\ -OutputPath .\psPAS\en-US\psPAS-help.xml -Force

Pull Requests

When submitting a Pull Request to psPAS, automated tasks will run in Appveyor.

  • Appveyor will increment the version number (there is no need for you to do this manually)
  • The Pester tests for the module will run.
  • Code Coverage metrics for the module will be determined.
  • Once code is merged into the master branch, and all tests pass, the module is automatically published to the PowerShell Gallery and tagged as a Release on GitHub
    • No PR’s should be submitted to the master branch;
      • submitting to the Dev branch allows for required tests & documentation to be updated prior to any code release.