Skip to content

release: decide what a breaking change of a silent type (docs!:) should publish #38

Description

@dcotelo

Problem

Confirmed while reviewing the release process: doc-only changes correctly
publish nothing. .github/scripts/release-version.sh ranks feat a minor,
fix/perf a patch, ! a major, and "everything else — docs, chore, test, ci,
refactor — publishes nothing at all", and #32 (docs-only) published nothing,
riding into 0.14.0's notes through its promoted Unreleased entry. That part
works.

One edge is decided but perhaps not deliberate: a breaking change of an
otherwise silent type. docs!: currently publishes a major, because the !
is ranked before the type is consulted.

Proposed behavior

Pick one and make the rank table say so explicitly. Two defensible answers:

  • Keep it. A ! means a breaking change whatever the type, and
    documentation that breaks a documented contract — removing a command from the
    docs, changing a config key's meaning — is a real break for users.
  • Narrow it. Only types that can publish at all get to publish a major, so
    docs!: would be a no-op and a genuine break would have to be feat!: or
    fix!:. Makes the rank table read as "silent types are always silent".

Whichever way it goes, tests/test_release_version.sh should pin it, so the
next person reading cp_rank does not have to infer the intent.

Alternatives considered

Leaving it undocumented and unpinned. No behaviour is wrong today, which is why
this is a question rather than a bug — but the next edit to cp_rank could flip
it either way without anything noticing.

Additional context

Surface: CI and release automation (.github/scripts/release-version.sh,
tests/test_release_version.sh).

Worth knowing: the ! is checked first deliberately in the current code — the
comment there says a breaking change of an otherwise silent type "still has"
somewhere to go. So this may already be the intended answer, in which case the
work is a test and a sentence rather than a behaviour change.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requestedsize:sOne file or a config change; no new concepts

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions