Github
PSGallery
Important
This is a rebuild of the PSStucco Module with some various tweaks and bugfixes for personal use. Feel free to use also. You can view the differences and details by looking at the commit changes and the issues from jimbrig/PSStucco.
Tip
PSLath is an opinionated Plaster template for building high-quality PowerShell modules. This template produces PowerShell projects according to a structure that I and many others in the PowerShell community use. Apart from the PowerShell module itself, this template creates project scaffolding that enables effective collaboration with the community.
- MIT, Apache, or Unlicense licensing options
- Changelog following Keep a Changelog guidelines with Semantic Versioning
- Optional Code of Conduct
- Optional Read The Docs support for online documentation using Mkdocs
- Optional PlatyPS support for markdown-based help documentation
- Project dependency resolution using PSDepend
- Reproducible generated projects with pinned build dependencies and a weekly rolling dependency canary
- psake tasks using PowerShellBuild for build / test automation
- AppVeyor, Azure Pipelines or GitLab CI/CD for CI/CD
- GitHub templates for contributing, issues, and pull requests
- VSCode tasks
Install from the PowerShell Gallery:
Install-PSResource PSLathor
Install-Module -Name PSLath$templateParameters = @{
ModuleName = 'MyModule'
Description = 'My PowerShell module'
Version = '0.1.0'
FullName = 'Your Name'
License = 'MIT'
CoC = 'No'
MkDocs = 'No'
Classes = 'Yes'
PlatyPS = 'Yes'
devcontainer = 'Yes'
CICD = 'GitHubActions'
}
New-LathModule `
-DestinationPath ./MyModule `
-TemplateParameters $templateParameters `
-Force `
-NoLogoThe generated module source lives at src/MyModule, keeping the project root
reserved for build, test, documentation, and CI configuration.
Projects generated with GitHub Actions include a weekly dependency canary. It temporarily tests the newest dependency versions on clean Windows runners under Windows PowerShell 5.1 and PowerShell 7, then opens a versioned pull request only when the validated pins change. When all pins are already current, the canary finishes successfully without running validation or opening a pull request. Enable Allow GitHub Actions to create and approve pull requests in the repository's Actions settings before running the canary promotion job.
The publishing workflow also finishes successfully without publishing when the
PSGALLERY_API_KEY secret is not configured.
The goal of this project is help create common patterns for PowerShell module development. Additional features or capabilities that benefit the community are welcome.
