Skip to content
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

Update msgpack to 1.0.0 #286

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

This PR updates msgpack from 0.6.2 to 1.0.0.

Changelog

1.0

==========

Initial release.

1.0.0

=============================================================

API Breaking Changes

* None.

Enhancements

* None.

Bugfixes

* None.


Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

1.0.0rc1

BUG FIXES
* Fix NRE in .NET Standard 1.1/1.3 build (this issue got mixed in beta2).
* Fix built-in Guid/BigInteger always output raw type even if PackerCompatibilityOptions.PackBinaryAsRaw is not specified. 270
* Fix MessagePackObject.UnderlyingType reports wrong type for ext types. Part of 269.
 This bug also caused misleading error message for incompatible type conversion.
* Fix exceptions thrown by MessagePackObject.AsBinary()/AsString() reports internal type name. Part of 269.

1.0.0beta1

NEW FEATURES
* .NET Standard 2.0 which supports serializer source code generation on .NET Core. Note that serializer assembly generation is not supported.
* MessagePackSerializer.UnpackMessagePackObject(byte[]) utility method.
* MessagePack timestamp type support. This includes interoperability with DateTime/DateTimeOffset as well as MsgPack.Timespan type with basic arithmatics, properties, and conversions.

BUG FIXES
* Fix ByteArrayPacker throws IndexOutOfBoundException when the buffer remaining bytes is equal to packed scalar size. 252
* Fix UAP build drop does not exists in nupkg. 186
* Fix new unpacker cannot unpack reserved ext types.

Relase 1.0.0-beta2 2017-10-29

CHANGES
* Xamarin builds are now integrated to .NET Standard 2.0.

NEW FEATURES
* ValueTuple support. 277

IMPROVEMENTS
* System.Tuple<T> detection now ignores their declaring assemblies.
* Improve exception message in AOT error of Unity.
* .NET Standard 1.1/1.3 projects now do not depend on System.Linq.Expressions package.

0.17.0

* Added Any class (thanks willhbr)
* Internal split parsing of String and Binary tokens

0.16.1

* Use unions int type as token int representation instead of Int64

0.16.0

* Update to Crystal 0.31, fixed Arithmetic overflows

0.15.0

* Added ArraySerializable module
* Added Serializable::Presence module
* fix byte_number in errors in some cases

0.14.2

* Add support for type extension, fixed 44

0.13.1

* **(breaking change)** Rewrite Unpacker logic, changed Token, Lexer and Unpacker
* **(breaking change)** Remove unpacker methods: from_msgpack64, to_msgpack64
* **(breaking change)** Remove Eof token (raises EofError instead)
* **(breaking change)** Rename unpacker method read_value_tokens to read_node
* **(breaking change)** Rename TokensUnpacker to NodeUnpacker
* **(breaking change)** Rename UnpackException to UnpackError
* **(breaking change)** MessagePack::Type have only one type Int64 for ints, and Float64 for floats
* Add more exception types for every case

0.12.1

* **(breaking change)** Rename MessagePack::Unpacker to MessagePack::IOUnpacker
* Add MessagePack::TokensUnpacker
* Add unpacker method read_value_tokens, to read value as tokens array
* Optimize read Unions, without create temporary msgpack
* Fix 52, reading from stream when data types mismatch

0.11.1

* fixed nilable types in NamedTuple, 49

0.11.0

* fixed unpack nilable option in NamedTuple, 49
* refactor replace symbols with enums, thanks Fryguy, 47

0.10.0

* Updated to crystal 0.25.0
* Added MessagePack::Serializable

0.9.2

BUG FIXES
* Fix UAP build drop does not exists in nupkg. 186

0.9.1

BUG FIXES
* Fix ByteArrayPacker throws IndexOutOfBoundException when the buffer remaining bytes is equal to packed scalar size. 252

0.9.0

NEW FEATURES
* Enum name transformation via `SerializationContext.EnumSerializationOptions.NameTransformer`.
 Built in transformer is placed in `EnumTransoformers`.
 Issue 184.
