Repository navigation
docs: decision 120, a net11.0 target and documented floor raises join a 2.x minor - #171
Merged
Merged
Conversation
…s as planned A net11.0 asset joins a 2.x minor only with the net10.0 group's dependency floors (a higher floor is NU1605 for an application that holds the lower version, measured on SDK 11 RC1), a superset surface that needs no C# 15 to call, the same generated members on every target and LangVersion 14 until an implementation needs 15. The SDK 11 spike (#170) comes first. 3.0.0 stays C# 15 unions and the net10.0 drop, timed to .NET 12 LTS; refines decision 44. Closes #169 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A union new on net11.0 is an addition, not a second contract: measured on SDK 11 RC1, a net10.0 consumer sees nothing, a LangVersion 14 net11.0 consumer who holds the value builds, and one who matches on it gets CS9327. 3.0.0 keeps the net10.0 drop and the change of an existing contract. The record is renamed to say so; the dependency-floor rule is unchanged. Refs #169 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Metalama is one version for every target and TypeKit follows the maintained Metalama year in a minor (1.5.0 already raised the floor in one). The move is not only a restore error: a woven net11.0 project goes from C# 14 to 15, an unsupported IDE host fails silently, and Metalama 2027 drops Visual Studio 2022. The record lists the conditions (stable 2027.0, a license-free CI and clean-container build, the ceiling and the 2.4.x line documented), corrects the rule on the language version and the SDK, and adds the measurements. Refs #169, #170, #173 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The Semantic Versioning FAQ calls a dependency update with an unchanged public API compatible, so the first rule no longer refuses a higher floor in a minor, on every target or on net11.0 alone. The raise is documented instead: the changelog names the dependency, the floors, who it reaches (NU1605 for a project that holds the lower version) and both ways out, and the smoke test shows it. Metalama is the same rule on the dependency with the widest reach. The record is renamed to say so; the roadmap and the index row follow. Refs #169 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 29, 2026
Merged
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.
Closes #169
Problem
Decision 44 says a
net11.0target joins a 2.x minor "when a feature needs it", and that unions and thenet10.0drop are 3.0.0. It does not say what a new target or a raised dependency floor costs a consumer, whether a union new onnet11.0needs a major, or how Metalama 2027 (preview; stable planned for January 2027) fits. Measured on SDK 11.0.100-rc.1: anet11.0dependency group with a higher floor than thenet10.0group fails an application onnet11.0that holds the lower version with NU1605.Change
design/adr/0120-a-net11-0-target-and-documented-floor-raises-join-a-minor.md:net11.0asset joins a 2.x minor when a feature needs it: shared members behave the same, generated members are the same on every target,LangVersion15 fornet11.0only once used, each target run.net11.0alone, when documented (the changelog names the floor, who it reaches and both ways out; the smoke test shows the NU1605), per the Semantic Versioning FAQ.net11.0is an addition and may join a 2.x minor.net11.0project, the supported IDEs and the 2.4.x line documented.design/adr/README.md: the row for 0120; decision 44's row says it is refined.design/roadmap.md: the Metalama,net11.0and 3.0.0 items.No code and no package change.
Tests
net11.0-only union consumed fromnet10.0,net11.0andLangVersion14 (CS9327 on a match); Metalama 2026.1 and 2027.0.4-preview with a union (CS0106/CS8803/CS1001, CS8652; builds and runs on 2027);#error versionnaming the compiler and language version; a license-free build of the 2027 preview in a clean container (an independent review).docs-query check: 0 problems in 862 links.CodoMetis.TypeKit.Conventions.Tests: 2011 passed.