Skip to content

docs(plans): design + impl plan for AllocationGate factor-out (backlog #10)#95

Merged
MarcelRoozekrans merged 2 commits into
mainfrom
chore/design-allocation-gate-factor-out
May 22, 2026
Merged

docs(plans): design + impl plan for AllocationGate factor-out (backlog #10)#95
MarcelRoozekrans merged 2 commits into
mainfrom
chore/design-allocation-gate-factor-out

Conversation

@MarcelRoozekrans

Copy link
Copy Markdown
Collaborator

Summary

Two docs commits for ZA.Mediator backlog item #10 (lift `AllocationGate` into a shared source-only package). Both halves of the dual graduation signal are met:

  1. Three packages (Authorization, Mediator, Mapping) have independently copied the helper.
  2. Mapping has drifted — it's missing `AssertBudgetValueTask` that Authorization and Mediator added later. A maintainer touching the ValueTask path in two repos has no indication that the third copy is silently different.

Design

`docs/plans/2026-05-22-allocation-gate-factor-out-design.md` — new repo `ZeroAlloc-Net/ZeroAlloc.TestHelpers` shipping a source-only NuGet package (NuGet `contentFiles` distribution) containing exactly one `.cs` file. Consumers add a `PackageReference` with `PrivateAssets="all"` + `IncludeAssets="contentfiles;build"`; the helper compiles into each consumer's assembly as `internal static class` in namespace `ZeroAlloc.TestHelpers`, keeping it out of every consumer's public API surface.

Plan

`docs/plans/2026-05-22-allocation-gate-factor-out.md` — 10 sequenced tasks: docs PR + bootstrap new repo + 3 consumer migrations (Mediator, Authorization, Mapping) + small release-please cleanup.

Test plan

  • CI green (no code changes — docs only)

🤖 Generated with Claude Code

MarcelRoozekrans and others added 2 commits May 22, 2026 14:44
…Helpers

Graduates backlog item #10. The dual signal is met: three packages
(Authorization, Mediator, Mapping) have independently copied the helper,
and Mapping has drifted — it's missing AssertBudgetValueTask<T> that
Authorization and Mediator added later. A maintainer touching the
ValueTask path in two repos has no indication that the third copy is
silently different.

Design: new repo ZeroAlloc.TestHelpers ships a source-only NuGet package
(contentFiles distribution) containing exactly one .cs file. Consumers
add a PackageReference with PrivateAssets="all" + IncludeAssets="contentfiles;build";
the helper compiles into each consumer's assembly as internal static class,
keeping it out of every consumer's public API surface.

Sequenced followup: 1 bootstrap PR in the new repo + 3 migration PRs
(Mediator, Authorization, Mapping) + 1 small followup to drop the one-shot
release-as override.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
10 sequenced tasks: docs PR + bootstrap new repo (5 internal tasks) +
3 consumer migrations + release-as cleanup. Each task self-contained
with exact commands, expected outputs, and commit messages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@MarcelRoozekrans
MarcelRoozekrans merged commit edc8fdb into main May 22, 2026
3 checks passed
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