* Polymorphic attributes now supports type qualification. Issue 171.
* Runtime type polymorphism now supports name based type verification. This feature allows to prevent loading malicious or unknown types ibefore assembly loading.
* Asymmetric serializers. You can generate "pack only" serializer when you set SerializationContext.CompabilityOptions.AllowAsymmetricSerializer to true. 68.
* Built in serializer for System.Text.StringBuilder now supports UnpackTo.
* Add serialization to/from MessagePackObject as extension methods of MessagePackSerializer and MessagePackSerializer<T>. Issue 90
* Users of serializer code generator API can specify TextWriter to output. This may improve tooling chain.
* Users of serializer code generator API can suppress [DebuggerNonUserCode] attribute to enable debugger step in.
* SerializerRepository API now expose ContainsFor and GetRegisteredSerializers methods to investigate registered serializers.
* SerializationContext.DisablePrivilegedAccess for restricted environment like Silverlight to select between granting permission or relinquish non-public access.
* UWP build is now included.
* ByteArrayPacker/ByteArrayUnpacker. They are suitable for fixed pattern serialization/deserialization.
* Fast mode of unpacker which omits nested collection management. This option can be disabled with setting UnpackerOptions.ValidationLevel to ValidationLevel.Collection.

IMPROVEMENTS
* Byte array based serialization API now uses ByteArrayPacker/ByteArrayUnpacker, improves about 40% faster than Stream based.
* Deserialization now uses ValidationLevel.None, improves about 30% faster than validating one.
* Packer/Unpacker performance improvements about 10-20%. As a result, new byte array "fast" unpacker is about 3x faster than previous unpacker.

BUG FIXES
* Fix nuspec to prevent old NuGet clients which do not support .NET Standard TFMs. Issue 177.
* The generated code for the type which has Tuple typed member uses old PackHelper API.
* Fix struct deserialization. Issue 189. Thank you samcragg!
* Fix asynchronous packing is not be emitted correctly. Issue 201
* Fix SerializerCodeGenerator does not handle collections correctly for IsRecursive = true. Issue 203
* Fix extra field causes IndexOutOfBoundException when reflection based serializers are used. Issue 199
* Fix some built-in serializers throws InvalidOperationException instead of SerializationException for type errors. Issue 204
* Fix a combination of readonly members and collection members incorrect code generation when the type also have deserialization constructor. Issue 207.
* Fix built-in collection serializers such as List<T> serializer causes SecurityException when the program run in restricted environment like Silverlight. Issue 205.
* Fix null items of complex type in List<T> or Dictionary<TKey, TValue> will not be deserialized as null. Issue 211. (from 0.8.1)
* Fix types which implement IPackable and IUnpackable but do not have any members cannot be serialized. Issue 202
* Fix Windows Native build error. Issue 206.
* Fix constructor deserialization fails if the constructor parameters order is not lexical. Issue 233
* Fix asynchronous multi dimensional array deserialization corruption.
* Fix enum serialization throws NullReferenceException in Unity. Issue 215.
* Fix MessagePackSerializer.Capability does not work correctly in Unity.
* Fix polymorphic serializer error in Unity.

0.8.1

BUG FIXES
* Fix null items of complex type in List<T> or Dictionary<TKey, TValue> will not be deserialized as null. Issue 211.

0.8.0

Nothing from 0.8.0 beta.

0.7.6

* Fix bug to raise IndexOutOfBoundsException for Bignum value with small int in JRuby

0.7.5

* Improved support for i386/armel/armhf environments
* Fix bug for negative ext type id and some architectures (arm*)

0.7.4

* Improved compatibility of Packer between CRuby and JRuby about argument IO-ish object values.

0.7.3

* Add Packerwrite_float32 method to pack floating point numbers into FLOAT of messagepack.

0.7.2

* Improved compatibility of Unpacker between CRuby and JRuby to accept stream-like object
by checking respond_to(:read) in addition to class check

0.7.1

* Fixed bug to pack/unpack ext type objects larger than 256bytes incorrectly.

0.7

This release includes 0.6.8 fixes. Here are cumulative changelogs from 0.6.8.
(There are no changes from 0.7.0-rc1)

MAJOR BREAKING CHANGES
* PackerCompatibilityOptions.None is now default. This means that msgpack bin or str8 formats are used by default.
 You can still turn off them by PackerCompatibilityOptions.Classic.

