| title | Development |
|---|
Documentation home | Development | Deployment | Compatibility | Validation
Use the shared Windows workstation guide for Git, GitHub CLI, editor setup, account checks, and the pinned validation modules. Use Windows PowerShell 5.1 for development validation and deployment.
Use the script's filename in prose, banners, and the ConfigMgr Script name
field. Set the package source to the extracted Scripts directory.
The repository keeps production code in Scripts, tests in Tests, development
helpers in build, and guides in docs. Use filenames as link labels and retain
the correct source paths in their targets.
VS Code recommends the PowerShell extension for this workspace. Its Validate with Windows PowerShell 5.1 and Check generated banners tasks use the explicit Windows PowerShell executable, independent of your default terminal.
From a terminal at the repository root, use the relative path:
.\build\Invoke-Validation.ps1For existing ConfigMgr packages rooted above Scripts, retain the source-relative
path in the script-name field. See deployment.
The two OSD repositories use byte-identical build\Update-Banners.ps1 generators.
Only assets\branding.json contains project-specific titles, descriptions, and
the bare script filename.
.\build\Update-Banners.ps1
.\build\Update-Banners.ps1 -CheckBoth wide banners are 1280 x 360; both compact banners are 640 x 360 at the same 720-pixel breakpoint. Fonts, coordinates, corner radius, owner line, and runtime/ license footer are shared. Keep release numbers in the README badges and validation status in the validation guide.
Keep intrinsic width, height, and viewBox in each SVG. In Markdown <picture>
markup, keep the width attributes but omit height from both <source> and
<img>: GitHub shrinks the width without automatically reducing a fixed HTML
height. Small standalone icons still specify both dimensions. Check actual rendered
image rectangles, not just the SVG metadata.
Keep generator changes synchronized between the two repositories. Update the
source JSON rather than hand-editing an SVG. Tests\Branding.Tests.ps1 rejects
stale generated bytes, layout drift, and directory prefixes in the filename label.
README image URLs use the release version as a cache key.
Run the full validator in Windows PowerShell 5.1. Keep the existing parser,
PSScriptAnalyzer, Pester, version/tag, and checksum gates. After any file changes,
normalize line endings and regenerate CHECKSUMS.txt last using the documented
release process. A banner-only change still changes source
hashes and must not silently replace an already published release ZIP.