Skip to content

feat!: close the #83 Newtonsoft migration tree — STJ-6 + STJ-2 tail (#119, #115) - #174

Merged
ChrisonSimtian merged 1 commit into
mainfrom
feature/119-stj6-tasks-integrations
May 25, 2026
Merged

feat!: close the #83 Newtonsoft migration tree — STJ-6 + STJ-2 tail (#119, #115)#174
ChrisonSimtian merged 1 commit into
mainfrom
feature/119-stj6-tasks-integrations

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Collaborator

Summary

Last-mile Newtonsoft removal. After this lands, no Fallout source file uses Newtonsoft.Json — the .dll survives in the closure only as a transitive of NuGet.Packaging (Fallout.Tooling) and Serilog.Formatting.Compact.Reader (Fallout.Build). The Newtonsoft.Json PackageVersion is removed from Directory.Packages.props entirely.

Closes the entire #83 STJ-migration tree:

Migrations in this PR

File Change
Fallout.Common/Tools/Slack/SlackTasks.cs JsonConvert.SerializeObjectJsonSerializer.Serialize. [JsonProperty][JsonPropertyName] on SlackMessageActionButton.Type.
Fallout.Common/Tools/Teams/Teams.Extensions.cs [JsonProperty(\"@type\")] / [JsonProperty(\"@context\")][JsonPropertyName(...)].
Fallout.Common/Tools/Twitter/TwitterTasks.cs Internal error-body parsing swapped from JObject.Parse to JsonNode.Parse.
Fallout.Common/CI/GitHubActions/GitHubActions.cs Lazy<JObject> _eventContextLazy<JsonObject>. Public GitHubEvent property type changes from JObjectJsonObject (v11 API break — was tracked in code comment).
Fallout.Build/Execution/Extensions/ArgumentsFromParametersFileAttribute.cs (#115 tail) parameters.json reading: JObject.Parse + JProperty + ToObject<T>JsonNode.Parse + indexer + GetValue<T> / Deserialize.
Fallout.Utilities.Net/HttpRequest.Content.cs Default WithJsonContent now uses STJ. [Obsolete] JsonSerializerSettings overload removed.
Fallout.Utilities.Net/HttpResponse.Body.cs Default GetBodyAsJson<T> now uses STJ. All [Obsolete] Newtonsoft overloads removed (including JObject-returning ones). GetBodyAsJsonObject returns JsonObject.

Package refs dropped

  • Newtonsoft.Json PackageReference removed from Fallout.Utilities.Net.csproj.
  • Newtonsoft.Json PackageVersion removed from Directory.Packages.props.

Closure check

$ grep \"Newtonsoft\" src/Fallout.*/bin/.../*.deps.json
# Survives only as transitive via NuGet.Packaging + Serilog.Formatting.Compact.Reader.

Test plan

  • dotnet build fallout.slnx — 0 errors.
  • dotnet test fallout.slnx — 425/425 pass across 10 DLLs.
  • CI ubuntu-latest green.

Closes

🤖 Generated with Claude Code

, #115)

Last-mile Newtonsoft removal. No Fallout source file uses Newtonsoft.Json anymore.
The .dll survives in the closure only as a true transitive of NuGet.Packaging
and Serilog.Formatting.Compact.Reader. The Newtonsoft.Json PackageVersion is
gone from Directory.Packages.props entirely.

Migrations in this PR:
- Fallout.Common/Tools/Slack/SlackTasks.cs: JsonConvert.SerializeObject ->
  JsonSerializer.Serialize. [JsonProperty] -> [JsonPropertyName] on the
  SlackMessageActionButton.Type hand-written member.
- Fallout.Common/Tools/Teams/Teams.Extensions.cs: [JsonProperty("@type")] /
  [JsonProperty("@context")] -> [JsonPropertyName(...)].
- Fallout.Common/Tools/Twitter/TwitterTasks.cs: JObject.Parse error-parsing
  swapped to JsonNode.Parse.
- Fallout.Common/CI/GitHubActions/GitHubActions.cs: Lazy<JObject> _eventContext
  -> Lazy<JsonObject>. Public GitHubEvent property type changes from JObject
  -> JsonObject (v11 API break, was tracked in code comment). Accessors updated.
- Fallout.Build/Execution/Extensions/ArgumentsFromParametersFileAttribute.cs
  (#115 STJ-2 tail): parameters.json reading swapped from JObject/JProperty
  to JsonObject indexer. ToObject<T> -> GetValue<T> / Deserialize.
- Fallout.Utilities.Net: HttpRequest.Content.cs and HttpResponse.Body.cs
  stripped of all [Obsolete] Newtonsoft overloads. Default WithJsonContent /
  GetBodyAsJson now serialize via STJ. JsonSerializerOptions overloads remain
  for explicit configuration.

Package refs dropped:
- Newtonsoft.Json PackageReference removed from Fallout.Utilities.Net.csproj.
- Newtonsoft.Json PackageVersion removed from Directory.Packages.props.

Tests: 425/425 pass across 10 DLLs.

Closes #119 (STJ-6), #115 (STJ-2), #83 (parent tracker).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ChrisonSimtian
ChrisonSimtian merged commit 2d59609 into main May 25, 2026
1 check passed
@ChrisonSimtian
ChrisonSimtian deleted the feature/119-stj6-tasks-integrations branch May 25, 2026 04:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant