Releases: MessagePack-CSharp/MessagePack-CSharp
Releases · MessagePack-CSharp/MessagePack-CSharp
v3.0.301(3.0.308)
Note
Tag and Unity's version is 3.0.301 but published NuGet version is 3.0.308.
The version mismatch due to release process inconsistencies will be fixed in the next release.
What's Changed
- Touch-ups to master by @AArnott in #2084
- Fix Source Generator doesnt work in Unity by @neuecc in #2087
Full Changelog: v3.0.300...v3.0.301
v3.0.300
Fixed version, release notes see v3.0.3.
v3.0.3
See our migration guide.
Details blog article
What's new
- AOT source generation of formatters by default using roslyn source generators.
mpc
is no longer available. Dynamic formatters still exist (for runtimes that support them), but code that compiles against v3 are unlikely to need them, resulting in better startup performance and improved debugging experience. - AOT source generation is hugely improved.
- Support most or all of the data types that
DynamicObjectResolver
supported. - Support for serializing private members.
- Support most or all of the data types that
[MessagePackObject]
types can serialize private members without the application having to switch toDynamicObjectResolverAllowPrivate
.- Analyzers are on by default, with many new ones to help ensure your code is correct and ready for AOT source generated formatters.
- Custom formatters are automatically used for the data types they format when defined in the same assembly, by default. No need to attribute your data types to point to the custom formatter. Opt out by attributing the formatter with
[ExcludeFormatterFromSourceGeneratedResolverAttribute]
. - New
CompositeResolverAttribute
offers a faster runtime alternative to theCompositeResolver
class.
Unity
- Consume through NuGetForUnity and UPM instead of through
.unitypackage
What's Changed
- Fix bug unsafe formatter by @pCYSl5EDgo in #1584
- Bump Microsoft.NET.StringTools from 17.4.0 to 17.5.0 by @dependabot in #1588
- Add built-in formatters for several more System.Numerics types by @AArnott in #1597
- Bump ReactiveProperty from 8.2.0 to 9.1.2 by @dependabot in #1592
- Set nullable in unity by @Y-YoL in #1600
- Convert mpc and msbuild task package to a roslyn source generator by @AArnott in #1599
- Merge master into develop by @AArnott in #1601
- Bring back support for the additional allow types by @AArnott in #1602
- Report diagnostics instead of throw from TypeCollector by @AArnott in #1605
- Enable P2P generic test by @AArnott in #1604
- Avoid copying data twice in MessagePackWriter.MemoryCopy when running… by @AlanLiu90 in #1607
- Bump Nerdbank.GitVersioning from 3.5.119 to 3.6.128 by @dependabot in #1615
- Bump Microsoft.Build.Locator from 1.4.1 to 1.5.5 by @dependabot in #1613
- Bump Microsoft.CodeAnalysis.PublicApiAnalyzers from 3.3.3 to 3.3.4 by @dependabot in #1612
- Merge master into develop by @AArnott in #1620
- Bump NUnit3TestAdapter from 4.3.1 to 4.4.2 by @dependabot in #1614
- Bump System.Collections.Immutable from 6.0.0 to 7.0.0 by @dependabot in #1611
- Fix the errant package dependency in source generator package by @AArnott in #1622
- Fix
ILookup<TKey, TElement>
deserialized behavior by @AArnott in #1623 - Merge latest Library.Template by @AArnott in #1640
- Bump Microsoft.NET.StringTools from 17.5.0 to 17.6.3 by @dependabot in #1629
- Rollback package dependency versions for analyzers by @AArnott in #1641
- move code depending on UnityEditor into separate assembly by @NorbertNemec in #1649
- remove MessagePackWindow in Unity by @neuecc in #1651
- Union type collect by @Scormave in #1634
- Switch from MSBuild properties to an AdditionalFiles json file by @AArnott in #1667
- Fix analyzer when only MessagePack.Annotations is referenced by @AArnott in #1674
- Allow applying
[MessagePackFormatter]
on parameters by @AArnott in #1678 - Revert "Allow applying
[MessagePackFormatter]
on parameters" by @AArnott in #1679 - Allow applying
[MessagePackFormatter]
on parameters and return values by @AArnott in #1680 - Remove
long
toint
truncation of stream position by @AArnott in #1685 - Fix releases links in README text by @KonH in #1688
- Better constrain dictionary detection by @AArnott in #1687
- Create FUNDING.yml by @AArnott in #1693
- Workaround mono runtime bug by @AArnott in #1696
- Support to analyze records by @nenoNaninu in #1698
- Add MESSAGEPACK_FORCE_AOT preprocessor directive by @brwhelan-msft in #1701
- .NET 8 Update(1): stylecop related small update by @pCYSl5EDgo in #1727
- .NET 8 Update(0): global.json, Dockerfile, Packages by @pCYSl5EDgo in #1726
- .NET 8 Update(2): TargetFrameworks by @pCYSl5EDgo in #1728
- .NET 8 Update(3): Microsoft.CodeAnalysis.Analyzers v3.3.4 by @pCYSl5EDgo in #1729
- Bump Newtonsoft.Json from 13.0.2 to 13.0.3 by @dependabot in #1656
- .NET 8 Update(4): System.Collections.Frozen by @pCYSl5EDgo in #1730
- .NET 8 Update(5): System.Collections.Generic.PriorityQueue<TElement, TPriority> by @pCYSl5EDgo in #1731
- .NET 8 Update(6): CollectionsMarshal for ListFormatter by @pCYSl5EDgo in #1732
- Merge latest Library.Template by @AArnott in #1737
- Source Generator configuration via attributes instead of .json file by @AArnott in #1736
- Merge master to develop by @AArnott in #1741
- Bump Microsoft.CodeAnalysis.Analyzers from 3.3.3 to 3.3.4 by @dependabot in #1633
- Bump Microsoft.CodeAnalysis to 4.8.0 for tests by @AArnott in #1742
- Bump NUnit3TestAdapter from 4.4.2 to 4.5.0 by @dependabot in #1654
- Improved UnityShims for better code sharing by @Scormave in #1585
- Drop support for roslyn 3.8 by @AArnott in #1749
- IEnumerable serialize improvement: Enumerable.TryGetNonEnumeratedCount by @pCYSl5EDgo in #1751
- AOT by default by @AArnott in #1743
- Add a
[CompositeResolver]
attribute that triggers source generation by @AArnott in #1754 - Merge Library.Template update by @AArnott in #1763
- Bump MicrosoftCodeAnalysisTestingVersion from 1.1.2-beta1.23509.1 to 1.1.2-beta1.24074.2 by @dependabot in #1765
- Bump System.Memory from 4.5.4 to 4.5.5 by @dependabot in #1764
- .NET 8 Update(8): Update Benchmarks not using Dynamic PGO and BinaryFormatter by @pCYSl5EDgo in #1746
- Bump ReactiveProperty from 9.3.4 to 9.5.0 by @dependabot in #1779
- fixing issue with backing field naming and serialization failing by @epitka in #1785
- Bump Microsoft.NET.StringTools from 17.8.3 to 17.9.5 by @dependabot in #1782
- B...
v2.5.192
v3.0.238-rc.1
What's Changed
- Fix simplified name for ValueTuple by @AlanLiu90 in #2033
- Avoid crashing with stack overflow on recursive generic type parameter constraints by @AArnott in #2036
Full Changelog: v3.0.233-rc.1...v3.0.238-rc.1
v3.0.233-rc.1
Changes
Enhancements
- #2013: Secure by default
Fixes
- #2031: Use generic type argument used for custom formatters
- #2029: Apply scoped in more places
- #2030: Support nesting formatters within generic data types
- #2024: Source code generation fails for generic type with private member serialization
- #2028: Avoid collecting fields with custom formatter recusively
- #2023: Suppress MsgPack004 on private base members when only public is interesting
- #2022: Ignore abstract implementations of
IMessagePackFormatter<T>
- #2012: MsgPack004 Analyzer triggering on not attributed private property on base class eventhough source generator shouldn't include private properties
- #2017: MsgPack013 should not report diagnostics on abstract classes
- #2021: Add
scoped
modifier toin
parameters ofref struct
- #2016: Avoid collecting members when it doesn't have [Key]
- #2005: custom formatters code source generator error
Others
- #2032: Use simpler C# syntax for nullable value types
v3.0.214-rc.1
Changes:
- #2015: Use a collision-resistant hash algorithm for untrusted data to address GHSA-4qm4-8hg2-g2xm
- #2009: Build nuget package with semver v2
This list of changes was auto generated.
v2.5.187
Changes:
- #2014: Use a collision-resistant hash algorithm for untrusted data to address GHSA-4qm4-8hg2-g2xm
- #2010: Update published security policy
This list of changes was auto generated.
v3.0.208-rc.1
Breaking changes
Enhancements
- Lower language version requirement of source generated resolver by @AlanLiu90 in #1926
- Add ignore case option to EnumAsStringFormatter by @iguskov1810 in #1936
- Adjusted MsgPack004 to support records by @N-Olbert in #1932 and #1946
- Add
MessagePackSerializer.Typeless.Deserialize
overload that takesReadOnlyMemory<byte>
by @AArnott in #1959 - Make
CompositeResolverAttribute
much more useful by @AArnott in #1968 - Add MsgPack014 analyzer and code fix by @AArnott in #1969
- Reconcile AllowPrivate behavior by @AArnott in #1990
- Add analyzers to help recognize breaking changes by @AArnott in #2003
- Add AOT formatter support for init properties and required members by @AArnott in #1980
- Support formatters for CompositeResolverAttribute by @AlanLiu90 in #1922
Fixes
- Fix diagnostic and code fix for MsgPack011 on nesting types by @AArnott in #1910
- Fix some source generator issues by @AlanLiu90 in #1921
- Improve handling of array types in source generation by @AArnott in #1960
- Honor key name overrides in source-generated formatters by @AArnott in #1962
- MPC String Value From Key Attribute Fix by @alimakki in #1963
- Update DynamicAssembly usage to honor different AssemblyLoadContext's by @BertanAygun in #1978
- Fix pack to include analyzers (more reliably) by @AArnott in #1994
- Migration improvements: deserializing constructors and less-frequent
partial
requirements by @AArnott in #2002 - Fix analyzers to not mis-interpret source generated formatters as user-defined by @AArnott in #1982
- Fix embedded types being generated in resolver by @AlanLiu90 in #2000
- Fix handling of name collisions in type hierarchies by @AArnott in #2006
- Fix detecting duplicate keys by @pkindruk in #1971
Other changes
- Update test project to ensure default language version of generated code is C# 7.3 by @AlanLiu90 in #1934
- Make source generation cancellable by @AlanLiu90 in #1912
- Drop unused System.CodeDom package version by @AArnott in #1965
- Fix AOT README anchor by @alimakki in #1967
- Avoid GetSemanticModel in analyzer by @AArnott in #1970
- Rename test class for improved discoverability by @AArnott in #1984
- Replace DynamicMethod use with private-capable Ref.Emit by @AArnott in #1981
- Reader/Writer touch-ups by @AArnott in #1987
- Allow trimming of benchmarked frameworks by @AArnott in #1988
- Build 3.0-rc.1 by @AArnott in #2004
New Contributors
- @N-Olbert made their first contribution in #1932
- @iguskov1810 made their first contribution in #1936
- @alimakki made their first contribution in #1963
- @BertanAygun made their first contribution in #1978
- @pkindruk made their first contribution in #1971
Full Changelog: v3.0.134-beta...v3.0.208-rc.1
v3.0.134-beta
What's Changed
- Fix and improve generated formatters by @AArnott in #1905
- Honor
ExcludeFormatterFromSourceGeneratedResolverAttribute
by suppressing certain warnings by @AArnott in #1907
Full Changelog: v3.0.129-beta...v3.0.134-beta