MINOR BREAKING CHANGES
* .NET 4.0, 4.5.0, 4.5.1, 4.6.0 are no longer supported.
* Unity without IL2CPP (a.k.a. AOT) is no longer supported.
* IPackable/IUnpackable is respected for collections now. Issue 153.
 This behavior can be disabled by setting SerializationCompatibilityOptions.IgnorePackabilityForCollection to true.
* mpu.exe now works on .NET 4.6.1.

TRIVIAL BREAKING CHANGES
* Generated serializers code has different structure, it might break your custom toolset which depends generated code structure.
* Generated serializer now always check SerializationContext.SerializationMethod when they serialize objects. Changing SerializationContext.SerializationMethod in use causes unexpected behavior even it is extremely rare to do it.
* Generated serializers code has different structure, it might break your custom toolset which depends generated code structure.
* Internal structure for Silverlight builds are changed. They now use only reflection based serializers and pre-generated serializers instead of Expression Tree based serializers.

NEW FEATURES
* Add .NET Core support. Note that .NET Core does NOT support CodeDOM or persistance of AsemblyBuilder, so MsgPack for CLI .NET Core build cannot support code generation. To generate source code or assembly of serializers in non-Windows environment, you must use Mono with .NET 4.5 build. Issue 128
* Add buffering option for Packer/Unpacker which can be enabled by PackerUnpackerStreamOptions.WithBuffering = true. It should improve performance for non-buffered stream like NetworkStream.
* Async support. Issue 49. Note that it is highly recommended to use buffering feature of Packer or Unpacker factory methods to avoid too chutty asynchronous I/O call. In addition, async API may avoid unnecessary blocking but it is not so efficienty in most cases.
* SerializerGenerator.GenerateSerializerCodeAssembly now supports custom namespace. Issue 138.
* Add IgnoreDataMemberAttribute to ignoring member indicators. Issue 146.
* Unity IL2CPP support. Unity DLLs now support IL2CPP with various AOT issue workarounds. Unity build requires 5.3.5f1 or above.
* Xamarin iOS linker support.

IMPROVEMENTS
* Exceptions now includes stream position for seekable stream or "offset from Unpacker construction" for non-seekable stream.
* Generated code now well structured which improves debuggability, it also remove some redundant expressions.
* Move throw statements from hot-path to improve performance a bit.
* Generated serializer now always check SerializationContext.SerializationMethod when they serialize objects. No longer need to re-generate serializer codes/assemblies to switch serialization method between array and map.
* Generated code now more structured which improves debuggability, it also remove some redundant expressions.
* DateMemberAttribute matching is now name based instead of type based.
* The type which implement IEnumerable but does not implement Add now supported. Issue 169.
 This behavior can be disabled with setting SerializationContext.CompatibilityOptions.AllowNonCollectionEnumerableTypes to false.
* mpu.exe and SerializerGenerator now supports compatibility switches.

BUG FIXES
* Fix Unpacker.Skip failes when the stream is fragmented such as raw NetworkStream.
* Fix generated serializer codes are not available in WinRT/UWP because of reflection API incompatibility when the type has non-public and explicitly marked fields/properties.
* Fix explicit IPackable/IUnpackable interface implementation causes serializer generator error. Issue 150.
* Fix non-public collection typed members with attributes causes serialization generation error. Issue 152.
* Fix collection only implements IEnumerable may cause NotSupportedException.
* Fix hidden by signature members ("new" in C) causes invalid serializer code generation. Issue/PR 147, 161, 162.
* IPackable/IUnpackable is respected for collections now. Issue 153.
* Fix the Unpacker always returns 0 when the underlying stream has double typed value.
* Fix MessagePackObject.PackToMessage does not look PackerCompatibilityOptions. Issue 168.
* Fix type initializer causes InvalidOperatiionException of serializer generation on WinRT projects. 170.
* Fix batch serializer code generation may report invalid error message due to context reset leaking.
* Fix reflection based serializer possibly throws NotSupportedException instead of SerializationException.

KNOWN ISSUES
* Reflection based serializers in Unity build is not stable even if you specify [Preserve] and/or link.xml.

0.7.0

* Add extension types support.
* Fix to share almost all test cases between CRuby and JRuby implementations.
* Fixed JRuby implementation to raise UnknownExtTypeError for unregistered ext type ids
instead to generate MessagePack::ExtensionValue instances.
(Specify `allow_unknown_ext: true` as unpacker option for v0.6.x behavior.)

