You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Update PlatyPS dependency from platyPS v0.14.x to Microsoft.PowerShell.PlatyPS v1.x #105
The platyPS module (v0.14.2) used by PowerShellBuild is no longer supported. Microsoft has released a complete rewrite named Microsoft.PowerShell.PlatyPS v1.x, which is now the supported version. This issue tracks migrating all three platyPS-dependent public functions and updating the module dependency.
Where this issue's plan held, and where it did not
The cmdlet mapping above is right and was what made the migration tractable. Three things in
the plan turned out differently, and they are worth recording for anyone reading this later.
New-ExternalHelpCab does not map to Export-MamlCommandHelp. The table says "cab via
pipeline"; the actual successor is New-HelpCabinetFile, with a clean one-for-one parameter
mapping — CabinetFilesFolder / MarkdownModuleFile / OutputFolder against CabFilesFolder / LandingPagePath / OutputFolder.
"Existing markdown docs under docs/ — must be migrated to the new schema" was a no-op here.
This repository commits no command markdown; docs/ holds only the migration guide, and the
per-command documents are generated at build time. #154 was re-scoped to the consumer-facing
version of that problem, which is real — and the answer turned out to be that the conversion is
automatic, because Build-PSBuildMarkdown runs Update-MarkdownCommandHelp over every existing
document on each build. Consumers review a diff rather than run a one-shot.
requirements.psd1 was updated, but PlatyPS is deliberately not in RequiredModules. Putting
it there failed 394 tests locally — the suite went 461 to 67. The two PlatyPS modules each ship
their own YamlDotNet with a different assembly identity, so a RequiredModules entry forces the
load into every session importing PowerShellBuild, including one already holding platyPS 0.14.2 —
which is every consumer part-way through the upgrade. It is now an optional dependency, matching
how the docs tasks have always behaved. alt3/Docusaurus.Powershell does declare it, and that is
what broke maester365/maester#1955.
What the migration cost that nobody could have planned for
1.x nests output under <ModuleName> with no opt-out
(PowerShell/platyPS#835) and renames MAML to -Help.xml. Both are flattened back so existing docs trees, site configuration, and .ExternalHelp directives keep working — the file name is pinned through front matter rather
than renamed after export, which is the control point upstream actually uses.
Two upstream defects were found and reported: platyPS#862 (a module landing page in an
export batch aborts the whole export and writes nothing) and platyPS#863
(Update-MarkdownCommandHelp fails on rerun when its own .bak exists).
Consumer-facing outcome
Nine entries in docs/migration-v0.8-to-v1.0.md,
five of them from this chain: the module swap and its optional-dependency change, the removal of $PSBPreference.Docs.AlphabeticParamsOrder, the 1.x schema, the new module landing page, updatable
help now working and requiring a HelpInfoUri, and the automatic conversion of a committed docs/
tree.
Phase 2 of #120 is complete, and #157 (1.0.0-preview1) has no open blockers.
Activity
fix: Address the review findings on the cabinet migration
tablackburn commentedon Aug 26, 2026
Done. All six sub-issues are closed and
mainis green at495b57e.Build-PSBuildMarkdownandBuild-PSBuildMAMLHelpBuild-PSBuildUpdatableHelp, closing #101 and #169Six mapped pull requests became three.
Where this issue's plan held, and where it did not
The cmdlet mapping above is right and was what made the migration tractable. Three things in
the plan turned out differently, and they are worth recording for anyone reading this later.
New-ExternalHelpCabdoes not map toExport-MamlCommandHelp. The table says "cab viapipeline"; the actual successor is
New-HelpCabinetFile, with a clean one-for-one parametermapping —
CabinetFilesFolder/MarkdownModuleFile/OutputFolderagainstCabFilesFolder/LandingPagePath/OutputFolder."Existing markdown docs under
docs/— must be migrated to the new schema" was a no-op here.This repository commits no command markdown;
docs/holds only the migration guide, and theper-command documents are generated at build time. #154 was re-scoped to the consumer-facing
version of that problem, which is real — and the answer turned out to be that the conversion is
automatic, because
Build-PSBuildMarkdownrunsUpdate-MarkdownCommandHelpover every existingdocument on each build. Consumers review a diff rather than run a one-shot.
requirements.psd1was updated, but PlatyPS is deliberately not inRequiredModules. Puttingit there failed 394 tests locally — the suite went 461 to 67. The two PlatyPS modules each ship
their own
YamlDotNetwith a different assembly identity, so aRequiredModulesentry forces theload into every session importing PowerShellBuild, including one already holding
platyPS0.14.2 —which is every consumer part-way through the upgrade. It is now an optional dependency, matching
how the docs tasks have always behaved.
alt3/Docusaurus.Powershelldoes declare it, and that iswhat broke maester365/maester#1955.
What the migration cost that nobody could have planned for
of the session. That is why
Build-PSBuildUpdatableHelphad to be stubbed in feat!: Migrate markdown and MAML help to Microsoft.PowerShell.PlatyPS 1.x #173 rather thanleft alone until PlatyPS 2d: migrate Build-PSBuildUpdatableHelp to the 1.x cab pipeline #152.
<ModuleName>with no opt-out(PowerShell/platyPS#835) and renames MAML to
-Help.xml. Both are flattened back so existing docs trees, site configuration, and.ExternalHelpdirectives keep working — the file name is pinned through front matter ratherthan renamed after export, which is the control point upstream actually uses.
Build-PSBuildUpdatableHelphad never worked at all — three independent defects, recorded inBuild-PSBuildUpdatableHelp cannot succeed: missing landing page, undefined $moduleOutDir, unbound Module #169. So PlatyPS 2d: migrate Build-PSBuildUpdatableHelp to the 1.x cab pipeline #152 was a port plus three fixes plus the task wiring, not a port.
platyPS#862 (a module landing page in an
export batch aborts the whole export and writes nothing) and
platyPS#863
(
Update-MarkdownCommandHelpfails on rerun when its own.bakexists).Consumer-facing outcome
Nine entries in
docs/migration-v0.8-to-v1.0.md,five of them from this chain: the module swap and its optional-dependency change, the removal of
$PSBPreference.Docs.AlphabeticParamsOrder, the 1.x schema, the new module landing page, updatablehelp now working and requiring a
HelpInfoUri, and the automatic conversion of a committeddocs/tree.
Phase 2 of #120 is complete, and #157 (
1.0.0-preview1) has no open blockers.