Uh oh!
There was an error while loading. Please reload this page.
Delete HtmlCss rather than deprecating it - #3
Conversation
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Essentials Run ID: 📒 Files selected for processing (8)
💤 Files with no reviewable changes (2)
Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour. WalkthroughThe change removes the obsolete ChangesAPI and release validation
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk:⚪ Minimal · up to This removes the obsolete HtmlCss API and directs consumers to AnsiCss.Fixed. The breaking change and release guidance are documented, with no current merge-blocking risk identified. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Comment |
Marking it obsolete and forwarding to AnsiCss.Fixed was the wrong instinct: a deprecation buys a migration window for consumers you cannot reach, and this library is a day old with one consumer. What it actually bought was two public names for the same string and a member to carry forever. So it goes. AnsiCss.Fixed is the stylesheet; MarkupString.Html writes no ms-* class and has no reason to name one. The removal is recorded as *REMOVED* lines in PublicAPI.Unshipped.txt. Removing public API from a published version is a break, so this ships as 1.1.0 with 1.0.0 unlisted rather than as a major: 1.0.0 went out the same day and nothing consumes it, so unlisting makes "no one is broken" a fact rather than an assumption. PackageValidationBaselineVersion comes off for this build, because the surface being removed from is the surface it would validate against, and goes back to 1.1.0 once that is published. docs/releasing.md carries both halves. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
493d4e4 to
529f687CompareUh oh!
There was an error while loading. Please reload this page.
Removes
HtmlCssfromMarkupString.Html. UseAnsiCss.Fixed— the rules are byte-identical.Why
Every
ms-*class —ms-bold,ms-faint,ms-italic,ms-underline,ms-strike,ms-overline,ms-blink,ms-invert,ms-cmd-link— is written byMarkupString.Ansi'sAnsiHtmlEmitter.MarkupString.Htmlwrites none of them; it emits the tag it was handed. Someone rendering HTML fromMarkupString+MarkupString.Ansitherefore got classes with no rules anywhere in their dependency graph, and no reason to guess the fix lived in a package about raw tags.AnsiCss.Fixed(added in 2c29bfc) puts the sheet where the classes come from.HtmlCsswas left behind as an[Obsolete]forwarder. That was the wrong instinct: a deprecation buys a migration window for consumers you cannot reach, and this library is a day old with one consumer. All it bought was two public names for the same string and a member to carry forever.Ships as v1.1.0, with 1.0.0 unlisted
Removing public API from a published version is a break, so strictly this wants a major. It ships as a minor instead because 1.0.0 went out the same day and nothing consumes it — unlist 1.0.0 on nuget.org before tagging, which turns "no one is broken" from an assumption into a fact. A pinned exact version still restores; nothing new resolves to it.
PublicAPI.Unshipped.txtrecords both symbols as*REMOVED*, so the removal is reviewed rather than merely permitted.PackageValidationBaselineVersioncomes off for this build — the surface being removed from is the surface it would validate against — and goes back to 1.1.0 once that is published;docs/releasing.mdcarries both halves.Verified
AnsiCss.Fixedand the emitter together in both directions: every class the emitter can write has a rule, and every rule is for a class it can write).dotnet packclean on all three packages.🤖 Generated with Claude Code