OLD | NEW |
| 1 2016-09-23 version 3.1.0 (C++/Java/Python/PHP/Ruby/Objective-C/C#/JavaScript/Lit
e) |
| 2 General |
| 3 * Proto3 support in PHP (alpha). |
| 4 * Various bug fixes. |
| 5 |
| 6 C++ |
| 7 * Added MessageLite::ByteSizeLong() that’s equivalent to |
| 8 MessageLite::ByteSize() but returns the value in size_t. Useful to check |
| 9 whether a message is over the 2G size limit that protobuf can support. |
| 10 * Moved default_instances to global variables. This allows default_instance |
| 11 addresses to be known at compile time. |
| 12 * Adding missing generic gcc 64-bit atomicops. |
| 13 * Restore New*Callback into google::protobuf namespace since these are used |
| 14 by the service stubs code |
| 15 * JSON support. |
| 16 * Fixed some conformance issues. |
| 17 * Fixed a JSON serialization bug for bytes fields. |
| 18 |
| 19 Java |
| 20 * Fixed a bug in TextFormat that doesn’t accept empty repeated fields (i.e., |
| 21 “field: [ ]”). |
| 22 * JSON support |
| 23 * Fixed JsonFormat to do correct snake_case-to-camelCase conversion for |
| 24 non-style-conforming field names. |
| 25 * Fixed JsonFormat to parse empty Any message correctly. |
| 26 * Added an option to JsonFormat.Parser to ignore unknown fields. |
| 27 * Experimental API |
| 28 * Added UnsafeByteOperations.unsafeWrap(byte[]) to wrap a byte array into |
| 29 ByteString without copy. |
| 30 |
| 31 Python |
| 32 * JSON support |
| 33 * Fixed some conformance issues. |
| 34 |
| 35 PHP (Alpha) |
| 36 * We have added the proto3 support for PHP via both a pure PHP package and a |
| 37 native c extension. The pure PHP package is intended to provide usability |
| 38 to wider range of PHP platforms, while the c extension is intended to |
| 39 provide higher performance. Both implementations provide the same runtime |
| 40 APIs and share the same generated code. Users don’t need to re-generate |
| 41 code for the same proto definition when they want to switch the |
| 42 implementation later. The pure PHP package is included in the php/src |
| 43 directory, and the c extension is included in the php/ext directory. |
| 44 |
| 45 Both implementations provide idiomatic PHP APIs: |
| 46 * All messages and enums are defined as PHP classes. |
| 47 * All message fields can only be accessed via getter/setter. |
| 48 * Both repeated field elements and map elements are stored in containers |
| 49 that act like a normal PHP array. |
| 50 |
| 51 Unlike several existing third-party PHP implementations for protobuf, our |
| 52 implementations are built on a "strongly-typed" philosophy: message fields |
| 53 and array/map containers will throw exceptions eagerly when values of the |
| 54 incorrect type (not including those that can be type converted, e.g., |
| 55 double <-> integer <-> numeric string) are inserted. |
| 56 |
| 57 Currently, pure PHP runtime supports php5.5, 5.6 and 7 on linux. C |
| 58 extension runtime supports php5.5 and 5.6 on linux. |
| 59 |
| 60 See php/README.md for more details about installment. See |
| 61 https://developers.google.com/protocol-buffers/docs/phptutorial for more |
| 62 details about APIs. |
| 63 |
| 64 Objective-C |
| 65 * Helpers are now provided for working the the Any well known type (see |
| 66 GPBWellKnownTypes.h for the api additions). |
| 67 * Some improvements in startup code (especially when extensions aren’t used). |
| 68 |
| 69 Javascript |
| 70 * Fixed missing import of jspb.Map |
| 71 * Fixed valueWriterFn variable name |
| 72 |
| 73 Ruby |
| 74 * Fixed hash computation for JRuby's RubyMessage |
| 75 * Make sure map parsing frames are GC-rooted. |
| 76 * Added API support for well-known types. |
| 77 |
| 78 C# |
| 79 * Removed check on dependency in the C# reflection API. |
| 80 |
| 81 2016-09-06 version 3.0.2 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript/Lite) |
| 82 General |
| 83 * Various bug fixes. |
| 84 |
| 85 Objective C |
| 86 * Fix for oneofs in proto3 syntax files where fields were set to the zero |
| 87 value. |
| 88 * Fix for embedded null character in strings. |
| 89 * CocoaDocs support |
| 90 |
| 91 Ruby |
| 92 * Fixed memory corruption bug in parsing that could occur under GC pressure. |
| 93 |
| 94 Javascript |
| 95 * jspb.Map is now properly exported to CommonJS modules. |
| 96 |
| 97 C# |
| 98 * Removed legacy_enum_values flag. |
| 99 |
| 100 |
| 101 2016-07-27 version 3.0.0 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript/Lite) |
| 102 General |
| 103 * This log only contains changes since the beta-4 release. Summarized change |
| 104 log since the last stable release (v2.6.1) can be found in the github |
| 105 release page. |
| 106 |
| 107 Compatibility Notice |
| 108 * v3.0.0 is the first API stable release of the v3.x series. We do not expect |
| 109 any future API breaking changes. |
| 110 * For C++, Java Lite and Objective-C, source level compatibility is |
| 111 guaranteed. Upgrading from v3.0.0 to newer minor version releases will be |
| 112 source compatible. For example, if your code compiles against protobuf |
| 113 v3.0.0, it will continue to compile after you upgrade protobuf library to |
| 114 v3.1.0. |
| 115 * For other languages, both source level compatibility and binary level |
| 116 compatibility are guaranteed. For example, if you have a Java binary built |
| 117 against protobuf v3.0.0. After switching the protobuf runtime binary to |
| 118 v3.1.0, your built binary should continue to work. |
| 119 * Compatibility is only guaranteed for documented API and documented |
| 120 behaviors. If you are using undocumented API (e.g., use anything in the C++ |
| 121 internal namespace), it can be broken by minor version releases in an |
| 122 undetermined manner. |
| 123 |
| 124 Ruby |
| 125 * When you assign a string field `a.string_field = "X"`, we now call |
| 126 #encode(UTF-8) on the string and freeze the copy. This saves you from |
| 127 needing to ensure the string is already encoded as UTF-8. It also prevents |
| 128 you from mutating the string after it has been assigned (this is how we |
| 129 ensure it stays valid UTF-8). |
| 130 * The generated file for `foo.proto` is now `foo_pb.rb` instead of just |
| 131 `foo.rb`. This makes it easier to see which imports/requires are from |
| 132 protobuf generated code, and also prevents conflicts with any `foo.rb` file |
| 133 you might have written directly in Ruby. It is a backward-incompatible |
| 134 change: you will need to update all of your `require` statements. |
| 135 * For package names like `foo_bar`, we now translate this to the Ruby module |
| 136 `FooBar`. This is more idiomatic Ruby than what we used to do (`Foo_bar`). |
| 137 |
| 138 JavaScript |
| 139 * Scalar fields like numbers and boolean now return defaults instead of |
| 140 `undefined` or `null` when they are unset. You can test for presence |
| 141 explicitly by calling `hasFoo()`, which we now generate for scalar fields. |
| 142 |
| 143 Java Lite |
| 144 * Java Lite is now implemented as a separate plugin, maintained in the |
| 145 `javalite` branch. Both lite runtime and protoc artifacts will be available |
| 146 in Maven. |
| 147 |
| 148 C# |
| 149 * Target platforms now .NET 4.5, selected portable subsets and .NET Core. |
| 150 * legacy_enum_values option is no longer supported. |
| 151 |
| 152 2016-07-15 version 3.0.0-beta-4 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript) |
| 153 General |
| 154 * Added a deterministic serialization API for C++. The deterministic |
| 155 serialization guarantees that given a binary, equal messages will be |
| 156 serialized to the same bytes. This allows applications like MapReduce to |
| 157 group equal messages based on the serialized bytes. The deterministic |
| 158 serialization is, however, NOT canonical across languages; it is also |
| 159 unstable across different builds with schema changes due to unknown fields. |
| 160 Users who need canonical serialization, e.g. persistent storage in a |
| 161 canonical form, fingerprinting, etc, should define their own |
| 162 canonicalization specification and implement the serializer using reflection |
| 163 APIs rather than relying on this API. |
| 164 * Added OneofOptions. You can now define custom options for oneof groups. |
| 165 import "google/protobuf/descriptor.proto"; |
| 166 extend google.protobuf.OneofOptions { |
| 167 optional int32 my_oneof_extension = 12345; |
| 168 } |
| 169 message Foo { |
| 170 oneof oneof_group { |
| 171 (my_oneof_extension) = 54321; |
| 172 ... |
| 173 } |
| 174 } |
| 175 |
| 176 C++ (beta) |
| 177 * Introduced a deterministic serialization API in |
| 178 CodedOutputStream::SetSerializationDeterministic(bool). See the notes about |
| 179 deterministic serialization in the General section. |
| 180 * Added google::protobuf::Map::swap() to swap two map fields. |
| 181 * Fixed a memory leak when calling Reflection::ReleaseMessage() on a message |
| 182 allocated on arena. |
| 183 * Improved error reporting when parsing text format protos. |
| 184 * JSON |
| 185 - Added a new parser option to ignore unknown fields when parsing JSON. |
| 186 - Added convenient methods for message to/from JSON conversion. |
| 187 * Various performance optimizations. |
| 188 |
| 189 Java (beta) |
| 190 * File option "java_generate_equals_and_hash" is now deprecated. equals() and |
| 191 hashCode() methods are generated by default. |
| 192 * Added a new JSON printer option "omittingInsignificantWhitespace" to produce |
| 193 a more compact JSON output. The printer will pretty-print by default. |
| 194 * Updated Java runtime to be compatible with 2.5.0/2.6.1 generated protos. |
| 195 |
| 196 Python (beta) |
| 197 * Added support to pretty print Any messages in text format. |
| 198 * Added a flag to ignore unknown fields when parsing JSON. |
| 199 * Bugfix: "@type" field of a JSON Any message is now correctly put before |
| 200 other fields. |
| 201 |
| 202 Objective-C (beta) |
| 203 * Updated the code to support compiling with more compiler warnings |
| 204 enabled. (Issue 1616) |
| 205 * Exposing more detailed errors for parsing failures. (PR 1623) |
| 206 * Small (breaking) change to the naming of some methods on the support classes |
| 207 for map<>. There were collisions with the system provided KVO support, so |
| 208 the names were changed to avoid those issues. (PR 1699) |
| 209 * Fixed for proper Swift bridging of error handling during parsing. (PR 1712) |
| 210 * Complete support for generating sources that will go into a Framework and |
| 211 depend on generated sources from other Frameworks. (Issue 1457) |
| 212 |
| 213 C# (beta) |
| 214 * RepeatedField optimizations. |
| 215 * Support for .NET Core. |
| 216 * Minor bug fixes. |
| 217 * Ability to format a single value in JsonFormatter (advanced usage only). |
| 218 * Modifications to attributes applied to generated code. |
| 219 |
| 220 Javascript (alpha) |
| 221 * Maps now have a real map API instead of being treated as repeated fields. |
| 222 * Well-known types are now provided in the google-protobuf package, and the |
| 223 code generator knows to require() them from that package. |
| 224 * Bugfix: non-canonical varints are correctly decoded. |
| 225 |
| 226 Ruby (alpha) |
| 227 * Accessors for oneof fields now return default values instead of nil. |
| 228 |
| 229 Java Lite |
| 230 * Java lite support is removed from protocol compiler. It will be supported |
| 231 as a protocol compiler plugin in a separate code branch. |
| 232 |
1 2016-05-16 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSc
ript) | 233 2016-05-16 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSc
ript) |
2 General | 234 General |
3 * Supported Proto3 lite-runtime in C++/Java for mobile platforms. | 235 * Supported Proto3 lite-runtime in C++/Java for mobile platforms. |
4 * Any type now supports APIs to specify prefixes other than | 236 * Any type now supports APIs to specify prefixes other than |
5 type.googleapis.com | 237 type.googleapis.com |
6 * Removed javanano_use_deprecated_package option; Nano will always has its own | 238 * Removed javanano_use_deprecated_package option; Nano will always has its own |
7 ".nano" package. | 239 ".nano" package. |
8 | 240 |
9 C++ (Beta) | 241 C++ (Beta) |
10 * Improved hash maps. | 242 * Improved hash maps. |
(...skipping 1162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1173 contain extra zeros. | 1405 contain extra zeros. |
1174 * Fix Python service CallMethod() implementation. | 1406 * Fix Python service CallMethod() implementation. |
1175 | 1407 |
1176 Other | 1408 Other |
1177 * Improved readmes. | 1409 * Improved readmes. |
1178 * VIM syntax highlighting improvements. | 1410 * VIM syntax highlighting improvements. |
1179 | 1411 |
1180 2008-07-07 version 2.0.0: | 1412 2008-07-07 version 2.0.0: |
1181 | 1413 |
1182 * First public release. | 1414 * First public release. |
OLD | NEW |