fix: update dependencies and support YamlDotNet 18 - #67
Conversation
Apply the remaining NuGet and SBOM tool updates after the TUnit migration. Forward the root deserializer required by YamlDotNet, cover nested collections and aliases, and align package dependency validation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (6)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughCentral package versions and package validation expectations were updated. The YAML collection adapter now forwards the root deserializer, with tests for nested YAML and invalid input. Compatibility documentation and the configured SBOM tool version were also updated. ChangesYAML compatibility and package versions
SBOM tool version
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~12 minutes Change: Other Merge Risk: ⚪ Minimal · up to This change updates dependencies and adapts YAML loading to the new YamlDotNet version, with tests added for the affected behavior. No merge-blocking issue was found. Consumers must allow the higher dependency minimums. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The reviewed change preserves the loader’s explicit type mappings, namespace handling, and collection conversions. No expanded access or weakened control was identified, but the upgraded deserializer’s security-sensitive callback behavior remains unverified. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 2 files. (4 skipped: 4 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Thank you for submitting a pull request to the Substrait project. Please keep
your description clear and concise for reviewers.
Change Summary [REQUIRED]
Update the remaining NuGet dependencies and SBOM tool, adapt extension loading
to YamlDotNet 18, and align package dependency validation.
Motivation [REQUIRED]
Supersedes the overlapping dependency updates in #53 and #57.
The TUnit migration removed the obsolete MSTest dependencies, but the grouped
updates also require a YamlDotNet interface adaptation and matching package
dependency expectations. This applies the seven remaining updates on current
main without reintroducing MSTest.
Reviewer Context [OPTIONAL]
Regression tests cover nested lists and dictionaries, polymorphic arguments,
aliases, and invalid YAML.
accept arbitrary version changes.
Validation [REQUIRED]
dotnet format Substrait.sln --verify-no-changes --no-restore- passed.dotnet build Substrait.sln --configuration Release --no-restore- passed with no warnings.dotnet test --solution Substrait.sln --configuration Release --no-build- passed: 3,838 cases, no skips.Additional package and compatibility validation
Each command below passed:
dotnet run --project tools/Substrait.MetadataGenerator --configuration Release --no-restore -- --check dotnet pack src/Substrait/Substrait.csproj --configuration Release --no-build --output artifacts/packages -p:PackageVersion=0.1.0-preview.dependency-fixes.1 pwsh -NoProfile -File eng/Validate-Package.ps1 -PackagePath artifacts/packages/Substrait.Net.0.1.0-preview.dependency-fixes.1.nupkg -SymbolsPackagePath artifacts/packages/Substrait.Net.0.1.0-preview.dependency-fixes.1.snupkg -ExpectedVersion 0.1.0-preview.dependency-fixes.1 dotnet tool restore dotnet tool run sbom-tool generate -b artifacts/packages -bc src/Substrait -pn Substrait.Net -pv 0.1.0-preview.dependency-fixes.1 -ps 'Organization: Substrait' -nsb https://github.com/substrait-io/substrait-csharp -mi SPDX:2.2 dotnet tool run sbom-tool validate -b artifacts/packages -o artifacts/sbom-validation.json -mi SPDX:2.2 dotnet run --project tests/PackageSmokeTest/PackageSmokeTest.csproj --configuration Release --no-restore -p:SmokeTestPackageVersion=0.1.0-preview.dependency-fixes.1 -p:SmokeTestTargetFramework=net8.0 dotnet run --project tests/PackageSmokeTest/PackageSmokeTest.csproj --configuration Release --no-restore -p:SmokeTestPackageVersion=0.1.0-preview.dependency-fixes.1 -p:SmokeTestTargetFramework=net9.0 dotnet run --project tests/PackageSmokeTest/PackageSmokeTest.csproj --configuration Release --no-restore -p:SmokeTestPackageVersion=0.1.0-preview.dependency-fixes.1 -p:SmokeTestTargetFramework=net10.0 dotnet build tests/PackageSmokeTest/PackageSmokeTest.csproj --configuration Release --no-restore -p:SmokeTestPackageVersion=0.1.0-preview.dependency-fixes.1 -p:SmokeTestTargetFramework=net462The initial consumer restore using the checked-in NuGet.org configuration failed
with NU1900 because its vulnerability-data endpoint was unreachable locally.
Consumer restores and runs subsequently passed using the configured package feed
plus the local preview package source, without disabling auditing.
.NET Framework 4.6.2 was cross-compiled only; runtime execution was not performed
on macOS and remains a Windows CI check.
Public API and compatibility [REQUIRED]
No Substrait public API or wire-format changes. Runtime dependency minimums
increase, including Google.Protobuf 3.36.2 and YamlDotNet 18.1.0. The existing
net10.0, net8.0, and netstandard2.0 library targets are retained.
Breaking changes [REQUIRED]
None to the Substrait API or specification. Consumers must permit the updated
dependency versions.
Summary by CodeRabbit