import { Callout } from "zudoku/ui/Callout";

# PowerShell module

The `businessdev.ALbuild` PowerShell module is the **engine** of ALbuild, organised into nine use-case modules. Both the [Azure DevOps extension](../devops-extension/index) and the [VS Code extension](../vscode-extension) are thin shells over it, so everything the toolchain can do is available here as plain PowerShell.

- **Version:** see [the PowerShell Gallery](https://www.powershellgallery.com/packages/businessdev.ALbuild)
- **Requires:** PowerShell 5.1 or 7+ (dual-target)
- **Packaging:** one Gallery package, one version, composed of use-case nested modules.

---

## Installation

```powershell
# install once: one package, all areas
Install-Module businessdev.ALbuild -Scope CurrentUser
Import-Module businessdev.ALbuild

# confirm
Get-Command -Module businessdev.ALbuild
```

<Callout type="info" title="No BcContainerHelper">
ALbuild does not require, install or call BcContainerHelper. The entire container stack is built into the module.
</Callout>

---

## Module reference

| Module | Tier | What it covers |
| --- | --- | --- |
| [Core](core) | Free | Config, logging, licensing, version math, project config, build order, version stamping, readable errors |
| [Containers](containers) | Free | Artifacts, Docker container lifecycle, users, test toolkit, config packages, Traefik, certificates |
| [Apps](apps) | Free (except AppSource validation) | Compile, publish/sync/install/unpublish, sign, test, coverage, app version, 365 apps, XLIFF |
| [Feeds](feeds) | Free | Dependency resolver, dependency reconciliation, feed providers, NuGet packaging, feed-view promotion |
| [RuntimePackages](runtime-packages) | Licensed | The runtime-package factory: plan by platform version, worker pool, checkpointing |
| [Marketplace](marketplace) | Licensed | AppSource / Partner Center ingestion |
| [OnPrem](onprem) | Licensed | On-prem publish/install/sync/upgrade, PTE, Dev |
| [Environments](environments) | Licensed | Demo/dev environment provisioning |
| [Pipeline](pipeline) | Free | Local pipeline runner |

Each module page is **generated from the cmdlets' own comment-based help**, so it always lists the
complete set as shipped.

Licensed cmdlets call `Assert-ALbuildLicensed` on entry. See [Licensing & tiers](../concepts/licensing).

---

## How the reference pages are organised

Each module page opens with a table of its cmdlets, then documents every cmdlet in full:

- **Synopsis & description**: what it does and the important behaviour.
- **Syntax**: the parameter signature.
- **Parameters**: a table with type, whether it is required, allowed values, defaults and a description.
- **Output**: what the cmdlet returns.
- **Examples**: worked invocations.

---

## Common workflows

- **Build & test an app** → [`Find-BcArtifactUrl`](containers#find-bcartifacturl) → [`New-BcContainer`](containers#new-bccontainer) → [`Resolve-BcDependencies`](feeds#resolve-bcdependencies) → [`Invoke-BcCompiler`](apps#invoke-bccompiler) → [`Publish-BcContainerApp`](apps#publish-bccontainerapp) → [`Invoke-BcContainerTest`](apps#invoke-bccontainertest) → [`Remove-BcContainer`](containers#remove-bccontainer).
- **Sign & package** → [`Invoke-BcAppSigning`](apps#invoke-bcappsigning) → [`New-BcNuGetPackage`](feeds#new-bcnugetpackage) → [`Publish-BcPackage`](feeds#publish-bcpackage).
- **Deploy (licensed)** → [`Publish-BcPerTenantExtension`](onprem#publish-bcpertenantextension) / [`Publish-BcOnPremApp`](onprem#publish-bconpremapp) / [`Submit-BcMarketplaceApp`](marketplace#submit-bcmarketplaceapp).
- **Measure coverage & test quality** → [`Convert-BcCodeCoverage`](apps#convert-bccodecoverage) → [`Test-BcCodeCoverageThreshold`](apps#test-bccodecoveragethreshold) / [`Get-BcCodeCoverageDelta`](apps#get-bccodecoveragedelta) / [`Get-BcTestQuality`](apps#get-bctestquality). See [Code coverage](../concepts/code-coverage).
- **Build runtime packages (licensed)** → [`Get-BcRuntimeWorkSet`](runtime-packages#get-bcruntimeworkset) → [`Invoke-BcRuntimeFactory`](runtime-packages#invoke-bcruntimefactory). See [Runtime packages](../concepts/runtime-packages).
- **Reproduce a pipeline locally** → [`Invoke-ALbuildPipeline`](pipeline).
