Repository navigation
chore(release): promote 2.9.0 and close the async sweep - #153
Merged
Merged
Conversation
Record E128222 under a Release 2.9.0 section. The package reached nuget.org before the Unshipped.md rows were promoted, so the release files catch up here. Close the AsyncAwaitBestPractices candidate sweep. A probe against every installed analyzer set found an owner for each async shape. MA0134 and VSTHRD110 report a discarded awaitable. AsyncFixer03, MA0147, and VSTHRD101 report an async lambda that converts to a void delegate. The two shapes with no owner stay rejected on value. No E128 rule ships. Let scripts/build.sh --project take a path to a .csproj, and print the warning lines when --warnings is set. A scratch probe under .claude/tmp/ now builds through the routed script instead of a blocked raw invocation. Co-Authored-By: Claude
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Executive Summary
Two things ship here. First, the release record catches up with the package:
E128222moves fromAnalyzerReleases.Unshipped.mdinto a## Release 2.9.0section, because the package reached nuget.org before the rows were promoted. Second, the async fire-and-forget analyzer sweep closes with no new rule, because a probe found an owner for every candidate shape.No analyzer source changed and no new package version is published.
2.9.0is already on nuget.org.Code Changes
src/E128.Analyzers/AnalyzerReleases.Shipped.md: newRelease 2.9.0section holdingE128222.src/E128.Analyzers/AnalyzerReleases.Unshipped.md:New Rulestable emptied, headers kept.scripts/lib.sh:resolve_projectpasses a path to a.csprojthrough unchanged, so a scratch probe under.claude/tmp/builds through the routed script.scripts/build.sh:--warningsnow prints the warning lines on a successful build. The usage line records theNAME|PATH.csprojform.lode/: the sweep is recorded as closed, with the probe table inredundant-rules.md, and the release mapping gains the2.9.0row.plans/async-analyzers/: rewritten to the executed, closed state.Tests and Tooling
Probe result, one build against every installed rule set:
TaskValueTaskasynclambda toActionasynclambda toEventHandlerasynclambda toFunc<Task>(control)awaitoverConfigureAwait(SuppressThrowing)Did not run: build and test. The change set holds zero
.csfiles, so the skill auto-enabled--skip-tests. Verified instead:scripts/lint-shell.shon both edited scripts,scripts/internal/analyzer-release-check.sh(clean),scripts/readme-table-diff.sh --analyzer(no drift),scripts/internal/readme-audit.sh(clean), andscripts/internal/precommit.sh(PII and secret scan clean).Review Guide
scripts/lib.shpath passthrough: confirm it cannot change name resolution for the existingsrc/,tests/, andbenchmarks/callers.2.9.0release section: confirm the row matches what nuget.org already serves.Rollback
Revert the commit. Nothing reads the promote script's output at build time, so a revert restores the previous release-file state. The
scripts/change is additive and the path branch is unreachable for a name argument.Links
.claude/tmp/async-probe/(git ignored)