-
Notifications
You must be signed in to change notification settings - Fork 92
Lib fix #1240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughThis pull request updates dependencies across multiple projects and adjusts project SDKs. Key changes include upgrading YamlDotNet from 15.3.0 to 16.3.0 across numerous projects, migrating several Windows desktop tools from the WindowsDesktop SDK to the generic .NET SDK, updating other package versions, and commenting out certain assembly references. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (6)
OpenKh.Game/OpenKh.Game.csproj (1)
19-19: YamlDotNet version upgrade - see previous comments.This upgrade to 16.3.0 is part of the repository-wide dependency update. Please refer to the verification comments on
OpenKh.Common/OpenKh.Common.csprojregarding compatibility and breaking changes.OpenKh.Command.TexFooter/OpenKh.Command.TexFooter.csproj (1)
12-12: YamlDotNet upgrade with corresponding code changes.This project includes the
UseJsonStyleArray.csfile that was updated to match the new YamlDotNet 16.3.0 API signatures. The dependency upgrade here is consistent with the code changes made.OpenKh.Command.Bdxio/OpenKh.Command.Bdxio.csproj (1)
13-13: YamlDotNet version upgrade - see previous comments.This upgrade to 16.3.0 is part of the repository-wide dependency update. Please refer to the verification comments on
OpenKh.Common/OpenKh.Common.csprojregarding compatibility and breaking changes.OpenKh.Command.MapGenUtils/OpenKh.Command.MapGenUtils.csproj (1)
12-12: YamlDotNet version upgrade - see previous comments.This upgrade to 16.3.0 is part of the repository-wide dependency update. Please refer to the verification comments on
OpenKh.Common/OpenKh.Common.csprojregarding compatibility and breaking changes.OpenKh.Tools.EpdEditor/OpenKh.Tools.EpdEditor.csproj (1)
1-1: SDK migration - same as OpenKh.Tools.MissionEditor.csproj.This file follows the same SDK migration pattern. Please ensure the verification covers this project as well.
OpenKh.Tools.PAtkEditor/OpenKh.Tools.PAtkEditor.csproj (1)
1-1: SDK migration - same as OpenKh.Tools.MissionEditor.csproj.This file follows the same SDK migration pattern. Please ensure the verification covers this project as well.
🧹 Nitpick comments (1)
OpenKh.Kh1/OpenKh.Kh1.csproj (1)
1-1: Optional: BOM character present in XML.The file starts with a UTF-8 BOM (Byte Order Mark) character. While typically harmless and commonly added by Visual Studio, it can occasionally cause issues with certain parsers or tools.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (24)
IteEditor/OpenKh.Tools.IteViewer.csprojOpenKh.Command.Bdxio/OpenKh.Command.Bdxio.csprojOpenKh.Command.ImgTool/OpenKh.Command.ImgTool.csprojOpenKh.Command.Layout/OpenKh.Command.Layout.csprojOpenKh.Command.MapGen/OpenKh.Command.MapGen.csprojOpenKh.Command.MapGenUtils/OpenKh.Command.MapGenUtils.csprojOpenKh.Command.TexFooter/OpenKh.Command.TexFooter.csprojOpenKh.Command.TexFooter/TypeConverters/UseJsonStyleArray.csOpenKh.Common/OpenKh.Common.csprojOpenKh.Game/OpenKh.Game.csprojOpenKh.Kh1/OpenKh.Kh1.csprojOpenKh.Patcher/OpenKh.Patcher.csprojOpenKh.Tools.BarEditor/OpenKh.Tools.BarEditor.csprojOpenKh.Tools.BepEditor/OpenKh.Tools.BepEditor.csprojOpenKh.Tools.EpdEditor/OpenKh.Tools.EpdEditor.csprojOpenKh.Tools.ItbEditor/OpenKh.Tools.ItbEditor.csprojOpenKh.Tools.ItcEditor/OpenKh.Tools.ItcEditor.csprojOpenKh.Tools.Kh2MsetMotionEditor/OpenKh.Tools.Kh2MsetMotionEditor.csprojOpenKh.Tools.Kh2SystemEditor/OpenKh.Tools.Kh2SystemEditor.csprojOpenKh.Tools.Kh2TextEditor/OpenKh.Tools.Kh2TextEditor.csprojOpenKh.Tools.MissionEditor/OpenKh.Tools.MissionEditor.csprojOpenKh.Tools.ModsManager/OpenKh.Tools.ModsManager.csprojOpenKh.Tools.OloEditor/OpenKh.Tools.OloEditor.csprojOpenKh.Tools.PAtkEditor/OpenKh.Tools.PAtkEditor.csproj
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Analyze (csharp)
- GitHub Check: build
🔇 Additional comments (22)
IteEditor/OpenKh.Tools.IteViewer.csproj (1)
1-1: SDK change to Microsoft.NET.Sdk is correct for .NET 8 Windows Forms.The migration from
Microsoft.NET.Sdk.WindowsDesktoptoMicrosoft.NET.Sdkis valid withUseWindowsForms=trueandnet8.0-windowstarget framework. This aligns with modern .NET SDK practices.No further action needed for this project.
OpenKh.Kh1/OpenKh.Kh1.csproj (1)
25-29: WPF assembly references are appropriately commented out.Commenting out the WPF references (PresentationCore, PresentationFramework, WindowsBase) is correct since the project uses generic
Microsoft.NET.Sdktargetingnet8.0withoutUseWPF. Verification confirms no WPF types are referenced in the project's C# code, so removing these references will not cause compilation issues.OpenKh.Tools.BarEditor/OpenKh.Tools.BarEditor.csproj (1)
20-22: Commenting out the System.ComponentModel.DataAnnotations reference is appropriate for .NET 8.In .NET 8,
System.ComponentModel.DataAnnotationsis part of the shared framework and does not require an explicit assembly reference. The project actively uses data annotation attributes—[Required]and[StringLength]are applied to theTagproperty inBarEntryModel.cs—and these work correctly without the explicit reference because the namespace import resolves to the shared framework types.OpenKh.Tools.ModsManager/OpenKh.Tools.ModsManager.csproj (3)
15-15: LGTM: Patch version update.This is a patch version bump (8.0.0 → 8.0.1) which typically includes only bug fixes and security patches, making it a low-risk update.
13-13: LibGit2Sharp 0.31.0 minor version bump is appropriate.The update from 0.30.0 to 0.31.0 is a minor version bump that should maintain backward compatibility with existing usage in
ModsService.csandRepositoryService.cs(Repository.Clone, Repository.IsValid, Repository constructor).
17-17: No action needed. The Octokit 14.0.0 update is compatible with the codebase. The breaking changes introduced in 14.0.0 (Int32→Int64 conversions for Issue IDs and PunchCard statistics) do not affect the ModsManager usage, which only relies on Release and Asset APIs to fetch release information and download assets.Likely an incorrect or invalid review comment.
OpenKh.Command.Layout/OpenKh.Command.Layout.csproj (1)
11-11: LGTM!The YamlDotNet upgrade to 16.3.0 is valid and addresses .NET 8 compatibility issues as stated in the PR objectives. The breaking changes introduced in YamlDotNet 16.0.0 have been handled with corresponding TypeConverter updates in other parts of the codebase.
OpenKh.Command.MapGen/OpenKh.Command.MapGen.csproj (1)
20-20: LGTM!Consistent YamlDotNet upgrade across the codebase.
OpenKh.Tools.Kh2TextEditor/OpenKh.Tools.Kh2TextEditor.csproj (1)
23-23: LGTM!YamlDotNet upgrade is consistent with the dependency update objectives.
OpenKh.Patcher/OpenKh.Patcher.csproj (1)
8-8: LGTM!YamlDotNet upgrade is consistent with the PR objectives.
OpenKh.Command.ImgTool/OpenKh.Command.ImgTool.csproj (1)
12-12: LGTM!YamlDotNet upgrade is consistent with other projects in this PR.
OpenKh.Tools.Kh2SystemEditor/OpenKh.Tools.Kh2SystemEditor.csproj (1)
23-23: LGTM!YamlDotNet upgrade is consistent with the dependency update objectives.
OpenKh.Tools.BepEditor/OpenKh.Tools.BepEditor.csproj (1)
1-1: LGTM!The SDK change from
Microsoft.NET.Sdk.WindowsDesktoptoMicrosoft.NET.Sdkis correct for .NET 5+. The WindowsDesktop SDK was deprecated and merged into the standard SDK. WithUseWindowsForms=trueandTargetFramework=net8.0-windowsproperly set, this configuration will work correctly.OpenKh.Tools.OloEditor/OpenKh.Tools.OloEditor.csproj (1)
1-1: LGTM!The SDK migration from
Microsoft.NET.Sdk.WindowsDesktoptoMicrosoft.NET.Sdkis correct for .NET 8 projects. This modernizes the project configuration while maintaining Windows Forms support through theUseWindowsFormsproperty.OpenKh.Tools.ItcEditor/OpenKh.Tools.ItcEditor.csproj (1)
1-1: SDK change is correct for .NET 8.The migration from
Microsoft.NET.Sdk.WindowsDesktoptoMicrosoft.NET.Sdkis appropriate for .NET 8 projects. WithUseWindowsFormsset totrueand thenet8.0-windowstarget framework, this configuration correctly supports Windows Forms applications using the modern SDK approach.OpenKh.Tools.Kh2MsetMotionEditor/OpenKh.Tools.Kh2MsetMotionEditor.csproj (2)
1-66: Note: Build error mentioned in PR description.The PR description mentions that this project is producing a build error on the author's machine. While this dependency update appears correct, please ensure the build error is investigated and resolved before merging.
32-32: Patch update to version 8.0.1 is safe and appropriate.Version 8.0.1 exists on NuGet and is a legitimate patch release that should contain only bug fixes. No security advisories identified.
OpenKh.Tools.ItbEditor/OpenKh.Tools.ItbEditor.csproj (1)
1-1: SDK change is correct for .NET 8.The migration from
Microsoft.NET.Sdk.WindowsDesktoptoMicrosoft.NET.Sdkis appropriate for .NET 8 projects. WithUseWindowsFormsset totrueand thenet8.0-windowstarget framework, this configuration correctly supports Windows Forms applications using the modern SDK approach.OpenKh.Common/OpenKh.Common.csproj (1)
12-12: All YamlDotNet API usages are properly updated. The codebase contains only oneIYamlTypeConverterimplementation (UseJsonStyleArray<T>) with the correct interface signature, and it is properly registered in bothExportCommand.csandBinToYmlCommand.csvia.WithTypeConverter(). Other files using YamlDotNet do not require updates as they rely on standard serialization without custom type converters.OpenKh.Command.TexFooter/TypeConverters/UseJsonStyleArray.cs (2)
21-36: WriteYaml signature updated correctly for YamlDotNet 16.3.0.The signature now matches the
IYamlTypeConverterinterface in YamlDotNet 16.3.0, which requires theObjectSerializer serializerparameter. The existing serialization logic is preserved and should continue to work as before. The newserializerparameter can be used in the future if custom serialization logic is needed for nested objects.
16-18: ReadYaml signature updated correctly for YamlDotNet 16.3.0.The signature matches the
IYamlTypeConverterinterface, which requires theObjectDeserializer rootDeserializerparameter. Since this method throwsNotImplementedExceptionand is never called (the converter is registered only with SerializerBuilder for write operations in ExportCommand and BinToYmlCommand), the unused parameter is acceptable.OpenKh.Tools.MissionEditor/OpenKh.Tools.MissionEditor.csproj (1)
1-1: SDK migration configuration is correct for .NET 8 Windows Forms.The MissionEditor project and six other tool projects (BepEditor, EpdEditor, ItbEditor, ItcEditor, OloEditor, PAtkEditor) all correctly use
Microsoft.NET.Sdkcombined with<UseWindowsForms>true</UseWindowsForms>and<TargetFramework>net8.0-windows</TargetFramework>. This configuration is valid for migrating fromMicrosoft.NET.Sdk.WindowsDesktop. Actual build and runtime verification requires compilation, which must be performed during CI/CD or local build testing.
| <PackageReference Include="System.Numerics.Vectors" Version="4.5.0" /> | ||
| <PackageReference Include="Xe.BinaryMapper" Version="1.5.2" /> | ||
| <PackageReference Include="YamlDotNet" Version="15.3.0" /> | ||
| <PackageReference Include="YamlDotNet" Version="16.3.0" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check latest YamlDotNet version
echo "Checking latest YamlDotNet version..."
curl -s https://api.nuget.org/v3-flatcontainer/yamldotnet/index.json | jq -r '.versions[-5:]' 2>/dev/null || echo "Could not fetch NuGet data"
# Check for security advisories on GitHub
echo -e "\nChecking for security advisories..."
curl -s 'https://api.github.com/repos/aaubry/YamlDotNet/issues?state=closed&labels=security' | jq -r '.[] | select(.created_at > "2024-01-01") | "\(.title) - \(.created_at)"' 2>/dev/null | head -10 || echo "Could not fetch GitHub data"Repository: OpenKH/OpenKh
Length of output: 194
🌐 Web query:
YamlDotNet breaking changes version 15 to version 16 migration guide
💡 Result:
Summary of breaking changes and migration steps from YamlDotNet v15 → v16
Key breaking changes (v16.0.0):
- Many APIs now receive an ITypeConverter instance; custom converters and callers must obtain the shared type converter via SerializerBuilder/DeserializerBuilder.BuildTypeConverter() and accept/store it (treat as singleton). [1]
- Many methods now receive an IPropertyDescriptor parameter; update custom type converters/serializers/deserializers to accept and (if needed) use this extra argument. [1]
- Delegates ObjectSerializer and ObjectDeserializer are now passed around to some APIs; update signatures where you implemented/used them. [1]
- Date/time JSON-compatible behavior: to revert to the old date/time format remove DateTime8601Converter and add DateTimeConverter(doubleQuotes: true) on the serializer builder. [1]
- Mark, Cursor and SimpleKey position properties changed type from int → long; update any code that reads/constructs these types. [1]
Practical migration checklist
- Search your code for implementations of ITypeConverter, custom property serializers/deserializers, or any code hooking into serialization pipelines. Update method signatures to accept the new ITypeConverter, IPropertyDescriptor and (if applicable) ObjectSerializer/ObjectDeserializer parameters, and get the type converter instance from BuildTypeConverter() when constructing/injecting. [1]
- Update any code that assumed Mark/Cursor/SimpleKey positions are int to use long. [1]
- If you relied on the pre-v16 JSON-compatible DateTime format, change your builder to remove DateTime8601Converter and add new DateTimeConverter(doubleQuotes: true). Example:
new SerializerBuilder()
.WithoutTypeConverter<YamlDotNet.Serialization.Converters.DateTime8601Converter>()
.WithTypeConverter(new YamlDotNet.Serialization.Converters.DateTimeConverter(doubleQuotes: true))
.Build();. [1] - Run your unit tests; watch for compilation errors from changed signatures and for runtime differences in date parsing/formatting and node position handling.
References
- YamlDotNet release notes (v16.0.0) — breaking-change details. [1]
- YamlDotNet NuGet / releases listing. [2]
Sources
[1] aaubry/YamlDotNet — Releases (v16.0.0).
[2] YamlDotNet on NuGet.
🏁 Script executed:
# Find UseJsonStyleArray.cs to understand what changed
find . -name "UseJsonStyleArray.cs" -type fRepository: OpenKH/OpenKh
Length of output: 119
🏁 Script executed:
# Search for all YamlDotNet usages in the codebase
rg "YamlDotNet|IYaml|Yaml" --type cs -l | head -20Repository: OpenKH/OpenKh
Length of output: 1029
🏁 Script executed:
# Review UseJsonStyleArray.cs
cat -n ./OpenKh.Command.TexFooter/TypeConverters/UseJsonStyleArray.csRepository: OpenKH/OpenKh
Length of output: 1495
🏁 Script executed:
# Check the main YamlDotNet usage files for potential breaking changes
# Start with YamlTextImporter and YamlTextExporter which are likely core
head -100 ./OpenKh.Tools.Kh2TextEditor/Services/YamlTextImporter.csRepository: OpenKH/OpenKh
Length of output: 1065
🏁 Script executed:
# Check YamlTextExporter
head -100 ./OpenKh.Tools.Kh2TextEditor/Services/YamlTextExporter.csRepository: OpenKH/OpenKh
Length of output: 910
🏁 Script executed:
# Check Helpers.cs for YamlDotNet usage
head -100 ./OpenKh.Common/Helpers.csRepository: OpenKH/OpenKh
Length of output: 1242
🏁 Script executed:
# Check for any ITypeConverter implementations or custom converters
rg "ITypeConverter|class.*Converter.*:" --type cs -A 3 | head -50Repository: OpenKH/OpenKh
Length of output: 4582
🏁 Script executed:
# Search for IYamlTypeConverter implementations to ensure all have been updated
rg "IYamlTypeConverter|class.*:.*IYaml" --type cs -B 2 -A 5Repository: OpenKH/OpenKh
Length of output: 791
🏁 Script executed:
# Check for any usage of Mark, Cursor, or SimpleKey that might need int→long conversion
rg "Mark|Cursor|SimpleKey" --type cs | head -20Repository: OpenKH/OpenKh
Length of output: 2147
🏁 Script executed:
# Look at the git history or comments in UseJsonStyleArray.cs to see if it was recently updated
git log --oneline --all -- ./OpenKh.Command.TexFooter/TypeConverters/UseJsonStyleArray.cs | head -5Repository: OpenKH/OpenKh
Length of output: 164
🏁 Script executed:
# Check Config.cs which likely uses YAML serialization
head -50 ./OpenKh.Game/Config.csRepository: OpenKH/OpenKh
Length of output: 2022
🏁 Script executed:
# Check Metadata.cs which likely uses YAML for patcher metadata
head -50 ./OpenKh.Patcher/Metadata.csRepository: OpenKH/OpenKh
Length of output: 2075
🏁 Script executed:
# Check if Helpers.YamlSerialize and Helpers.YamlDeserialize are being used
rg "Helpers\.YamlSerialize|Helpers\.YamlDeserialize|YamlSerialize|YamlDeserialize" --type csRepository: OpenKH/OpenKh
Length of output: 795
🏁 Script executed:
# Verify the deprecated Serializer/Deserializer constructors in v16
# They should now be created via builders
rg "new.*Serializer\(\)|new.*Deserializer\(\)" --type cs -B 2 -A 2Repository: OpenKH/OpenKh
Length of output: 17368
🏁 Script executed:
# Get exact count of deprecated Serializer() and Deserializer() instantiations
echo "=== Deprecated Serializer() constructor usages ==="
rg "new.*Serializer\(\)" --type cs -l | wc -l
rg "new.*Serializer\(\)" --type cs -l
echo -e "\n=== Deprecated Deserializer() constructor usages ==="
rg "new.*Deserializer\(\)" --type cs -l | wc -l
rg "new.*Deserializer\(\)" --type cs -lRepository: OpenKH/OpenKh
Length of output: 640
🏁 Script executed:
# Check if there are any comments or notes about v16 compatibility
git log --all --oneline | grep -i "yamldotnet\|v16\|breaking" | head -10Repository: OpenKH/OpenKh
Length of output: 689
🏁 Script executed:
# Verify the exact file locations and context for the deprecated Serializer/Deserializer usages
echo "=== Helpers.cs usage ==="
rg -A 1 -B 1 "new YamlDotNet.Serialization.Serializer\(\)|new YamlDotNet.Serialization.Deserializer\(\)" ./OpenKh.Common/Helpers.cs
echo -e "\n=== PatcherProcessor.cs usage ==="
rg -A 1 -B 1 "new Deserializer\(\)" ./OpenKh.Patcher/PatcherProcessor.cs
echo -e "\n=== PatcherTests.cs sample usages ==="
rg -A 1 -B 1 "new Serializer\(\)|new Deserializer\(\)" ./OpenKh.Tests/Patcher/PatcherTests.cs | head -20Repository: OpenKH/OpenKh
Length of output: 1427
🏁 Script executed:
# Check TreeReader.cs to see if it's actually YamlDotNet related
rg -B 5 -A 5 "new.*Deserializer\(\)" ./OpenKh.DeeperTree/TreeReader.csRepository: OpenKH/OpenKh
Length of output: 302
🏁 Script executed:
# Check Command.Layout/Program.cs to verify YamlDotNet usage
rg -B 3 -A 3 "new YamlDotNet" ./OpenKh.Command.Layout/Program.csRepository: OpenKH/OpenKh
Length of output: 589
Critical: YamlDotNet 16.3.0 uses breaking changes that require code updates.
The upgrade from v15.3.0 to 16.3.0 removes the parameterless Serializer() and Deserializer() constructors. These must now be created via SerializerBuilder() and DeserializerBuilder(). The following files still use the deprecated constructors and will fail to compile or run:
OpenKh.Common/Helpers.cs(YamlSerialize/YamlDeserialize methods)OpenKh.Command.Layout/Program.cs(2 usages)OpenKh.Patcher/PatcherProcessor.cs(1 usage)OpenKh.Tests/Patcher/PatcherTests.cs(multiple test methods)
While UseJsonStyleArray.cs was correctly updated to use the new IYamlTypeConverter interface with the required signatures, these basic serializer/deserializer instantiations must also be migrated to use the builder pattern.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment appears to be an AI misfire. YamlDotNet.Serialization.Serializer's default ctor still exists and is not marked as depricated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
YamlDotNet 16.3.0 Serializer constructor API documentation
💡 Result:
You can find the Serializer constructor API and implementation in the YamlDotNet repo and project docs:
- Source / API (Serializer class, constructors): GitHub (YamlDotNet v16.3.0) — see the Serializer class file and its constructors on the repository. [1]
- Overview and usage (examples + notes about construction/configuration): YamlDotNet wiki "Serialization.Serializer". [2]
- NuGet package page for v16.3.0 (package + release notes). [3]
References
- GitHub repo (aaubry/YamlDotNet) — v16.3.0 source (Serializer class). [https://github.com/aaubry/YamlDotNet/tree/v16.3.0] [1]
- Serialization.Serializer — YamlDotNet Wiki. [https://github.com/aaubry/YamlDotNet/wiki/Serialization.Serializer] [2]
- YamlDotNet 16.3.0 — NuGet. [https://www.nuget.org/packages/YamlDotNet/16.3.0] [3]
If you want, I can open the exact Serializer.cs file and extract the constructor signatures and XML-doc comments for you.
🏁 Script executed:
#!/bin/bash
# Fetch the Serializer.cs file from YamlDotNet v16.3.0
echo "=== Fetching Serializer.cs from YamlDotNet v16.3.0 ==="
curl -s https://raw.githubusercontent.com/aaubry/YamlDotNet/v16.3.0/YamlDotNet/Serialization/Serializer.cs | grep -A 20 "public Serializer"
Length of output: 1174
🏁 Script executed:
#!/bin/bash
# Fetch the Deserializer.cs file from YamlDotNet v16.3.0
echo "=== Fetching Deserializer.cs from YamlDotNet v16.3.0 ==="
curl -s https://raw.githubusercontent.com/aaubry/YamlDotNet/v16.3.0/YamlDotNet/Serialization/Deserializer.cs | grep -A 20 "public Deserializer"
Length of output: 1017
@thamstras You're absolutely correct, and I apologize for the incorrect analysis.
I've verified the YamlDotNet v16.3.0 source code, and both Serializer() and Deserializer() default constructors are indeed present and publicly accessible. They maintain backward compatibility by internally delegating to the builder pattern:
public Serializer()
: this(new SerializerBuilder().BuildValueSerializer(), EmitterSettings.Default)
{
}The existing code using new Serializer() and new Deserializer() will continue to work without modification. The only breaking change that affected this codebase was the IYamlTypeConverter interface signature update, which you've already addressed in UseJsonStyleArray.cs.
The YamlDotNet upgrade in this PR is safe to proceed. Thank you for catching that error!
OpenKh.Command.TexFooter.TypeConverters.UseJsonStyleArray<>to match the new function signatures inYamlDotNet.Serialization.IYamlTypeConverter. I doubt the new functionality effects us, but someone who knows what that's supposed to be doing should check.OpenKh.Tools.Kh2MsetMotionEditoris giving a build error, at least on my machine.Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.