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 | |
233 2016-05-16 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSc
ript) | 1 2016-05-16 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSc
ript) |
234 General | 2 General |
235 * Supported Proto3 lite-runtime in C++/Java for mobile platforms. | 3 * Supported Proto3 lite-runtime in C++/Java for mobile platforms. |
236 * Any type now supports APIs to specify prefixes other than | 4 * Any type now supports APIs to specify prefixes other than |
237 type.googleapis.com | 5 type.googleapis.com |
238 * Removed javanano_use_deprecated_package option; Nano will always has its own | 6 * Removed javanano_use_deprecated_package option; Nano will always has its own |
239 ".nano" package. | 7 ".nano" package. |
240 | 8 |
241 C++ (Beta) | 9 C++ (Beta) |
242 * Improved hash maps. | 10 * Improved hash maps. |
(...skipping 1162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1405 contain extra zeros. | 1173 contain extra zeros. |
1406 * Fix Python service CallMethod() implementation. | 1174 * Fix Python service CallMethod() implementation. |
1407 | 1175 |
1408 Other | 1176 Other |
1409 * Improved readmes. | 1177 * Improved readmes. |
1410 * VIM syntax highlighting improvements. | 1178 * VIM syntax highlighting improvements. |
1411 | 1179 |
1412 2008-07-07 version 2.0.0: | 1180 2008-07-07 version 2.0.0: |
1413 | 1181 |
1414 * First public release. | 1182 * First public release. |
OLD | NEW |