chore: release v0.8.0 #223

Merged
Grandiras merged 1 commit from issue-222-release-0.8 into main 2026-10-05 14:22:59 +00:00
Owner

Closes #222.

Release preparation for v0.8.0. No tag is created or pushed here: tagging v0.8.0 publishes the packages, so the maintainer does it after this merges (checklist at the end).

Changes

  • Directory.Build.props: <Version> goes from 0.7.0 to 0.8.0.
  • CHANGELOG: ## [Unreleased] is now ## [0.8.0] - 2026-10-05, under a fresh empty ## [Unreleased]. ## [0.7.0] and older are untouched.
    • It opens with a short intro and an absolute link to the migration guide (src/tag/v0.8.0/docs/migrating-to-0.8.md), because the section becomes the Forgejo release body.
    • The Breaking bullets are ordered Lexicons first, then Spaces in wire order. All 6 carry Migration:.
    • The internal-only bullets are merged: the three "leaner" debloat bullets into one (#196, #204, #207), the two HTTP/2 bullets into one (#194, #197), and the allocation bullets into one (#194, #195, #200).
    • Benchmark figures are dropped, per the CHANGELOG style. Every original issue ref is kept: #193, #194, #195, #196, #197, #200, #204, #207, #210, #211, #212, #213, #214 and #219. The longest bullet is 322 characters.
  • PublicAPI: the Unshipped entries of ATProtoNet (185 added, 18 removed), ATProtoNet.Server (52/27) and ATProtoNet.Server.EntityFrameworkCore (23/3) are folded into PublicAPI.Shipped.txt, in each file's existing order. The Unshipped files are back to #nullable enable, and the analyzer is quiet.
  • Docs: docs/getting-started.md links the 0.8 guide; README and docs/index.md already did. docs/migrating-to-0.8.md has an entry for each Breaking bullet (checked by keyword).

Verified

  • Release build with 0 warnings, doc samples included.
  • 5146 unit tests pass.
  • dotnet pack produces ATProtoNet.0.8.0.nupkg.

After merge (maintainer)

  1. git switch main && git pull
  2. git tag v0.8.0 && git push origin v0.8.0. release.yml builds, tests and packs, pushes to the Forgejo feed and nuget.org, and creates the release from the ## [0.8.0] section.
  3. Check the release page and the nuget.org listing.

🤖 Generated with Claude Code

Closes #222. Release preparation for v0.8.0. **No tag is created or pushed here:** tagging `v0.8.0` publishes the packages, so the maintainer does it after this merges (checklist at the end). ## Changes - **`Directory.Build.props`:** `<Version>` goes from 0.7.0 to 0.8.0. - **CHANGELOG:** `## [Unreleased]` is now `## [0.8.0] - 2026-10-05`, under a fresh empty `## [Unreleased]`. `## [0.7.0]` and older are untouched. - It opens with a short intro and an absolute link to the migration guide (`src/tag/v0.8.0/docs/migrating-to-0.8.md`), because the section becomes the Forgejo release body. - The Breaking bullets are ordered Lexicons first, then Spaces in wire order. All 6 carry `Migration:`. - The internal-only bullets are merged: the three "leaner" debloat bullets into one (#196, #204, #207), the two HTTP/2 bullets into one (#194, #197), and the allocation bullets into one (#194, #195, #200). - Benchmark figures are dropped, per the CHANGELOG style. Every original issue ref is kept: #193, #194, #195, #196, #197, #200, #204, #207, #210, #211, #212, #213, #214 and #219. The longest bullet is 322 characters. - **PublicAPI:** the Unshipped entries of `ATProtoNet` (185 added, 18 removed), `ATProtoNet.Server` (52/27) and `ATProtoNet.Server.EntityFrameworkCore` (23/3) are folded into `PublicAPI.Shipped.txt`, in each file's existing order. The Unshipped files are back to `#nullable enable`, and the analyzer is quiet. - **Docs:** `docs/getting-started.md` links the 0.8 guide; README and `docs/index.md` already did. `docs/migrating-to-0.8.md` has an entry for each Breaking bullet (checked by keyword). ## Verified - Release build with 0 warnings, doc samples included. - 5146 unit tests pass. - `dotnet pack` produces `ATProtoNet.0.8.0.nupkg`. ## After merge (maintainer) 1. `git switch main && git pull` 2. `git tag v0.8.0 && git push origin v0.8.0`. `release.yml` builds, tests and packs, pushes to the Forgejo feed and nuget.org, and creates the release from the `## [0.8.0]` section. 3. Check the release page and the nuget.org listing. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chore: release v0.8.0 (closes #222)
All checks were successful
CI / pds-integration (pull_request) Successful in 26s
CI / build-and-test (pull_request) Successful in 55s
Release / release (push) Successful in 1m5s
Sync Closures to GitHub / sync-closure (pull_request) Successful in 6s
104173c804
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator

🤖 Reviewing this PR — the review will link the full session transcript.

📜 Live transcript — updating every ~5 minutes while the review runs.

🤖 Reviewing this PR — the review will link the full session transcript. <!-- opencode-run:review --> 📜 [Live transcript](https://git.grandiras.net/Grandiras/opencode-bot/src/branch/opencode-logs/transcripts/Grandiras/ATProto.NET/pr-223/run-2026-10-05T14-20-11-940Z.md) — updating every ~5 minutes while the review runs.
Collaborator

🤖 Reviewing this PR — follow along in the action run; the reply will link the full session transcript.

📜 Live transcript — updating every ~5 minutes while the task runs.

🤖 Reviewing this PR — follow along in [the action run](https://git.grandiras.net/Grandiras/claude-bot/actions/runs/752); the reply will link the full session transcript. <!-- claude-run:pr_review --> 📜 [Live transcript](https://git.grandiras.net/Grandiras/claude-bot/src/branch/claude-logs/transcripts/Grandiras/ATProto.NET/pr-223/run-752.md) — updating every ~5 minutes while the task runs.
claude-reviewer left a comment

✅ Verdict: approve — no blocking issues found.

This is a mechanical release-prep PR, and it looks correct.

  • Version: Directory.Build.props is bumped to 0.8.0, and no stale 0.7.0 references remain in project, props or workflow files.
  • PublicAPI: the Unshipped entries are folded into Shipped. The *REMOVED* lines are applied: the DPoP types, ProofLifetime and PublicBaseUrl, and the old signatures are replaced by the new ones. The Unshipped files are back to just #nullable enable.
  • CHANGELOG: the section is renamed to [0.8.0] under a fresh empty [Unreleased]. All six breaking bullets carry Migration:. docs/migrating-to-0.8.md exists and has a heading for each breaking change, including the Lexicon methods, repoRev/spaceRev, spaceType, HTTP signatures, credential lifetime and revocation.
  • Docs: docs/getting-started.md now links the 0.8 guide.

Two small nits that don't block the merge:

  • Two bullets (about 324 and 304 characters, by my count) are slightly over the ~300-character CHANGELOG style limit. The PR description says the longest is 322, so the measurement may differ slightly.
  • The migration guide link in the CHANGELOG intro points to src/tag/v0.8.0/..., which only resolves once the maintainer pushes the tag. That is expected given the tag-after-merge flow, but the release body links would 404 if the tag name differs.

I did not rebuild or rerun the tests; the PR description reports a clean Release build and 5146 passing unit tests.


🧠 claude-sonnet-5-5 · ⏱ 0m 13s · 3 turns · tokens: 93.9k in / 1.1k out (+117.8k cache-read)
📜 Full session transcript

✅ **Verdict: approve** — no blocking issues found. This is a mechanical release-prep PR, and it looks correct. - **Version:** `Directory.Build.props` is bumped to 0.8.0, and no stale 0.7.0 references remain in project, props or workflow files. - **PublicAPI:** the Unshipped entries are folded into Shipped. The `*REMOVED*` lines are applied: the DPoP types, `ProofLifetime` and `PublicBaseUrl`, and the old signatures are replaced by the new ones. The Unshipped files are back to just `#nullable enable`. - **CHANGELOG:** the section is renamed to `[0.8.0]` under a fresh empty `[Unreleased]`. All six breaking bullets carry `Migration:`. `docs/migrating-to-0.8.md` exists and has a heading for each breaking change, including the Lexicon methods, repoRev/spaceRev, spaceType, HTTP signatures, credential lifetime and revocation. - **Docs:** `docs/getting-started.md` now links the 0.8 guide. Two small nits that don't block the merge: - Two bullets (about 324 and 304 characters, by my count) are slightly over the ~300-character CHANGELOG style limit. The PR description says the longest is 322, so the measurement may differ slightly. - The migration guide link in the CHANGELOG intro points to `src/tag/v0.8.0/...`, which only resolves once the maintainer pushes the tag. That is expected given the tag-after-merge flow, but the release body links would 404 if the tag name differs. I did not rebuild or rerun the tests; the PR description reports a clean Release build and 5146 passing unit tests. --- 🧠 claude-sonnet-5-5 · ⏱ 0m 13s · 3 turns · tokens: 93.9k in / 1.1k out (+117.8k cache-read) 📜 [Full session transcript](https://git.grandiras.net/Grandiras/claude-bot/src/branch/claude-logs/transcripts/Grandiras/ATProto.NET/pr-223/run-752.md) <!-- claude-verdict:approve --> <!-- claude-reviewed-head:104173c8046b5b5d56c9f3f6b1520531fb914848 -->
opencode-reviewer left a comment

✅ Verdict: approve — no blocking issues found.

Release prep for 0.8.0 verified in place; good to merge.

  • Directory.Build.props is at <Version>0.8.0</Version>, and .forgejo/workflows/release.yml builds/packs the tag-extracted version — the "maintainer tags after merge" flow matches how the workflow actually works (tag v0.8.0 → version 0.8.0, and the release body is taken from the ## [0.8.0] section of CHANGELOG.md, which is exactly the new section).
  • CHANGELOG: a fresh empty ## [Unreleased] sits above ## [0.8.0] - 2026-10-05; the 0.7.0 section and everything older are untouched. The 0.8.0 section opens with the intro and absolute tag link (src/tag/v0.8.0/docs/migrating-to-0.8.md), same pattern as the 0.7.0 release's link. All 6 Breaking bullets carry a Migration: sentence, Lexicons-then-Spaces ordering is as described, and every original issue ref survives — I grepped for each of #193, #194, #195, #196, #197, #200, #204, #207, #210, #211, #212, #213, #214 and #219 and all are present. No leftover link-reference definitions at the file's foot to update.
  • PublicAPI: all three PublicAPI.Unshipped.txt files are back to a lone #nullable enable; the folded additions are present in each PublicAPI.Shipped.txt in order (spot-checked SpaceCredentialRevoker, SpaceWriteSequence, HostsAccountAsync, NotifyCredentialRevoked, NotifyWriteInBackground, SpaceHttpSignature, ConfirmationKeyId, HandleCacheTtl, MaxCredentialLifetime), and the removed DPoP surface (DPoPProof*, ProofLifetime, PublicBaseUrl, ConfirmationThumbprint, dpopThumbprint) is absent from Shipped. Shipped-only additions are visible in the diff, so nothing was silently dropped in the truncated region.
  • Docs: docs/migrating-to-0.8.md exists on main and covers each Breaking bullet — the lexicon parameter-order table (timeline/list-feed since, quotes sort, recommendedLabels, LiveStats), spaceType rename with before/after snippets, HTTP message signatures replacing DPoP, the ten-minute credential lifetime, repoRev/spaceRev sequencing with the EF/migration notes, and HostsAccountAsync for revocation. docs/getting-started.md now links it, matching README/index. Falling back to release build/tests as the PR attests them — nothing here alters runtime code.

⏱ 1m 52s · 21 steps · $0.0510 · tokens: 131.6k in / 1.5k out (+989.7k cache-read) · Go: 5h 4% · wk 2% · mo 92%
📜 Full session transcript

✅ **Verdict: approve** — no blocking issues found. Release prep for 0.8.0 verified in place; good to merge. - **`Directory.Build.props`** is at `<Version>0.8.0</Version>`, and `.forgejo/workflows/release.yml` builds/packs the tag-extracted version — the "maintainer tags after merge" flow matches how the workflow actually works (tag `v0.8.0` → version `0.8.0`, and the release body is taken from the `## [0.8.0]` section of `CHANGELOG.md`, which is exactly the new section). - **CHANGELOG:** a fresh empty `## [Unreleased]` sits above `## [0.8.0] - 2026-10-05`; the 0.7.0 section and everything older are untouched. The 0.8.0 section opens with the intro and absolute tag link (`src/tag/v0.8.0/docs/migrating-to-0.8.md`), same pattern as the 0.7.0 release's link. All 6 Breaking bullets carry a `Migration:` sentence, Lexicons-then-Spaces ordering is as described, and every original issue ref survives — I grepped for each of #193, #194, #195, #196, #197, #200, #204, #207, #210, #211, #212, #213, #214 and #219 and all are present. No leftover link-reference definitions at the file's foot to update. - **PublicAPI:** all three `PublicAPI.Unshipped.txt` files are back to a lone `#nullable enable`; the folded additions are present in each `PublicAPI.Shipped.txt` in order (spot-checked `SpaceCredentialRevoker`, `SpaceWriteSequence`, `HostsAccountAsync`, `NotifyCredentialRevoked`, `NotifyWriteInBackground`, `SpaceHttpSignature`, `ConfirmationKeyId`, `HandleCacheTtl`, `MaxCredentialLifetime`), and the removed DPoP surface (`DPoPProof*`, `ProofLifetime`, `PublicBaseUrl`, `ConfirmationThumbprint`, `dpopThumbprint`) is absent from Shipped. Shipped-only additions are visible in the diff, so nothing was silently dropped in the truncated region. - **Docs:** `docs/migrating-to-0.8.md` exists on main and covers each Breaking bullet — the lexicon parameter-order table (timeline/list-feed `since`, quotes `sort`, `recommendedLabels`, `LiveStats`), `spaceType` rename with before/after snippets, HTTP message signatures replacing DPoP, the ten-minute credential lifetime, `repoRev`/`spaceRev` sequencing with the EF/migration notes, and `HostsAccountAsync` for revocation. `docs/getting-started.md` now links it, matching README/index. Falling back to release build/tests as the PR attests them — nothing here alters runtime code. --- ⏱ 1m 52s · 21 steps · $0.0510 · tokens: 131.6k in / 1.5k out (+989.7k cache-read) · Go: 5h 4% · wk 2% · mo 92% 📜 [Full session transcript](https://git.grandiras.net/Grandiras/opencode-bot/src/branch/opencode-logs/transcripts/Grandiras/ATProto.NET/pr-223/run-2026-10-05T14-20-11-940Z.md) <!-- opencode-reviewed-head:104173c8046b5b5d56c9f3f6b1520531fb914848 --> <!-- opencode-verdict:approve -->
Grandiras deleted branch issue-222-release-0.8 2026-10-05 14:23:00 +00:00
Grandiras referenced this pull request from a commit 2026-10-05 14:23:01 +00:00
Sign in to join this conversation.
No description provided.