Skip to content

chore: configure release-please to stay on 0.x until 1.0 is explicitly cut#191

Merged
DavidCozens merged 1 commit into
mainfrom
chore/release-please-stay-on-0.x
Apr 22, 2026
Merged

chore: configure release-please to stay on 0.x until 1.0 is explicitly cut#191
DavidCozens merged 1 commit into
mainfrom
chore/release-please-stay-on-0.x

Conversation

@DavidCozens

@DavidCozens DavidCozens commented Apr 22, 2026

Copy link
Copy Markdown
Owner

Purpose

Align release-please's version-bump policy with the repo's stated release strategy: 0.x is the beta series, breaking changes during 0.x are expected, 1.0.0 is cut deliberately when the API is stable.

Today the standing release-please PR (#101) proposes 1.0.0 because the commit history contains a BREAKING CHANGE (the S3.6 TcpSender → StreamSender rename) and release-please's default pre-1.0 behaviour jumps straight to 1.0 on any ! commit. That doesn't match intent — we're not ready to commit to API stability.

Change Description

Add "bump-minor-pre-major": true to release-please-config.json. With this flag, in the 0.x series:

  • feat: / feat!: / BREAKING CHANGE → 0.x → 0.(x+1) (minor bump, no jump to 1.0).
  • fix: → 0.x.y → 0.x.(y+1) (patch).

After 1.0.0 is cut (whenever that happens), the flag is a no-op and normal SemVer resumes: feat!: → major, feat: → minor, fix: → patch.

Test Evidence

  • JSON validated.
  • No CI gate exercises this file.
  • Observable effect: once this merges to main, release-please re-runs and PR chore(main): release 0.1.0 #101's title updates from chore(main): release 1.0.0 to chore(main): release 0.1.0. That's the confirmation signal.

Areas Affected

  • release-please-config.json — one line added.

No code or docs touched.

Summary by CodeRabbit

  • Chores
    • Updated release versioning configuration to adjust how version bumps are performed before major releases.

…y cut

Add bump-minor-pre-major: true so any Conventional-Commits-breaking
change (feat!: or BREAKING CHANGE footer) during the 0.x series maps
to a 0.x → 0.(x+1) minor bump rather than the default jump to 1.0.0.
Matches the release policy: 0.x is the beta series where breaking
changes are expected; 1.0.0 signals API stability and is cut
deliberately.

The standing release-please PR (#101) will re-render to propose
0.1.0 rather than 1.0.0 on the next push to main.
@coderabbitai

coderabbitai Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 55e307e0-6d7c-4b0d-9a1f-46ed7d5f4206

📥 Commits

Reviewing files that changed from the base of the PR and between eb8d90d and 539c536.

📒 Files selected for processing (1)
  • release-please-config.json

📝 Walkthrough

Walkthrough

The pull request adds a bump-minor-pre-major: true configuration setting to the release-please configuration for the root package, modifying the release versioning behavior to perform minor version bumps prior to entering a pre-major state.

Changes

Cohort / File(s) Summary
Release Configuration
release-please-config.json
Added bump-minor-pre-major: true to the "." package configuration to enable minor version bumps before pre-major releases.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Poem

🐰 A tiny tweak to versioning flow,
Where minor bumps precede the show,
Before the major version springs,
Release-please now gently brings,
A smoother path to versions new! 🚀

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and clearly describes the main change: configuring release-please to keep versioning in 0.x series until 1.0 is explicitly cut, which matches the changeset perfectly.
Description check ✅ Passed The description comprehensively covers all required template sections: Purpose (why the change is needed with context), Change Description (what was changed and how), Test Evidence (validation approach and observable effect), and Areas Affected (scope of changes).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/release-please-stay-on-0.x

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown
Contributor

☀️   Quality Summary

   🚦   Unit Tests (GCC): 100% successful (✔️ 775 passed, 🙈 3 skipped)
   🚦   Unit Tests (Clang): 100% successful (✔️ 727 passed, 🙈 3 skipped)
   🚦   Unit Tests (Sanitize): 100% successful (✔️ 727 passed, 🙈 3 skipped)
   🚦   Integration Tests (OpenSSL): 100% successful (✔️ 9 passed)
   🚦   BDD Tests (Linux): 100% successful (✔️ 36 passed)
   🚦   BDD Tests (Windows): 58% successful (✔️ 21 passed, 🙈 15 skipped)
   🚦   Unit Tests (MSVC): 100% successful (✔️ 600 passed, 🙈 1 skipped)
   ⚠️   Clang-Tidy: No warnings
   ⚠️   CPPCheck: No warnings


Created by Quality Monitor v1.14.0 (#f3859fd). More details are shown in the GitHub Checks Result.

@DavidCozens DavidCozens merged commit 4046320 into main Apr 22, 2026
14 checks passed
@DavidCozens DavidCozens deleted the chore/release-please-stay-on-0.x branch April 22, 2026 19:25
DavidCozens added a commit that referenced this pull request Apr 22, 2026
#191 added bump-minor-pre-major: true, but that flag only affects
releases *after* the first. The first-release path uses a separate
computation that didn't pick up the flag, so release-please still
proposed 1.0.0 because of the feat!: commit in history.

initial-version is the purpose-built knob for this case: it forces
the very first release out of manifest 0.0.0 to a specified version,
skipping the normal major/minor/patch computation. 0.1.0 matches the
version ladder: first labelled beta candidate once SD coverage and
Windows reliable transport land.

After this merges, PR #101's title should re-render from
"release 1.0.0" to "release 0.1.0". bump-minor-pre-major keeps
subsequent breaking changes capped at minor bumps (0.1.0 → 0.2.0,
not → 1.0.0), in line with the 0.x-is-beta policy.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant