blob: ed7ed33b4b5067cdfc9ff48b16a299f80f5237bd [file] [log] [blame]
kenton@google.com24bf56f2008-09-24 20:31:01 +000012008-09-24 version 2.0.2:
2
3 General
4 * License changed from Apache 2.0 to New BSD.
5 * It is now possible to define custom "options", which are basically
6 annotations which may be placed on definitions in a .proto file.
7 For example, you might define a field option called "foo" like so:
8 import "google/protobuf/descriptor.proto"
9 extend google.protobuf.FieldOptions {
10 optional string foo = 12345;
11 }
12 Then you annotate a field using the "foo" option:
13 message MyMessage {
14 optional int32 some_field = 1 [(foo) = "bar"]
15 }
16 The value of this option is then visible via the message's
17 Descriptor:
18 const FieldDescriptor* field =
19 MyMessage::descriptor()->FindFieldByName("some_field");
20 assert(field->options().GetExtension(foo) == "bar");
21 This feature has been implemented and tested in C++ and Java.
22 Other languages may or may not need to do extra work to support
23 custom options, depending on how they construct descriptors.
24
25 C++
26 * Fixed some GCC warnings that only occur when using -pedantic.
27 * Improved static initialization code, making ordering more
28 predictable among other things.
29 * TextFormat will no longer accept messages which contain multiple
30 instances of a singular field. Previously, the latter instance
31 would overwrite the former.
32 * Now works on systems that don't have hash_map.
33
34 Java
35 * Print @Override annotation in generated code where appropriate.
36
37 Python
38 * Strings now use the "unicode" type rather than the "str" type.
39 String fields may still be assigned ASCII "str" values; they will
40 automatically be converted.
41 * Adding a property to an object representing a repeated field now
42 raises an exception. For example:
43 # No longer works (and never should have).
44 message.some_repeated_field.foo = 1
45
temporala44f3c32008-08-15 18:32:02 +0000462008-08-15 version 2.0.1:
47
48 protoc
49 * New flags --encode and --decode can be used to convert between protobuf text
50 format and binary format from the command-line.
51 * New flag --descriptor_set_out can be used to write FileDescriptorProtos for
52 all parsed files directly into a single output file. This is particularly
53 useful if you wish to parse .proto files from programs written in languages
54 other than C++: just run protoc as a background process and have it output
55 a FileDescriptorList, then parse that natively.
56 * Improved error message when an enum value's name conflicts with another
57 symbol defined in the enum type's scope, e.g. if two enum types declared
58 in the same scope have values with the same name. This is disallowed for
59 compatibility with C++, but this wasn't clear from the error.
60 * Fixed absolute output paths on Windows.
61 * Allow trailing slashes in --proto_path mappings.
62
63 C++
64 * Reflection objects are now per-class rather than per-instance. To make this
65 possible, the Reflection interface had to be changed such that all methods
66 take the Message instance as a parameter. This change improves performance
67 significantly in memory-bandwidth-limited use cases, since it makes the
68 message objects smaller. Note that source-incompatible interface changes
69 like this will not be made again after the library leaves beta.
70 * Heuristically detect sub-messages when printing unknown fields.
71 * Fix static initialization ordering bug that caused crashes at startup when
72 compiling on Mac with static linking.
73 * Fixed TokenizerTest when compiling with -DNDEBUG on Linux.
74 * Fixed incorrect definition of kint32min.
75 * Fix bytes type setter to work with byte sequences with embedded NULLs.
76 * Other irrelevant tweaks.
77
78 Java
79 * Fixed UnknownFieldSet's parsing of varints larger than 32 bits.
80 * Fixed TextFormat's parsing of "inf" and "nan".
81 * Fixed TextFormat's parsing of comments.
82 * Added info to Java POM that will be required when we upload the
83 package to a Maven repo.
84
85 Python
86 * MergeFrom(message) and CopyFrom(message) are now implemented.
87 * SerializeToString() raises an exception if the message is missing required
88 fields.
89 * Code organization improvements.
90 * Fixed doc comments for RpcController and RpcChannel, which had somehow been
91 swapped.
92 * Fixed text_format_test on Windows where floating-point exponents sometimes
93 contain extra zeros.
94 * Fix Python service CallMethod() implementation.
95
96 Other
97 * Improved readmes.
98 * VIM syntax highlighting improvements.
99
temporal40ee5512008-07-10 02:12:20 +00001002008-07-07 version 2.0.0:
101
102 * First public release.