feat(utilities.text.json)!: remove Newtonsoft surface — STJ-3 of #83 (#116)#171
Merged
Merged
Conversation
…116) BREAKING: Fallout.Utilities.Text.Json's [Obsolete]-marked Newtonsoft.Json surface (added in 10.3.x as parallel-deprecation overloads) is gone for v11. Deleted: - JObjectExtensions (GetChildren/GetPropertyValue/GetPropertyStringValue/ GetPropertyValueOrNull on Newtonsoft JObject) - AllWritableContractResolver - Base64JsonConverter<T> - DefaultSerializerSettings + every JsonSerializerSettings overload of ToJson / GetJson / ReadJson / WriteJson / UpdateJson - JObject-returning GetJson / ReadJson / UpdateJson(Action<JObject>) Kept: Object.ToJObject + Newtonsoft.Json PackageReference — last caller is Fallout.Tooling's JObject-typed InternalOptions, removed when STJ-4 (#117) lands. In-repo callers migrated: - GitHubActions.cs: PullRequestNumber/Action use direct Newtonsoft .Value<T>() now. GitHubEvent stays JObject (separate API-break PR). - ProcessExtensions.StdToJson: direct JsonConvert.DeserializeObject<T> — Fallout.Tooling is Newtonsoft-bound until #117. - OptionsTest + SettingsTest: same pattern (Options.JsonSerializerSettings is Newtonsoft; STJ equivalent moves with #117). Unblocks STJ-4 (#117), STJ-5 (#118), and the utility-lib-coupled tail of STJ-2 (#115). Full closure of #116 (delete Object.ToJObject + drop the Newtonsoft.Json PackageReference) is folded into #117. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ChrisonSimtian
added a commit
that referenced
this pull request
May 29, 2026
…4-47) (#294) The original unlist-10.3.40-47.json (#224) only covered the 10.3.40-47 tail and missed 10.3.24-39 — including the entire System.Text.Json breaking migration (ef83796, #171), which is patch zero of the contamination. Adds unlist-10.3.24-47.json: the complete 256-entry batch covering every published 10.3.x >= 10.3.24 across all 18 package IDs. Boundary is exact — 10.3.23 (commit 44770a6, #170) is the last clean patch and is where release/v10.3 is now parked. Keeps the old 40-47 file as the historical record of what was first identified; README documents both and the boundary. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Summary
Strips the
[Obsolete]-marked Newtonsoft.Json surface fromFallout.Utilities.Text.Json(added in 10.3.x as parallel-deprecation overloads). Breaking for v11. This is STJ-3 of the #83 migration tree and unblocks STJ-4/STJ-5 plus the utility-lib-coupled tail of STJ-2/STJ-6.What's gone
JObjectExtensions(GetChildren/GetPropertyValue/GetPropertyStringValue/GetPropertyValueOrNullonJObject),AllWritableContractResolver,Base64JsonConverter<T>.JsonExtensionsstripped to STJ only:DefaultSerializerSettingsremoved; everyJsonSerializerSettings-taking overload ofToJson/GetJson/ReadJson/WriteJson/UpdateJsonremoved;JObject-returningGetJson(this string),ReadJson(this AbsolutePath),UpdateJson(Action<JObject>)removed. STJ overloads now default theirJsonSerializerOptionsparameter toDefaultSerializerOptions(cleaner ergonomics now that the ambiguity with the Newtonsoft overload is gone).What's still there (intentionally)
Object.ToJObject(Newtonsoft) and theNewtonsoft.JsonPackageReferenceinFallout.Utilities.Text.Json.csprojremain. The last caller isFallout.Tooling.Options.InternalOptions(typedJObject); both go away when STJ-4 ([STJ-4] Migrate Fallout.Tooling JSON serialization (blocked on STJ-3) #117) lands. Full closure of [STJ-3] BREAKING: rewrite Fallout.Utilities.Text.Json on System.Text.Json #116's acceptance ("remove the PackageReference") moves into [STJ-4] Migrate Fallout.Tooling JSON serialization (blocked on STJ-3) #117.In-repo callers migrated
Fallout.Common/CI/GitHubActions/GitHubActions.csPullRequestNumber/PullRequestActionuse direct Newtonsoft.Property(name)?.Value.Value<T>()(preservesJObjectpublic surface forGitHubEvent; fullJsonObjectmigration is a separate API-break PR).Fallout.Tooling/ProcessExtensions.csStdToJson<T>uses directJsonConvert.DeserializeObject<T>— Fallout.Tooling is Newtonsoft-bound until #117.tests/Fallout.Tooling.Tests/OptionsTest.csOptions.JsonSerializerSettingsround-trip usesJsonConvert.SerializeObjectdirectly.tests/Fallout.Common.Tests/SettingsTest.csDiff size
10 files, +38 / −297. Almost all of it is deletion.
Closes
Unblocks
Fallout.Utilities.Net)Test plan
dotnet build fallout.slnx— 0 warnings, 0 errorsdotnet test fallout.slnx— 425/425 tests pass across 10 test DLLs🤖 Generated with Claude Code