`homeboy changelog`
Synopsis
homeboy changelog [COMMAND]Description
homeboy changelog prints the embedded Homeboy CLI changelog documentation (from docs/changelog.md) as raw markdown by default.
In JSON output mode, the default show output is returned as JSON (with a content field containing the markdown).
Note: Homeboy generates changelog entries automatically from conventional-prefixed commits (
feat:/fix:/ etc.) at release time. There is nochangelog addcommand — users don’t hand-curate changelog bullets. Seehomeboy releaseand the commits since the last tag.
Do not hand-edit the changelog in feature PRs. The release pipeline rewrites the changelog’s next section from commits during
homeboy release, so per-PR edits are overwritten — and because every PR would touch the same shared file, hand-edits make the changelog a guaranteed multi-PR merge-conflict surface (#4876).homeboy reviewenforces this: when a scoped review changeset (--changed-since/--changed-only) modifies the component’s configuredchangelog_target, review surfaces a steering hint pointing you back to conventional commits. Describe the change in the commit message instead.
Subcommands
Default
homeboy changelog
homeboy changelog --self
homeboy changelog show
homeboy changelog show <component_id>Note: Homeboy generates changelog entries automatically from conventional-prefixed commits (feat: / fix: / etc.) at release time. There is no changelog add command — users don’t hand-curate changelog bullets. See homeboy release and the commits since the last tag.
Do not hand-edit the changelog in feature PRs. The release pipeline rewrites the changelog’s next section from commits during homeboy release, so per-PR edits are overwritten — and because every PR would touch the same shared file, hand-edits make the changelog a guaranteed multi-PR merge-conflict surface (#4876). homeboy review enforces this: when a scoped review changeset (--changed-since / --changed-only) modifies the component’s configured changelog_target, review surfaces a steering hint pointing you back to conventional commits. Describe the change in the commit message instead.
--self: explicit alias for the default Homeboy changelog output
Note: Homeboy generates changelog entries automatically from conventional-prefixed commits (feat: / fix: / etc.) at release time. There is no changelog add command — users don’t hand-curate changelog bullets. See homeboy release and the commits since the last tag.
Prerequisites
Do not hand-edit the changelog in feature PRs. The release pipeline rewrites the changelog’s next section from commits during homeboy release, so per-PR edits are overwritten — and because every PR would touch the same shared file, hand-edits make the changelog a guaranteed multi-PR merge-conflict surface (#4876). homeboy review enforces this: when a scoped review changeset (--changed-since / --changed-only) modifies the component’s configured changelog_target, review surfaces a steering hint pointing you back to conventional commits. Describe the change in the commit message instead.
homeboy component set <id> --changelog-target "CHANGELOG.md"Shows the embedded Homeboy CLI changelog documentation (from docs/changelog.md), or a specific component’s changelog when a component ID is provided.
Options:
Changelog Resolution
This prints raw markdown to stdout.
Configure the changelog path:
- Changelog path resolution:
- If
changelog_targetis set in the component config, that path is used (relative tocomponent.local_pathunless it’s absolute). - If
changelog_targetis not configured, the command errors with instructions to set it.
- If
- "Next section" resolution:
- If no label is configured, Homeboy defaults to
Unreleased. - If no aliases are configured, Homeboy matches both
Unreleasedand[Unreleased]. - If aliases are configured, Homeboy ensures the label and bracketed label are included for matching.
- Config overrides (most specific first): component config → project config → defaults.
- If no label is configured, Homeboy defaults to
This is required for release.
- If
changelog_targetis set in the component config, that path is used (relative tocomponent.local_pathunless it’s absolute). - If
changelog_targetis not configured, the command errors with instructions to set it.
JSON output
Note: all command output is wrapped in the global JSON envelope described in the JSON output contract. The object below is the
datapayload.
Release can bootstrap a missing configured changelog target on the first release. Changelog setup is owned by component configuration; there is no manual changelog initialization command.
- If no label is configured, Homeboy defaults to
Unreleased. - If no aliases are configured, Homeboy matches both
Unreleasedand[Unreleased]. - If aliases are configured, Homeboy ensures the label and bracketed label are included for matching.
- Config overrides (most specific first): component config → project config → defaults.
JSON output (default / show)
Homeboy resolves the changelog from the component’s changelog_target configuration for show (when a component ID is given) and for release-time finalization.
{
"command": "show",
"topic_label": "changelog",
"content": "<markdown content>"
}Errors
- If
changelog_targetis set in the component config, that path is used (relative tocomponent.local_pathunless it’s absolute). - If
changelog_targetis not configured, the command errors with instructions to set it.
Related
- If no label is configured, Homeboy defaults to
Unreleased. - If no aliases are configured, Homeboy matches both
Unreleasedand[Unreleased]. - If aliases are configured, Homeboy ensures the label and bracketed label are included for matching.
- Config overrides (most specific first): component config → project config → defaults.