Conversation
oschwald
commented
Mar 6, 2026
- Modernize AssemblyVersion management
- Fix ArrayPool leak on deserialization exceptions
- Fix null-safety in MemoryMapBuffer.Dispose
- Update release notes wording for Parameter rename
- Update README for 5.0 changes
- Clean up suppressions and fill justifications
- Minor code cleanup
- Update CI and docs
- Fix error message and exception type consistency in Reader
- Extract IPv4-in-IPv6 prefix length as named constant
- Improve ParameterAttribute obsolete message
- Update release script to sync all project versions
- Remove stale AnkhSVN metadata from solution file
- Fill empty param docs on Metadata constructor
- Fix insert_final_newline editorconfig setting
- Use NuGet v3 package source
- Refresh test/benchmark metadata and drop manual file version
Remove manual AssemblyVersion/AssemblyFileVersion from AssemblyInfo.cs and let the SDK auto-generate AssemblyFileVersion from VersionPrefix. Pin AssemblyVersion in csproj for strong-naming stability. Update release.sh to keep AssemblyVersion in sync with major version. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wrap ArrayPool Rent/Return in try/finally in DecodeMapToType and SetAlwaysCreatedParams so rented arrays are returned even when deserialization throws. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add null checks for _view in Dispose(bool) to prevent NullReferenceException if constructor fails after _memoryMappedFile is assigned but before _view is created. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The ParameterAttribute is kept as an obsolete compat shim, so this isn't a breaking change. Soften wording accordingly. Keep BREAKING on InjectAttribute.ParameterName which was fully removed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request encompasses a series of pre-release cleanups and minor enhancements aimed at improving the overall quality, maintainability, and robustness of the project. Changes include modernizing project configurations, addressing potential resource leaks and null-safety concerns, updating documentation for API changes, and streamlining the build and release processes. The updates contribute to a more stable and developer-friendly codebase. Highlights
Changelog
Ignored Files
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a wide range of cleanups and improvements in preparation for a new release. Key changes include modernizing version management, fixing an ArrayPool leak, improving null safety, updating documentation and release scripts, and cleaning up code analysis suppressions. The changes are generally excellent and improve the quality and maintainability of the codebase. I have one minor suggestion regarding code formatting.
Update [Parameter] reference to [MapKey] and add a property-based activation example alongside the existing constructor-based one. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace all <Pending> justifications with real explanations in both project GlobalSuppressions.cs files. Remove stale CA1052/S1118 suppressions for now-static DecoderTest, remove S3881 suppression for NonSeekableStreamWrapper and fix the code instead by adding base.Dispose(disposing) call. Remove merge conflict comment blocks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Make _metadataStartMarker static readonly to avoid per-instance allocation. Replace LINQ .Skip(12).Take(4).ToArray() with Array.Copy in FindAll to avoid iterator allocations. Remove unused System.Linq import. Remove stale net45 condition block from benchmark csproj. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add 10.0.x to CodeQL workflow dotnet-version list. Fix CLAUDE.md: remove stale ArrayBuffer/Buffer references (everything is MemoryMapBuffer now) and fix CreateAsync example signature. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace vague "Something bad happened" with a descriptive message about search tree corruption. Change InvalidDataException to InvalidDatabaseException in FindAll for consistency — all database format errors should use the library's own exception type. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace magic number 96 with IPv4PrefixInIPv6Tree constant and add a comment explaining its significance in the MaxMind DB format. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Include migration guidance and removal timeline in the obsolete message so users see actionable information in compiler warnings. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Have release.sh update VersionPrefix in Test and Benchmark csproj files alongside the main library, keeping versions consistent. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The SubversionScc section is a leftover from when the project used Subversion. It has no effect on the Git-based workflow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add descriptions to all 9 constructor parameters, mirroring the existing property documentation for IntelliSense completeness. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change insert_final_newline from false to true, resolving the conflict with roslynator_new_line_at_end_of_file = true. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>