Skip to content

docs: describe 1.3.0 as released, and map breaking changes to major again - #247

Merged
dborgards merged 4 commits into
mainfrom
docs/post-1.3.0-cleanup
Sep 30, 2026
Merged

dborgards merged 4 commits into
mainfrom
docs/post-1.3.0-cleanup

Conversation

@dborgards

@dborgards dborgards commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

What does this change?

The follow-up that ADR 0001 schedules for "immediately after the 1.3.0 release, not before". 1.3.0 is out (tag v1.3.0, all nine packages on nuget.org, changelog commit on main), so the texts and the one configuration switch that described the window before it are now wrong.

1. .releaserc.json: breaking -> major again (own commit). The override existed so that API corrections before 1.3.0 could not publish 2.0.0. eng/verify-release-config.mjs has required major since 1.3.0 entered the changelog, so every pull request would fail its validate release config job until this lands.

2. Texts that said the window was open:

3. Two decisions taken on the way:

  • The Uds README used to name SendRawAsync, the timing options and the NRC-mapping types as the parts that could still change. That belonged to the open window and is gone. In its place the validation section says what the tests support: the mapping of negative response codes onto UdsNegativeResponseCode is the thinnest part (only a few codes are asserted by name), while SendRawAsync and the timing options are exercised heavily, like everything else only against the simulated ECU. The wording "these three are the least covered" was checked against the tests first and is wrong for two of the three, so it is not what the README says.
  • The ADR Outcome records under checklist item 4 that the maintainer took the surface as it then stood over as final by starting the release. It says no more than that: the baselines were reviewed, not line by line, and the release was cut after that.

Type of change

  • feat — new behaviour (minor release)
  • fix / perf — bug or performance fix (patch release)
  • docs / test / refactor / chore / ci — no release
  • Breaking change (! in the title, plus a BREAKING CHANGE: footer explaining the migration)

Every commit on the branch is of a type that does not release (chore(release) or docs), and none of the messages carries a breaking-change footer.

Checklist

  • dotnet build CanKit.Pro.sln -c Release succeeds (run with -p:CI=true, 0 warnings)
  • dotnet test CanKit.Pro.sln -c Release passes — not run; no .cs file changed
  • Public API changes are documented with XML comments (none)
  • New behaviour is covered by a test — none
  • The requirement or ADR this relates to is referenced (ADR 0001, "Immediately after the 1.3.0 release")

Also run locally: dotnet format --verify-no-changes (clean), dotnet pack with eng/verify-packages.py (9 packages; the READMEs are packed into the packages), python3 eng/verify-requirements-traceability.py (no new untraced requirement), node eng/verify-release-config.mjs (passes with major), and .releaserc.json and GitVersion.yml parse.

The guard was checked by putting minor back: the script exits 1 and names .releaserc.json; with major it passes. The website itself was not built locally (mkdocs is not installed here); the docs check on this PR builds it.

Not changed here

eng/verify-release-config.mjs still contains the branches for the window being open. With 1.3.0 in the changelog they can no longer be reached. They are harmless, and removing them is a change of its own.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UWRpkQzKkNDYz3WiNgWvWU

… out

The override that mapped a breaking commit to a minor release existed for the
window before 1.3.0, so that the API corrections in it could not publish 2.0.0.
That window closed with the v1.3.0 tag, and eng/verify-release-config.mjs has
required the major mapping since 1.3.0 entered the changelog: every pull request
would otherwise fail its "validate release config" job.

Checked by putting minor back: the script exits 1 and names this file. With
major it passes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UWRpkQzKkNDYz3WiNgWvWU
The texts written for the time before 1.3.0 said there was nothing to install,
that the public surface could still change, and that a breaking change bumped
the minor. None of that is true after the release.

- The nine package READMEs, the root README, the website start page and the
  packages overview now say that 1.3.0 is the first stable release, that 1.0.0
  to 1.2.3 are unlisted and deprecated and should not be used, and that SemVer
  holds from here on. The warning that there was nothing to install is gone.
- The Uds README's list of types that could still change is gone with the
  window it belonged to.
- docs/release-process.md and CLAUDE.md describe the major mapping instead of
  the temporary minor one, and the dry-run note now says what a dry run does
  when no release is pending instead of saying it cannot succeed before 1.3.0.
- The arc42 constraint and a comment in GitVersion.yml are put in the past tense.
- ADR 0001 keeps its text as decided and gains an Outcome section: what the
  checklist ended up as, the three further API changes made on the way, and the
  dry-run failure that was found and fixed before the release.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UWRpkQzKkNDYz3WiNgWvWU
@cursor

cursor Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
Documentation and release tooling configuration only; no application or library runtime code changes.

Overview
Closes the post-1.3.0 housekeeping from ADR 0001: breaking commits publish a major again by restoring { "breaking": true, "release": "major" } in .releaserc.json, matching what eng/verify-release-config.mjs already requires once 1.3.0 is in the changelog.

Documentation is updated everywhere that still described the pre-stable window—root and package READMEs, MkDocs pages, CLAUDE.md, docs/release-process.md, arc42, and GitVersion.yml comments—so they state 1.3.0 is the first stable release, 1.0.0–1.2.3 are unlisted/deprecated, and normal SemVer (including [Obsolete] deprecations) applies going forward. The site drops the “nothing to install from NuGet” hero warning; package index warnings are softened to notes.

ADR 0001 keeps its original decision text and adds an Outcome section (release date, checklist results, late API breaks, dry-run credential fix). The CanKit.Pro.Uds README drops pre-release “surface may still change” wording and clarifies what the tests actually cover for NRC mapping vs SendRawAsync/timing.

Reviewed by Cursor Bugbot for commit 1bff191. Bugbot is set up for automated code reviews on this repo. Configure here.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-30T05:40:03.873465Z 1bff191 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 778e4d988e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/release-process.md Outdated
Comment thread docs/release-process.md Outdated
@codecov

codecov Bot commented Sep 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

…face as final

Two follow-ups to the cleanup after 1.3.0.

The Uds README no longer lists types that "can still change", because that
belonged to the window before 1.3.0. In its place the validation section says
what the tests support: the mapping of negative response codes onto
UdsNegativeResponseCode is the thinnest part, with only a few codes asserted by
name, while SendRawAsync and the timing options are exercised heavily, like the
rest only against the simulated ECU. The sentence first proposed, that these
three are the least covered, was checked against the tests and was wrong for two
of them, so it was not written.

The ADR's Outcome records, under checklist item 4, that the maintainer took the
surface as it then stood over as final by starting the release. It says that and
no more: the baselines were reviewed, not line by line, and the release was cut
after that.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UWRpkQzKkNDYz3WiNgWvWU
The note added in the cleanup after 1.3.0 said the build, test and pack steps
still run when no releasing commit has landed, and listed feat, fix, perf and
breaking commits as the ones that produce a version. Both were written without
looking at the workflow and the release rules.

release.yml skips the Pack and Upload steps when no version resolves, so such a
dry run builds and tests and does not exercise package creation. And
.releaserc.json also maps revert and build(deps) to a patch release, which the
list left out.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UWRpkQzKkNDYz3WiNgWvWU
@dborgards
dborgards merged commit 8cec2ee into main Sep 30, 2026
14 checks passed
@dborgards
dborgards deleted the docs/post-1.3.0-cleanup branch September 30, 2026 07:49
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.

2 participants