0.7rc1

This release supports .NET Core 1.0 final.

BREAKING CHANGES
* netstandard 1.1 now do NOT support System.DBNull because System.Data.Common final package supports only >=1.2 (affects 0.7.0-alpha/beta only).
* mpu.exe now works on .NET 4.6.1.

IMPROVEMENTS 
* The type which implement IEnumerable but does not implement Add now supported. Issue 169.
 This behavior can be disabled with setting SerializationContext.CompatibilityOptions.AllowNonCollectionEnumerableTypes to false.
* mpu.exe and SerializerGenerator now supports compatibility switches.

BUG FIX
* Fix batch serializer code generation may report invalid error message due to context reset leaking.
* Fix reflection based serializer possibly throws NotSupportedException instead of SerializationException.

0.7beta2

NEW FEATURES
* Add Xamarin iOS linker support.

BUG FIXES
* Fix type initializer causes InvalidOperatiionException of serializer generation on WinRT projects. 170.
* Fix package dependency issue prevents *-aot runtime cannot install MsgPack.Cli packages (affects 0.7.0-beta1 only).
* Fix Xamarin iOS AOT releated bugs (affects 0.7.0-beta1 only).

BREAKING CHANGES
* netstandard1.1 and 1.3 now do NOT support code generation (Reflection.Emit) based serializer (affects 0.7.0-alpha/beta only).

0.7beta1

This release cleans up API surface and internal code for 0.7 stable release.

MAJOR BREAKING CHANGES
* PackerCompatibilityOptions.None is now default. This means that msgpack bin or str8 formats are used by default.
 You can still turn off them by PackerCompatibilityOptions.Classic.

MINOR BREAKING CHANGES
* UnpackHelpers.UnpackValueTypeValue signature is changed (note that this API has not been published in stable release yet).
* UnpackHelpers.UnpackComplexObject[Async] with currentKey parameter are removed(note that this API has not been published in stable release yet).
* Rename SerializerCapabilities>Unknown to SerializerCapabilities.None (note that this API has not been published in stable release yet).
* Remove ISupportMessagePackSerializerCapability(note that this API has not been published in stable release yet).
* Reflection based serializers now do not use IPackable/IUnpacabke members when the type does not implement IAsyncPackable/IAsyncUnpackable(note that this API has not been published in stable release yet).

BUG FIXES
* Fix the Unpacker always returns 0 when the underlying stream has double typed value.
* Fix MessagePackObject.PackToMessage does not look PackerCompatibilityOptions. Issue 168.

0.7.0alpha3

BREAKING CHANGES
* Internal structure for Silverlight builds are changed. They now use only reflection based serializers and pre-generated serializers instead of Expression Tree based serializers.
* IPackable/IUnpackable is respected for collections now. Issue 153.

IMPROVEMENTS
* Improve .NET Core support with work around for corefx GetInterfaceMap() limitation. .NET Core build requires RC2 or above.
* Improve Unity support. Unity DLLs now support IL2CPP with various AOT issue workarounds. Unity build requires 5.3.5f1 or above.
* DateMemberAttribute matching is now name based instead of type based.

NEW FEATURES
* SerializerGenerator.GenerateSerializerCodeAssembly now supports custom namespace. Issue 138.
* Add IgnoreDataMemberAttribute to ignoring member indicators. Issue 146.

BUG FIXES
* Fix explicit IPackable/IUnpackable interface implementation causes serializer generator error. Issue 150.
* Fix non-public collection typed members with attributes causes serialization generation error. Issue 152.
* Fix generated serializer codes are not available in WinRT/UWP because of reflection API incompatibility when the type has non-public and explicitly marked fields/properties.
* Fix collection only implements IEnumerable may cause NotSupportedException.
* Fix hidden by signature members ("new" in C) causes invalid serializer code generation. Issue/PR 147, 161, 162.
* IPackable/IUnpackable is respected for collections now. Issue 153.
 This behavior can be disabled by setting SerializationCompatibilityOptions.IgnorePackabilityForCollection to true.

KNOWN ISSUES
* Reflection based serializers in Unity build is not stable even if you specify [Preserve] and/or link.xml.
* .NET Core packaging is under testing.

