From d5fb408ddc281ffcadeb08699e65bb694656d0bd Mon Sep 17 00:00:00 2001 From: Feng Xiao Date: Mon, 21 Dec 2015 14:36:30 -0800 Subject: Add changelog for v3.0.0-beta-2. [skip ci] Change-Id: Id383944dd3c999ad1008345ef34c9bdae24abc7c --- CHANGES.txt | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'CHANGES.txt') diff --git a/CHANGES.txt b/CHANGES.txt index ca3078c3..c710cd5e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,64 @@ +2015-08-26 version 3.0.0-beta-1 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSript) + General + * Intorduced a new language implementaion: JavaScript. + * Added a new field option "json_name". By default proto field names are + converted to "lowerCamelCase" in proto3 JSON format. This option can be + used to override this behavior and specify a different JSON name for the + field. + * Added conformance tests to ensure implementations are following proto3 JSON + specification. + + C++ (Beta) + * Various bug fixes and improvements to the JSON support utility: + - Duplicate map keys in JSON are now rejected (i.e., translation will + fail). + - Fixed wire-format for google.protobuf.Value/ListValue. + - Fixed precision loss when converting google.protobuf.Timestamp. + - Fixed a bug when parsing invalid UTF-8 code points. + - Fixed a memory leak. + - Reduced call stack usage. + + Java (Beta) + * Cleaned up some unused methods on CodedOutputStream. + * Presized lists for packed fields during parsing in the lite runtime to + reduce allocations and improve performance. + * Improved the performance of unknown fields in the lite runtime. + * Introduced UnsafeByteStrings to support zero-copy ByteString creation. + * Various bug fixes and improvements to the JSON support utility: + - Fixed a thread-safety bug. + - Added a new option “preservingProtoFieldNames” to JsonFormat. + - Added a new option “includingDefaultValueFields” to JsonFormat. + - Updated the JSON utility to comply with proto3 JSON specification. + + Python (Beta) + * Added proto3 JSON format utility. It includes support for all field types + and a few well-known types except for Any and Struct. + * Added runtime support for Any, Timestamp, Duration and FieldMask. + * [ ] is now accepted for repeated scalar fields in text format parser. + + Objective-C (Beta) + * Various bug-fixes and code tweaks to pass more strict compiler warnings. + * Now has conformance test coverage and is passing all tests. + + C# (Beta) + * Various bug-fixes. + * Code generation: Files generated in directories based on namespace. + * Code generation: Include comments from .proto files in XML doc + comments (naively) + * Code generation: Change organization/naming of "reflection class" (access + to file descriptor) + * Code generation and library: Add Parser property to MessageDescriptor, + and introduce a non-generic parser type. + * Library: Added TypeRegistry to support JSON parsing/formatting of Any. + * Library: Added Any.Pack/Unpack support. + * Library: Implemented JSON parsing. + + Javascript (Alpha) + * Added proto3 support for JavaScript. The runtime is written in pure + JavaScript and works in browsers and in Node.js. To generate JavaScript + code for your proto, invoke protoc with "--js_out". See js/README.md + for more build instructions. + 2015-08-26 version 3.0.0-beta-1 (C++/Java/Python/Ruby/Nano/Objective-C/C#) About Beta * This is the first beta release of protobuf v3.0.0. Not all languages -- cgit v1.2.3 From 7b08d49e9d8eea1097ce61b1295a45d4da00a144 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Mon, 11 Jan 2016 14:52:01 -0800 Subject: Fix typos in README.md/CHANGES.txt --- CHANGES.txt | 20 ++++++++++---------- cmake/README.md | 6 +++--- csharp/CHANGES.txt | 2 +- objectivec/README.md | 2 +- protoc-artifacts/README.md | 4 ++-- 5 files changed, 17 insertions(+), 17 deletions(-) (limited to 'CHANGES.txt') diff --git a/CHANGES.txt b/CHANGES.txt index c710cd5e..3023c812 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,6 @@ -2015-08-26 version 3.0.0-beta-1 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSript) +2015-08-26 version 3.0.0-beta-1 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) General - * Intorduced a new language implementaion: JavaScript. + * Introduced a new language implementation: JavaScript. * Added a new field option "json_name". By default proto field names are converted to "lowerCamelCase" in proto3 JSON format. This option can be used to override this behavior and specify a different JSON name for the @@ -176,7 +176,7 @@ still disable packed serialization by setting packed to false for now. * Added well-known type protos (any.proto, empty.proto, timestamp.proto, duration.proto, etc.). Users can import and use these protos just like - regular proto files. Addtional runtime support will be added for them in + regular proto files. Additional runtime support will be added for them in future releases (in the form of utility helper functions, or having them replaced by language specific types in generated code). * Added a "reserved" keyword in both proto2 and proto3 syntax. User can use @@ -218,7 +218,7 @@ https://github.com/jskeet/protobuf-csharp-port. The original project was frozen and all the new development will happen here. * Codegen plugin for C# was completely rewritten to C++ and is now an - intergral part of protoc. + integral part of protoc. * Some refactorings and cleanup has been applied to the C# runtime library. * Only proto2 is supported in C# at the moment, proto3 support is in progress and will likely bring significant breaking changes to the API. @@ -382,7 +382,7 @@ This release (v3.0.0-alpha-1) includes partial proto3 support for C++ and Java. Items 6 (well-known types) and 7 (JSON format) in the above feature - list are not impelmented. + list are not implemented. A new notion "syntax" is introduced to specify whether a .proto file uses proto2 or proto3: @@ -483,7 +483,7 @@ } * Files, services, enums, messages, methods and enum values can be marked as deprecated now. - * Added Support for list values, including lists of mesaages, when + * Added Support for list values, including lists of messages, when parsing text-formatted protos in C++ and Java. For example: foo: [1, 2, 3] @@ -563,7 +563,7 @@ Python * Added support for dynamic message creation. DescriptorDatabase, - DescriptorPool, and MessageFactory work like their C++ couterparts to + DescriptorPool, and MessageFactory work like their C++ counterparts to simplify Descriptor construction from *DescriptorProtos, and MessageFactory provides a message instance from a Descriptor. * Added pickle support for protobuf messages. @@ -577,7 +577,7 @@ 2011-05-01 version 2.4.1: C++ - * Fixed the frendship problem for old compilers to make the library now gcc 3 + * Fixed the friendship problem for old compilers to make the library now gcc 3 compatible again. * Fixed vcprojects/extract_includes.bat to extract compiler/plugin.h. @@ -844,7 +844,7 @@ * Fixed tendency for TextFormat's parsing to overflow the stack when parsing large string values. The underlying problem is with Java's regex implementation (which unfortunately uses recursive backtracking - rather than building an NFA). Worked around by making use of possesive + rather than building an NFA). Worked around by making use of possessive quantifiers. * Generated service classes now also generate pure interfaces. For a service Foo, Foo.Interface is a pure interface containing all of the service's @@ -858,7 +858,7 @@ RPC implementations will have to implement the new interfaces in order to support blocking mode. * New I/O methods parseDelimitedFrom(), mergeDelimitedFrom(), and - writeDelimitedTo() read and write "delemited" messages from/to a stream, + writeDelimitedTo() read and write "delimited" messages from/to a stream, meaning that the message size precedes the data. This way, you can write multiple messages to a stream without having to worry about delimiting them yourself. diff --git a/cmake/README.md b/cmake/README.md index b3042e6c..58aae8e9 100644 --- a/cmake/README.md +++ b/cmake/README.md @@ -28,11 +28,11 @@ Create a folder where protobuf headers/libraries/binaries will be installed afte C:\Path\to>mkdir install -If *cmake* command is not avaliable from *Command Prompt*, add it to system *PATH* variable: +If *cmake* command is not available from *Command Prompt*, add it to system *PATH* variable: C:\Path\to>set PATH=%PATH%;C:\Program Files (x86)\CMake\bin -If *git* command is not avaliable from *Command Prompt*, add it to system *PATH* variable: +If *git* command is not available from *Command Prompt*, add it to system *PATH* variable: C:\Path\to>set PATH=%PATH%;C:\Program Files\Git\cmd @@ -218,7 +218,7 @@ It sounds not so strange and it works. This will create the following folders under the *install* location: * bin - that contains protobuf *protoc.exe* compiler; - * inclue - that contains C++ headers and protobuf *.proto files; + * include - that contains C++ headers and protobuf *.proto files; * lib - that contains linking libraries and *CMake* configuration files for *protobuf* package. Now you can if needed: diff --git a/csharp/CHANGES.txt b/csharp/CHANGES.txt index b29debb8..a87cd4d5 100644 --- a/csharp/CHANGES.txt +++ b/csharp/CHANGES.txt @@ -128,7 +128,7 @@ Fixes: - Issue 12: default value for enumerate fields must be filled out Other: -- Rewrite of build using MSBbuild instead of NAnt +- Rewrite of build using MSbuild instead of NAnt - Moved to NUnit Version 2.2.8.0 - Changed to using secure .snk for releases diff --git a/objectivec/README.md b/objectivec/README.md index 452feca4..c7313e4f 100644 --- a/objectivec/README.md +++ b/objectivec/README.md @@ -10,7 +10,7 @@ This directory contains the Objective C Protocol Buffers runtime library. Requirements ------------ -The Objective C implemention requires: +The Objective C implementation requires: - Objective C 2.0 Runtime (32bit & 64bit iOS, 64bit OS X). - Xcode 7.0 (or later). diff --git a/protoc-artifacts/README.md b/protoc-artifacts/README.md index 06091cfe..4320f651 100644 --- a/protoc-artifacts/README.md +++ b/protoc-artifacts/README.md @@ -55,7 +55,7 @@ read [this page](http://central.sonatype.org/pages/apache-maven.html) on how to configure GPG and Sonatype account. You need to perform the deployment for every platform that you want to -suppport. DO NOT close the staging repository until you have done the +support. DO NOT close the staging repository until you have done the deployment for all platforms. Currently the following platforms are supported: - Linux (x86_32 and x86_64) - Windows (x86_32 and x86_64) with @@ -134,7 +134,7 @@ stored: ``` ### Tested build environments -We have succesfully built artifacts on the following environments: +We have successfully built artifacts on the following environments: - Linux x86_32 and x86_64: - Centos 6.6 (within Docker 1.6.1) - Ubuntu 14.04.2 64-bit -- cgit v1.2.3 From 81e75c1f992aa44712a76485764611716f3f4bca Mon Sep 17 00:00:00 2001 From: Josh Haberman Date: Wed, 30 Dec 2015 14:03:49 -0800 Subject: Some fixes for the most recent release notes. --- CHANGES.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'CHANGES.txt') diff --git a/CHANGES.txt b/CHANGES.txt index 3023c812..c3503fc8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,4 @@ -2015-08-26 version 3.0.0-beta-1 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) +2015-12-30 version 3.0.0-beta-2 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) General * Introduced a new language implementation: JavaScript. * Added a new field option "json_name". By default proto field names are @@ -35,6 +35,10 @@ and a few well-known types except for Any and Struct. * Added runtime support for Any, Timestamp, Duration and FieldMask. * [ ] is now accepted for repeated scalar fields in text format parser. + * Map fields now have proper O(1) performance for lookup/insert/delete + when using the Python/C++ implementation. They were previously using O(n) + search-based algorithms because the C++ reflection interface didn't + support true map operations. Objective-C (Beta) * Various bug-fixes and code tweaks to pass more strict compiler warnings. -- cgit v1.2.3 From 0e4d1ea1169cd4f0dd3b2d354be10aba09b6e59b Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Tue, 10 May 2016 17:32:35 -0700 Subject: Initial draft for changelog. --- CHANGES.txt | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'CHANGES.txt') diff --git a/CHANGES.txt b/CHANGES.txt index c3503fc8..9eef08d5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,55 @@ +2016-05-10 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) + General + * Supported Proto3 lite-runtime in C++/Java for mobile platforms. + * Any type now supports APIs to specify prefixes other than + type.googleapis.com + + C++ (Beta) + * Improved hash maps. TODO(gpike) + * Arenas + - Several inlined methods in Arena were moved to out-of-line to improve + build performance and code size. + - Added SpaceAllocatedAndUsed() to report both space used and allocated + - Added convenient class UnsafeArenaAllocatedRepeatedPtrFieldBackInserter + * Any + - TextFormat now expand the Any type rather than printing bytes. + * Performance optimizations and various bug fixes. + + Java (Beta) + * Introduced an ExperimentalApi annotation. Annotated APIs are experimental + and are subject to change in a backward incompatible way in future releases. + * Introduced zero-copy serialization as an ExperimentalApi. TODO(nathanmittler) + * Improved the performance for lite-runtime. TODO(dweis) + * Various bug fixes and small feature enhancement. + - Fixed stack overflow when in hashCode() for infinite recursive oneofs. + - Fixed the lazy field parsing in lite to merge rather than overwrite. + - TextFormat now supports reporting line/column numbers on errors. + + Python (Beta) + * TODO(jieluo) + + Objective-C (Beta) + * TODO(thomasvl) + + C# (Beta) + * TODO(jonskeet) + + Javascript (Alpha) + * TODO(haberman) + + C++/Java Lite (Alpha) + A new "lite" generator parameter was introduced in the protoc for C++ and + Java to for Proto3 syntax messages. Example usage: + + ./protoc --cpp_out=lite:$OUTPUT_PATH foo.proto + + The protoc will treat the current input and all the transitive dependencies + as LITE. The same generator parameter must be used to generate the + dependencies. + + In Proto3 syntax files, "optimized_for=LITE_RUNTIME" is no longer supported. + + 2015-12-30 version 3.0.0-beta-2 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) General * Introduced a new language implementation: JavaScript. -- cgit v1.2.3 From 5668e2e42611717142319e0cc4a22035a8be0364 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Wed, 11 May 2016 14:57:06 -0700 Subject: Fix typo. --- CHANGES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'CHANGES.txt') diff --git a/CHANGES.txt b/CHANGES.txt index 9eef08d5..7751c91e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -39,7 +39,7 @@ C++/Java Lite (Alpha) A new "lite" generator parameter was introduced in the protoc for C++ and - Java to for Proto3 syntax messages. Example usage: + Java for Proto3 syntax messages. Example usage: ./protoc --cpp_out=lite:$OUTPUT_PATH foo.proto -- cgit v1.2.3 From ede9cc4bd575d2c66df65a1d16ed692e533938e4 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Wed, 11 May 2016 15:30:21 -0700 Subject: Update comments for csharp, zero-copy and objc. --- CHANGES.txt | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 3 deletions(-) (limited to 'CHANGES.txt') diff --git a/CHANGES.txt b/CHANGES.txt index 7751c91e..7254b99c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -12,13 +12,33 @@ - Added SpaceAllocatedAndUsed() to report both space used and allocated - Added convenient class UnsafeArenaAllocatedRepeatedPtrFieldBackInserter * Any + - Allow custom type URL prefixes in Any packing. - TextFormat now expand the Any type rather than printing bytes. * Performance optimizations and various bug fixes. Java (Beta) * Introduced an ExperimentalApi annotation. Annotated APIs are experimental and are subject to change in a backward incompatible way in future releases. - * Introduced zero-copy serialization as an ExperimentalApi. TODO(nathanmittler) + * Introduced zero-copy serialization as an ExperimentalApi + - Introduction of the `ByteOutput` interface. This is similar to + `OutputStream` but provides semantics for lazy writing (i.e. no + immediate copy required) of fields that are considered to be immutable. + - `ByteString` now supports writing to a `ByteOutput`, which will directly + expose the internals of the `ByteString` (i.e. `byte[]` or `ByteBuffer`) + to the `ByteOutput` without copying. + - `CodedOutputStream` now supports writing to a `ByteOutput`. `ByteString` + instances that are too large to fit in the internal buffer will be + (lazily) written to the `ByteOutput` directly. + - This allows applications using large `ByteString` fields to avoid + duplication of these fields entirely. Such an application can supply a + `ByteOutput` that chains together the chunks received from + `CodedOutputStream` before forwarding them onto the IO system. + * Other related changes to `CodedOutputStream` + - Additional use of `sun.misc.Unsafe` where possible to perform fast + access to `byte[]` and `ByteBuffer` values and avoiding unnecessary + range checking. + - `ByteBuffer`-backed `CodedOutputStream` now writes directly to the + `ByteBuffer` rather than to an intermediate array. * Improved the performance for lite-runtime. TODO(dweis) * Various bug fixes and small feature enhancement. - Fixed stack overflow when in hashCode() for infinite recursive oneofs. @@ -29,10 +49,42 @@ * TODO(jieluo) Objective-C (Beta) - * TODO(thomasvl) + * Proto comments now come over as HeaderDoc comments in the generated sources + so Xcode can pick them up and display them. + * The library headers have been updated to use HeaderDoc comments so Xcode can + pick them up and display them. + * The per message and per field overhead in both generated code and runtime + object sizes was reduced. + * Generated code now include deprecated annotations when the proto file + included them. C# (Beta) - * TODO(jonskeet) + In general: some changes are breaking, which require regenerating messages. + Most user-written code will not be impacted *except* for the renaming of enum + values. + + * Allow custom type URL prefixes in `Any` packing, and ignore them when + unpacking + * `protoc` is now in a separate NuGet package (Google.Protobuf.Tools) + * New option: `internal_access` to generate internal classes + * Enum values are now PascalCased, and if there's a prefix which matches the + name of the enum, that is removed (so an enum `COLOR` with a value + `COLOR_BLUE` would generate a value of just `Blue`). An option + (`legacy_enum_values`) is temporarily available to disable this, but the + option will be removed for GA. + * `json_name` option is now honored + * If group tags are encountered when parsing, they are validated more + thoroughly (although we don't support actual groups) + * NuGet dependencies are better specified + * Breaking: `Preconditions` is renamed to `ProtoPreconditions` + * Breaking: `GeneratedCodeInfo` is renamed to `GeneratedClrTypeInfo` + * `JsonFormatter` now allows writing to a `TextWriter` + * New interface, `ICustomDiagnosticMessage` to allow more compact + representations from `ToString` + * `CodedInputStream` and `CodedOutputStream` now implement `IDisposable`, + which simply disposes of the streams they were constructed with + * Map fields no longer support null values (in line with other languages) + * Improvements in JSON formatting and parsing Javascript (Alpha) * TODO(haberman) -- cgit v1.2.3