Skip to content

Publish and verify Exhaustion before releasing RestClient.Net - #157

Merged
MelbourneDeveloper merged 1 commit into
mainfrom
fix/release-fixed-exhaustion
Oct 3, 2026
Merged

MelbourneDeveloper merged 1 commit into
mainfrom
fix/release-fixed-exhaustion

Conversation

@MelbourneDeveloper

Copy link
Copy Markdown
Owner

TLDR;

Publish and verify Exhaustion before releasing RestClient.Net. Prepare Exhaustion 1.0.1 and RestClient.Net 7.3.1 so consumers receive the bounded analyzer fix.

Details

  • Share ExhaustionVersion across the analyzer and package references, and retain transitive analyzer assets in every RestClient.Net target framework.
  • Build both release packages from the checked-out source with isolated restore caches and reproducible paths. Apply manual or tag versions before building instead of reading stale repository variables.
  • Test the actual packages before publication, publish Exhaustion first, and wait for its matching DLL and NuGet index entry before publishing RestClient.Net. Reject an existing version whose binaries or dependencies differ from this build.
  • Verify public NuGet downloads and run fresh consumer tests after publication. Serialize the two release workflows and apply the same validation to standalone analyzer releases.
  • Run release orchestration and package-consumer regressions in ordinary CI, including unpublished analyzer versions.

How Do The Tests Prove The Changes Work?

The package regression suite fails against published RestClient.Net 7.3.0 / Exhaustion 1.0.0: the dependency remains at 1.0.0 and issue #146 emits over 1 MB of diagnostics instead of the bounded EXHAUSTION002 diagnostic. It passes against the new packages on .NET 8 and 9. Each consumer references only RestClient.Net and exercises incomplete → complete → incomplete switch edits, plus both recursive switch forms, with heap and timeout limits.

Twenty-nine orchestration tests cover dependency-first publication, stale same-version binaries, all target-framework dependency groups, indexing delays, HTTP failures, deadlines, and malformed versions. Full local CI passes: 773 .NET test executions, zero failures or skips, 100% mutation score, formatting and warning-as-error builds. All workflows pass actionlint.

@MelbourneDeveloper
MelbourneDeveloper merged commit 0b31a12 into main Oct 3, 2026
6 checks passed
@MelbourneDeveloper
MelbourneDeveloper deleted the fix/release-fixed-exhaustion branch October 3, 2026 12:07
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