[major] Retire .Core from the published package ID - #101
Merged
Merged
Conversation
Keybinding.Core.csproj published as ktsu.Keybinding.Core, so an internal decision about whether the repo also ships an executable leaked into the package ID. Forty-odd single-library repos in the org publish under the bare family name; this one did not. Rename the project folder and file to Keybinding, so ktsu.Sdk derives the package ID ktsu.Keybinding, and update the solution entry along with the ProjectReference in both Keybinding.Test and Keybinding.Demo. CompatibilitySuppressions.xml addresses its 80 suppressions by assembly path, so every entry had to move from ktsu.Keybinding.Core.dll to ktsu.Keybinding.dll. Left stale, 6 diagnostics that main suppresses (5 CP0014, 1 CP0015) resurface. Namespaces still read ktsu.Keybinding.Core.*, which the issue's convention paragraph would also have equal the package ID. Renaming them would break every consumer's using directives rather than just their PackageReference, and the issue's change list does not ask for it, so it is left for a separate decision. Fixes #72 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KgqmLojZd3sn1M5mRN75ms
|
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.


Fixes #72
What changed
Keybinding.Core.csprojpublished asktsu.Keybinding.Core. Becausektsu.Sdkderives the package ID from the project filename, an internal decision about whether the repo also ships an executable was leaking into the published ID.Keybinding.Core→Keybinding, so the derived package ID becomesktsu.Keybinding.ProjectReferencein bothKeybinding.TestandKeybinding.Demo.CompatibilitySuppressions.xml, which address suppressions by assembly path (lib/<tfm>/ktsu.Keybinding.Core.dll→lib/<tfm>/ktsu.Keybinding.dll).README.md, and the tree diagram inCLAUDE.md.Keybinding.Demoalready matched the convention and needed no rename.Verification
mainktsu.Keybinding.Core.1.0.54.nupkgktsu.Keybinding.1.0.54.nupkgThe
CompatibilitySuppressions.xmlretarget is load-bearing. Reverting just that file and re-packing surfaces 6 diagnostics thatmainsuppresses:mainWith the file retargeted, this branch's diagnostic signature is identical to
main's.Note that
dotnet packexits non-zero onmainin this environment already — suppressed diagnostics resurface regardless of the rename. That is pre-existing and orthogonal; the point of the table is that the before/after signatures match exactly.One open question, deliberately not decided here
Source namespaces still read
ktsu.Keybinding.Core,ktsu.Keybinding.Core.Models,ktsu.Keybinding.Core.Contractsand so on. The issue's Convention paragraph says "assembly name and root namespace equal the package ID", which would make thesektsu.Keybinding.*— but its numbered Change list asks only for the folder,.csprojand solution entry.Those differ in blast radius by a lot. Renaming the package alone breaks a consumer's
PackageReferenceline; renaming the namespaces additionally breaks everyusingdirective they have. I kept to the change list, so this PR is a package-ID break only and existing source keeps compiling. If the namespaces should move too, that is worth its own issue and is best landed in the same major.Not in this PR
Step 3 of the issue — republishing
ktsu.Keybinding.Coreonce as a deprecated meta-package depending onktsu.Keybinding, so the 35 already-published versions get a working upgrade path rather than a dead ID — is a nuget.org publishing action rather than a source change. It still needs doing before or alongside the firstktsu.Keybindingrelease.The commit is tagged
[major]per the issue's "ship at the next major".🤖 Generated with Claude Code
https://claude.ai/code/session_01KgqmLojZd3sn1M5mRN75ms
Generated by Claude Code