Skip to content

Prepare the 0.1.0 release - #39

Merged
jzills merged 2 commits into
developfrom
chore/release-0.1.0-prep
Aug 30, 2026
Merged

Prepare the 0.1.0 release#39
jzills merged 2 commits into
developfrom
chore/release-0.1.0-prep

Conversation

@jzills

@jzills jzills commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Release prep for the first multi-package release, and the first since 0.0.9 (February 2025). No library behavior changes — a dependency bump, package readmes, and a changelog.

Cosmos SDK 3.46.1 → 3.62.1

Dependabot opened this as #36, whose Unit Tests check is red. That branch was cut before #37 and #38 landed, and the failure comes from the staleness rather than from the SDK: applied to current develop, the same bump is green on unit and integration across both frameworks. #36 can be closed in favour of this.

A README for every package

Only ActionCache set PackageReadmeFile. The four packages this release introduces would each have rendered an empty readme tab on nuget.org — on the release that introduces them.

Each backend now keeps a README.md beside its csproj — install line, registration snippet, the backend-specific operational notes (Redis keyspace notifications, the SQL Server cache table, Cosmos lazy provisioning), and whether it can back UseDistributedSingleFlight(). ActionCache.Abstractions leads with "most applications do not need this package".

They are packed from Directory.Build.props, conditioned on the file existing, so a future backend gets a landing page by adding the file. ActionCache has no README.md of its own — it still packs the repository root README from its own csproj — so the condition passes it by.

CHANGELOG.md

Everything relative to 0.0.9, breaking changes first, plus an Upgrading from 0.0.9 section. Three are worth calling out here:

  • net9.0 is no longer targeted. 0.0.9 shipped net8.0;net9.0; 0.1.0 ships net8.0;net10.0.
  • Entries written by 0.0.9 are unreadable. Both the key format (now hashed) and the stored payload (now a rendered response envelope) changed. A cold cache on first deploy, not an error — but only discoverable by upgrading and watching hit rates.
  • The upgrade needs no code change. The Use…Cache extensions still live in ActionCache.Common.Extensions, so migration is adding the backend package and nothing else.

PackageReleaseNotes links to the changelog rather than restating it — notes are baked into the nuspec at pack time and would otherwise freeze at the version they shipped with.

Verification

Against this branch:

Check Result
dotnet build ActionCache.slnx 0 warnings, 0 errors
Unit 549/549 on net8.0 and net10.0
Integration 72/72 on net8.0 and net10.0, against live Redis/SQL Server/Cosmos
dotnet pack -p:Version=0.1.0 5 nupkg + 5 snupkg; all five carry a readme and release notes; inter-package deps pinned [0.1.0]
verify-package-dependencies.sh Core declares only ActionCache.Abstractions

One flake to flag rather than bury: on the first integration run after the bump, a timing-sensitive expiration test failed once on net8.0 (that run took 4m01s against a usual 3m09s, so it was under load). It passed on the three subsequent full runs on both frameworks. This is the same pre-existing flake noted in #17, not something the SDK bump introduced.

Follow-up

The remaining four Dependabot PRs (#32#35) are test- and benchmark-only and are deliberately left for after the release. #34 in particular is FluentAssertions 6 → 8, a major bump likely to need test edits.

https://claude.ai/code/session_01VUPTqPh5w79mfa18fLnMLz

jzills added 2 commits August 29, 2026 16:25
Release prep for the first multi-package release, and the first since 0.0.9
(February 2025).

* chore(deps): bump Microsoft.Azure.Cosmos to 3.62.1

  Dependabot opened this as #36, but that branch predates #37 and #38 and its
  unit-test failure came from the staleness, not the SDK. Applied on current
  develop instead: unit 549/549 and integration 72/72 on both frameworks.

* docs(packaging): a README for every package

  Only ActionCache set PackageReadmeFile, so the four packages this release
  introduces would each have shown an empty readme tab on nuget.org — on the
  very release that introduces them. Each backend keeps its own README.md
  beside its csproj, packed from Directory.Build.props so a future backend gets
  a landing page by adding the file. ActionCache is the exception and still
  packs the repository root README, declared in its own csproj.

* docs: add CHANGELOG.md

  Everything relative to 0.0.9, breaking changes first. Two of those are only
  discoverable by upgrading and hitting them: net9.0 is no longer targeted, and
  entries written by 0.0.9 are unreadable because both the key format and the
  stored payload changed — a cold cache on first deploy, not an error. The
  upgrade itself needs no code change; the Use...Cache extensions still live in
  ActionCache.Common.Extensions, so it is only adding the backend package.

  PackageReleaseNotes points at the changelog rather than restating it: notes
  are baked into the nuspec at pack time and would freeze at the version they
  shipped with.

Claude-Session: https://claude.ai/code/session_01VUPTqPh5w79mfa18fLnMLz
…om 0.0.9

Audited every page against the current public API ahead of the release. The
content was already accurate — attribute properties, builder methods, options
defaults, metric and activity names all match the code, and #31 and #37 both
updated the site when they landed. Two gaps:

* The configuration reference listed the attribute's properties but not
  ActionCacheEndpointOptions, the Minimal API equivalent added in #31. The page
  is meant to be the one place every option appears, and it was missing the
  newest public type. Adds the table plus the two things the type's shape
  raises: why the expirations are TimeSpan? where the attribute takes long, and
  that the delegate runs once at registration rather than per request.

* Nothing told a 0.0.9 user how to move. They are the ones most likely to land
  on the installation page after the release, and the three things that will
  surprise them are all silent: net9.0 is gone, entries written by 0.0.9 are
  unreadable so hit rate drops on first deploy, and responses now vary by
  authenticated user. Adds an "Upgrading from 0.0.9" section stating those and
  the one action needed -- install the backend package, change no code -- with
  the changelog linked for the full list.

Site builds on Hugo 0.165.0 and all 1445 internal links resolve.

Claude-Session: https://claude.ai/code/session_01VUPTqPh5w79mfa18fLnMLz
@jzills
jzills merged commit aa08a20 into develop Aug 30, 2026
8 checks passed
@jzills
jzills deleted the chore/release-0.1.0-prep branch August 30, 2026 02:27
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