Skip to content

Commit 7c6a70e

Browse files
Update README to enhance clarity on module features and usage
1 parent fc720af commit 7c6a70e

File tree

1 file changed

+49
-34
lines changed

1 file changed

+49
-34
lines changed

README.md

Lines changed: 49 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,40 @@
11
# PSScriptModule - PowerShell Script Module Template
22

3-
A production-ready PowerShell script module template designed to streamline the creation, testing, and delivery of enterprise-grade PowerShell modules. This template implements modern DevOps practices,
4-
automated quality gates, and continuous delivery workflows right out of the box.
3+
> A modern PowerShell module template with CI/CD, testing, semantic versioning, and automated publishing
4+
5+
A production-ready PowerShell module template with built-in CI/CD, testing, versioning, and publishing workflows using GitHub Actions.
56

67
[![CI](https://github.com/WarehouseFinds/PSScriptModule/actions/workflows/ci.yml/badge.svg)](https://github.com/WarehouseFinds/PSScriptModule/actions/workflows/ci.yml)
78
[![Code Coverage](https://img.shields.io/github/actions/workflow/status/WarehouseFinds/PSScriptModule/ci.yml?branch=main&label=code%20coverage)](https://github.com/WarehouseFinds/PSScriptModule/actions/workflows/ci.yml)
89
[![PowerShell Gallery](https://img.shields.io/powershellgallery/v/PSScriptModule.svg)](https://www.powershellgallery.com/packages/PSScriptModule)
910
[![Downloads](https://img.shields.io/powershellgallery/dt/PSScriptModule.svg)](https://www.powershellgallery.com/packages/PSScriptModule)
1011
[![License](https://img.shields.io/github/license/WarehouseFinds/PSScriptModule)](LICENSE)
1112

12-
## 🎯 Purpose
13+
## 💡 Why This Template?
14+
15+
Most PowerShell module repositories start the same way: a few scripts, some manual testing, and CI/CD added later—often inconsistently. This template flips that model.
16+
17+
**PSScriptModule is opinionated by design.**
18+
It gives you a complete, production-grade foundation so you can focus on writing PowerShell code—not wiring pipelines.
19+
20+
### What makes it different?
21+
22+
- **CI/CD from day one**
23+
Build, test, analyze, version, and publish automatically using GitHub Actions.
24+
25+
- **Best practices baked in**
26+
Module structure, testing, security scanning, and documentation follow proven PowerShell and DevOps conventions.
27+
28+
- **Automation over ceremony**
29+
Versioning, changelogs, releases, and publishing happen automatically based on your commits and pull requests.
1330

14-
This template solves the common challenge of setting up a professional PowerShell module project from scratch. Instead of manually configuring build scripts, testing frameworks, and CI/CD pipelines,
15-
you can clone this repository and start writing your module's business logic immediately.
31+
- **Works everywhere**
32+
Tested on Windows, Linux, and macOS, with optional devcontainer support for consistent environments.
1633

17-
**Perfect for:**
34+
- **Scales with your project**
35+
Suitable for prototypes, internal tooling, and fully open-source modules published to the PowerShell Gallery.
1836

19-
- Open-source PowerShell projects
20-
- Rapid prototyping of PowerShell modules
21-
- Learning PowerShell module development best practices
37+
If you’ve ever thought *“I just want to write PowerShell, not build pipelines”*, this template is for you.
2238

2339
## 🎬 How to Use This Template
2440

@@ -31,40 +47,39 @@ you can clone this repository and start writing your module's business logic imm
3147

3248
## 📦 Features
3349

34-
When you create a module from this template, you immediately get:
50+
When you create a module from this template, you get a fully wired, production-ready PowerShell module from day one.
3551

36-
**CI/CD Ready**
52+
### CI/CD Ready
3753

38-
- GitHub Actions workflows for CI, release, publishing and more
39-
- Dependency management and caching
40-
- Compatibility testing on Windows, Linux, and macOS
54+
- End-to-end GitHub Actions workflows for build, test, release, and publishing
55+
- Dependency management with intelligent caching for faster pipelines
56+
- Cross-platform validation on Windows, Linux, and macOS
4157
- Automated publishing to PowerShell Gallery and NuGet.org
4258

43-
**Development Environment**
59+
### Development Environment
4460

45-
- VS Code configuration (settings, recommended extensions)
46-
- Build tasks pre-configured
47-
- Run and debug configurations
48-
- Devcontainer support for preconfigured sandboxed environments
61+
- Opinionated VS Code setup (settings and recommended extensions)
62+
- Pre-configured build, run, and debug tasks
63+
- Devcontainer support for consistent, sandboxed development environments
4964

50-
**Version Management**
65+
### Version Management
5166

52-
- GitVersion for semantic versioning
53-
- GitHub Flow (v1) release workflow
54-
- Commit-based version bumps with `+semver:` keywords
55-
- Changelog generation based on merged PRs
67+
- Semantic versioning powered by GitVersion
68+
- GitHub Flow–based release strategy
69+
- Commit-driven version bumps using `+semver:` keywords
70+
- Automatic changelog generation from merged pull requests
5671

57-
**Code Quality and Testing**
72+
### Code Quality and Testing
5873

59-
- Pester test framework for unit tests
74+
- Pester-based unit testing framework
6075
- Code coverage reporting
61-
- Security scanning (PSScriptAnalyzer + InjectionHunter + CodeQL)
76+
- Built-in security scanning with PSScriptAnalyzer, InjectionHunter, and CodeQL
6277

63-
**Project Documentation**
78+
### Project Documentation
6479

65-
- Markdown-based help generation with PlatyPS
66-
- Auto-generated external help files for `Get-Help`
67-
- Comprehensive documentation guides in `/docs`
80+
- Markdown-based help generation using PlatyPS
81+
- Auto-generated external help for `Get-Help`
82+
- Structured, comprehensive documentation in the `/docs` directory
6883

6984
## 📂 Project Structure
7085

@@ -77,7 +92,7 @@ PSScriptModule/
7792
├── 📄 AGENTS.md // AI agent instructions
7893
├── 📁 src/ // Source code
7994
│ ├── 📄 PSScriptModule.psd1 // Module manifest
80-
| ├── 📁 Classes/ // Classes definitions
95+
├── 📁 Classes/ // Classes definitions
8196
│ ├── 📁 Public/ // Public functions (exported)
8297
│ └── 📁 Private/ // Private functions (internal only)
8398
├── 📁 tests/ // Test suites
@@ -130,7 +145,7 @@ Personalize it by updating the name, description, and visibility.
130145
Invoke-PSDepend -Path ./requirements.psd1 -Install -Import -Force
131146
```
132147

133-
1. Run Build and test tasks:
148+
1. Run build and test tasks:
134149

135150
```powershell
136151
# Run default build (Clean + Build)
@@ -150,7 +165,7 @@ After setup, customize your module:
150165
- Set `Author`, `CompanyName`, `Copyright`
151166
- Update `Description` and `Tags`
152167

153-
> **Note**: Do not change `ModuleVersion`, `RootModule` and `FunctionsToExport` - it is managed automatically
168+
> **Note**: Do not change `ModuleVersion`, `RootModule`, or `FunctionsToExport` - it is managed automatically
154169
155170
1. **Start Developing**:
156171
- Add functions to `src/Public/` (exported) or `src/Private/` (internal)

0 commit comments

Comments
 (0)