=============================================================================== Welcome to the C# port of Google Protocol Buffers, written by Jon Skeet (skeet@pobox.com) based on the work of many talented people. =============================================================================== RELEASE NOTES - Code imported into Google's main protobuf repository =============================================================================== Everything below note this represents history of protobuf-csharp-port project before the code was merged into csharp/ subtree of GitHub google/protobuf repository. Frozen legacy version of the original project is available in https://github.com/jskeet/protobuf-csharp-port. =============================================================================== RELEASE NOTES - Version 2.4.1.555 =============================================================================== Changes: - Upgrade solution format to Visual Studio 2012. - Add the ability to print a builder (not just a message) - TextGenerator introduces a new overload of PrintTo - Munge protoc's error format into a VS-C#-compatible output format. - Work to make ProtoGen clone that acts as a protoc.exe plugin. - Added the AllowPartiallyTrustedCallers attribute - Optimized enum parsing. Fixes: - Fix for bug in limited input stream's Position, Introduced Position on output stream - Fix for writing a character to a JSON output overflows allocated buffer - Optimize FromBase64String to return Empty when presented with empty string. - Use string.Concat instead of operator to avoid potential import problems - Issue 81: quoting for NUnit parameters. - Issue 56: NuGet package is noisy - Issue 70: Portable library project has some invalid Nunit-based code. - Issue 71: CodedInputStream.ReadBytes go to slow path unnecessarily - Issue 84: warning CS0219: The variable `size' is assigned but never used =============================================================================== RELEASE NOTES - Version 2.4.1.521 =============================================================================== Changes: - Add generated_code_attributes option, defaulted to false - Added support for Portable library - Added 'Unsafe' static type in ByteString to allow direct buffer access Fixes: - Issue 50: The XML serializer will fail to deserialize a message with empty child message - Issue 45: Use of 'item' as a field name causes AmbiguousMatchException - Issue 49: Generated nested static Types class should be partial - Issue 38: Disable CLSCompliant warnings (3021) - Issue 40: proto_path does not work for command-line file names - Issue 54: should retire all bytes in buffer (bufferSize) - Issue 43: Fix to correct identical 'umbrella_classname' options from trying to write to the same filename. =============================================================================== RELEASE NOTES - Version 2.4.1.473 =============================================================================== Features: - Added option service_generator_type to control service generation with NONE, GENERIC, INTERFACE, or IRPCDISPATCH - Added interfaces IRpcDispatch and IRpcServerStub to provide for blocking services and implementations. - Added ProtoGen.exe command-line argument "--protoc_dir=" to specify the location of protoc.exe. - Extracted interfaces for ICodedInputStream and ICodedOutputStream to allow custom implementation of writers with both speed and size optimizations. - Addition of the "Google.ProtoBuffers.Serialization" assembly to support reading and writing messages to/from XML, JSON, IDictionary<,> and others. - Several performance related fixes and tweaks - Issue 3: Add option to mark generated code with attribute - Issue 20: Support for decorating classes [Serializable] - Issue 21: Decorate fields with [deprecated=true] as [System.Obsolete] - Issue 22: Reusable Builder classes - Issue 24: Support for using Json/Xml formats with ICodedInputStream - Issue 25: Added support for NuGet packages - Issue 31: Upgraded protoc.exe and descriptor to 2.4.1 Fixes: - Issue 13: Message with Field same name as message causes uncompilable .cs - Issue 16: Does not integrate well with other tooling - Issue 19: Support for negative enum values - Issue 26: AddRange in GeneratedBuilder iterates twice. - Issue 27: Remove XML documentation output from test projects to clear warnings/errors. - Issue 28: Circular message dependencies result in null default values for Message fields. - Issue 29: Message classes generated have a public default constructor. You can disable private ctor generation with the option generate_private_ctor. - Issue 35: Fixed a bug in ProtoGen handling of arguments with trailing \ - Big-endian support for float, and double on Silverlight - Packed and Unpacked parsing allow for all repeated, as per version 2.3 - Fix for leaving Builder a public ctor on internal classes for use with generic "where T: new()" constraints. Other: - Changed the code signing key to a privately held key - Reformatted all code and line-endings to C# defaults - Reworking of performance benchmarks to produce reliable results, option /v2 - Issue 34: Silverlight assemblies are now unit tested =============================================================================== RELEASE NOTES - Version 2.3.0.277 =============================================================================== Features: - Added cls_compliance option to generate attributes indicating non-CLS-compliance. - Added file_extension option to control the generated output file's extension. - Added umbrella_namespace option to place the umbrella class into a nested namespace to address issues with proto files having the same name as a message it contains. - Added output_directory option to set the output path for the source file(s). - Added ignore_google_protobuf option to avoid generating code for includes from the google.protobuf package. - Added the LITE framework (Google.ProtoBuffersLite.dll) and the ability to generate code with "option optimize_for = LITE_RUNTIME;". - Added ability to invoke protoc.exe from within ProtoGen.exe. - Upgraded to protoc.exe (2.3) compiler. Fixes: - Issue 9: Class cannot be static and sealed error - Issue 12: default value for enumerate fields must be filled out Other: - Rewrite of build using MSbuild instead of NAnt - Moved to NUnit Version 2.2.8.0 - Changed to using secure .snk for releases =============================================================================== RELEASE NOTES - Version 0.9.1 =============================================================================== Fixes: - issue 10: Incorrect encoding of packed fields when serialized =============================================================================== RELEASE NOTES - Version 0.9.0 =============================================================================== - Initial release ===============================================================================