en-US/KeepAChangelog-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" schema="maml" xmlns="http://msh">
  <command:command>
    <command:details>
      <command:name>Convert-ChangelogReleaseNotesToTagMessage</command:name>
      <maml:description>
        <maml:para>Converts markdown release notes to plain text.</maml:para>
      </maml:description>
      <command:verb>Convert</command:verb>
      <command:noun>ChangelogReleaseNotesToTagMessage</command:noun>
    </command:details>
    <maml:description>
      <maml:para>`Convert-ChangelogReleaseNotesToTagMessage` simplifies markdown release notes for tag messages.</maml:para>
      <maml:para>The command:</maml:para>
      <maml:para>- turns `###` headings into plain section names - turns markdown bullets into plain lines - collapses repeated blank lines - trims the final result</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>PS&gt;</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para />
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- EXAMPLE 1 ---------</maml:title>
        <maml:introduction>
          <maml:para>```text
PS&gt; Convert-ChangelogReleaseNotesToTagMessage -ReleaseNotes "### Fixed`n`n- Fixed CLI parsing."
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Returns:</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>```text
Fixed</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Fixed CLI parsing.
```</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version</maml:linkText>
        <command:uri />
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command>
    <command:details>
      <command:name>Initialize-KeepAChangelogFile</command:name>
      <maml:description>
        <maml:para>Initializes a Keep a Changelog template.</maml:para>
      </maml:description>
      <command:verb>Initialize</command:verb>
      <command:noun>KeepAChangelogFile</command:noun>
    </command:details>
    <maml:description>
      <maml:para>`Initialize-KeepAChangelogFile` writes a markdown changelog template with:</maml:para>
      <maml:para>- the standard introduction text - a `## [Unreleased]` section - default subsection headings - a footer `[Unreleased]` compare link when `-PreviousReleaseReference` is provided</maml:para>
      <maml:para>Use `-Force` when you want to overwrite an existing file.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>PS&gt;</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para />
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- EXAMPLE 1 ---------</maml:title>
        <maml:introduction>
          <maml:para>```text
PS&gt; Initialize-KeepAChangelogFile -Path ./CHANGELOG.md -RepositoryUrl https://github.com/couragedk/KeepAChangelog -PreviousReleaseReference develop
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Creates `CHANGELOG.md` with an `[Unreleased]` compare link that starts from `develop`.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 2 ---------</maml:title>
        <maml:introduction>
          <maml:para>```text
PS&gt; Initialize-KeepAChangelogFile -Path ./CHANGELOG.md -RepositoryUrl https://github.com/couragedk/KeepAChangelog
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Creates a brand-new changelog without footer links so the first release can add them later.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version</maml:linkText>
        <command:uri />
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command>
    <command:details>
      <command:name>Move-UnreleasedChangelog</command:name>
      <maml:description>
        <maml:para>Moves `Unreleased` notes into a versioned release section.</maml:para>
      </maml:description>
      <command:verb>Move</command:verb>
      <command:noun>UnreleasedChangelog</command:noun>
    </command:details>
    <maml:description>
      <maml:para>`Move-UnreleasedChangelog` treats `## [Unreleased]` as the source section for the next release.</maml:para>
      <maml:para>The command:</maml:para>
      <maml:para>1. reads the current unreleased content 2. removes empty `###` subsections from the new release notes 3. inserts `## [&lt;version&gt;] - &lt;date&gt;` below `## [Unreleased]` 4. clears `Unreleased` while keeping subsection headings 5. updates the `[Unreleased]` compare link to `&lt;tag&gt;...HEAD` 6. adds or updates the `[&lt;version&gt;]` release link from the previous release reference to the new tag</maml:para>
      <maml:para>`-Version` is required. `-Date` is optional. When `-Date` is omitted, the current date is used. When `-Date` is provided, it must use `yyyy-MM-dd` format.</maml:para>
      <maml:para>If the changelog has no footer yet because it started as a brand-new project, pass `-RepositoryUrl` on the first release so the footer links can be created.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>PS&gt;</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para />
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- EXAMPLE 1 ---------</maml:title>
        <maml:introduction>
          <maml:para>```text
PS&gt; Move-UnreleasedChangelog -Path ./CHANGELOG.md -Version 1.6.0 -Date 2026-04-30
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Promotes the current unreleased notes into release `1.6.0`.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 2 ---------</maml:title>
        <maml:introduction>
          <maml:para>```text
PS&gt; Move-UnreleasedChangelog -Path ./CHANGELOG.md -Version 1.0.0 -RepositoryUrl https://github.com/couragedk/KeepAChangelog
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Creates the first release and adds the initial footer links for a changelog that did not have a previous release reference.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version</maml:linkText>
        <command:uri />
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command>
    <command:details>
      <command:name>Test-KeepAChangelogFile</command:name>
      <maml:description>
        <maml:para>Validates a Keep a Changelog file.</maml:para>
      </maml:description>
      <command:verb>Test</command:verb>
      <command:noun>KeepAChangelogFile</command:noun>
    </command:details>
    <maml:description>
      <maml:para>`Test-KeepAChangelogFile` reads a changelog and validates:</maml:para>
      <maml:para>- the presence of `## [Unreleased]` - the `[Unreleased]` compare link when release links exist - versioned release headings in `## [&lt;version&gt;] - &lt;date&gt;` format - duplicate reference-link labels</maml:para>
      <maml:para>It returns a result object with `IsValid`, `Errors`, and extracted compare-link values.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>PS&gt;</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para />
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- EXAMPLE 1 ---------</maml:title>
        <maml:introduction>
          <maml:para>```text
PS&gt; Test-KeepAChangelogFile -Path ./CHANGELOG.md
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Returns the validation result for the current changelog file.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version</maml:linkText>
        <command:uri />
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
</helpItems>