0.7.0alpha2

This release includes 0.6.8 fixes.

BREAKING CHANGES
* Generated serializer now always check SerializationContext.SerializationMethod when they serialize objects. Changing SerializationContext.SerializationMethod in use causes unexpected behavior even it is extremely rare to do it.
* Generated serializers code has different structure, it might break your custom toolset which depends generated code structure.
* .NET 4.0, 4.5.0, 4.5.1, 4.6.0 are no longer supported.

IMPROVEMENTS
* Generated serializer now always check SerializationContext.SerializationMethod when they serialize objects. No longer need to re-generate serializer codes/assemblies to switch serialization method between array and map.
* Generated code now more structured which improves debuggability, it also remove some redundant expressions.

NEW FEATURES
* Async support. Issue 49.

KNOWN ISSUES
* CoreCLR(.NET Core) is not supported because of corefx 5381.

0.7.0alpha1

NEW FEATURES
* Add .NET Core support. Note that .NET Core does NOT support CodeDOM or persistance of AsemblyBuilder, so MsgPack for CLI .NET Core build cannot support code generation. To generate source code or assembly of serializers in non-Windows environment, you must use Mono with .NET 4.5 build. Issue 128
* Add buffering option for Packer/Unpacker which can be enabled by PackerUnpackerStreamOptions.WithBuffering = true. It should improve performance for non-buffered stream like NetworkStream.

IMPROVEMENTS
* Exceptions now includes stream position for seekable stream or "offset from Unpacker construction" for non-seekable stream.
* Generated code now well structured which improves debuggability, it also remove some redundant expressions.
* Move throw statements from hot-path to improve performance a bit.

BREAKING CHANGES
* Generated serializers code has different structure, it might break your custom toolset which depends generated code structure.

BUG FIXES
* Fix Unpacker.Skip failes when the stream is fragmented such as raw NetworkStream.

0.6.8

BUG FIXES
* Fix Unpacker.ReadXxx from uint64 encoded value returns invalid(nagative) value.
* Fix Unpacker.ReadObject does not handle collection. 143
* Fix intentionally "empty" member causes ArgumentNullException in serializer generation. Issue 145

0.6.7

BUG FIXES
* Fix Unpacker.ReadXxx returns 0 when try to read integral value from floating point stream or vice versa. Issue 139.

0.6.6

BUG FIXES
* Fix [MessagePackRuntimeType] fails when the type is declared in global namespace. Issue 137.

0.6.5.1

BUG FIXES
* mpu.exe -l option does not work in non-Windows environment. Issue 125.

0.6.5

BUG FIXES
* Fix enum handling in code generation for enum values which do not have corresponding single symbols. Issue 121(cont)

IMPROVEMENTS
* Improve Nullable<T> serializer source code for SerializerGenerator.GenerateSerializerCodes with WithNullable. Issue 121(cont)
* Add Unity AOT work around method MessagePackSerializer.PrepareType<T>(). This solves a part of issue 99 and an issue 124.
* Fix build issues in source tree release for Unity.
 * mpu.exe --library now creates merged source tree.
 * Add work arounds for Unity C compiler issue for DictionaryMessagePackSerializer`3.cs
 * Add UNITY_5 for UNITY compiler constant determination.
* Remove unnecessary Pack<T>() usage to avoid unexpected performance loss and/or Unity(and its Mono) C compiler overload resolution failure.

0.6.4

BUG FIXES
* Fix StackOverflowException on SerializerGenerator.GenerateSerializerCodes with WithNullable and IsRecursive. Issue 121(cont)

0.6.3

BUG FIXES
* Add new custom serializer registration option which registers nullable serializer together (this API is NOT available in Unity3D yet because of AOT issue). Issue 116.
* Fix reflection based serialization for non-public member fails for members which use generic type parameter(s). Issue 119
* Fix DateTimeOffset? serializer act different from DateTime? serializer for DateTimeSerializationMethod setting change. A part of issue 117
* Fix array element type is not processed recursively even if the IsRecursive option of serializer generator is true. Issue 120

IMPROVEMENTS
* Improve Unpacker performance.
* Add WithNullable feature to serializer generator. It specifies generating nullable companions together. Issue 121
Links

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