Development Overview
This page documents the current development workflow for HaloAPI.
Quick Start
pwsh -File .\Bootstrap.ps1
pwsh -File .\DevOps\Quality\run-pssa.ps1
pwsh -File .\DevOps\Quality\test.ps1 -Suite Meta
Repo Layout
Public/contains exported cmdlets.Private/contains internal helpers.Classes/contains helper classes, validators, completers, and argument transformations.Tests/contains Pester suites.DevOps/Quality/contains static-analysis and test entrypoints.Docs/HaloAPI/development/contains repo-authored development documentation.docs/HaloAPI/is the canonical generated and curated publishable docs layout.
Development Process
HaloAPI uses GitHub Actions for CI and release automation. Keep workflow changes explicit and small.
Normal contribution flow should target develop. Treat main as the stable release branch.
For normal local validation, prefer the dedicated repo scripts:
pwsh -File .\Bootstrap.ps1
pwsh -File .\DevOps\Quality\run-pssa.ps1
pwsh -File .\DevOps\Quality\test.ps1 -Suite Meta
For interactive VS Code runs, prefer the Test HaloAPI task or:
pwsh -File .\DevOps\Quality\test.ps1 -IncludeVSCodeMarker
Do not invoke Invoke-Pester directly as the normal validation path in the VS Code host, terminal, or automation. Use DevOps\Quality\test.ps1 as the supported test entrypoint.
Quality Gates
- Run
Bootstrap.ps1after changing local dependencies. - Run
run-pssa.ps1to validate PowerShell style and custom repo rules. - Run
test.ps1 -Suite Metafor the safe baseline test suite. - Only run
Coretests when the required Halo testing environment variables are available.
Release and Workflow Notes
- Keep GitHub Actions changes focused and explicit.
- Preserve PowerShell Gallery publishing behavior when changing release automation.
- Stable tags must be reachable from
main; prerelease tags may be cut fromdevelop. - Development docs are synced from
Docs/HaloAPI/developmenttohomotechsualdocs/docs/haloapi/developmentafter successfuldeveloppushes.