* Added code for the new PHP extension.
* Removed a bunch of unused variables shown by compiler warnings.
* Test protobuf2 in the tests.
* Updated upb version to fix a goldenfile test.
* Added pure-PHP changes. Extension now passes all tests.
* Enabled protobuf2 for all C extension tests.
* Fixed pure=PHP lib: full names no longer start with '.'.
* Added files for new extension to Makefile.am.
* Downgraded make-preload.py to python 2, since python3 isn't available in the php_all Kokoro image.
* Disable tests of new C extension with PHP 5.x.
* Also do not compile the extension for PHP5.
* Accept version 5.*.*, and use /usr/bin/python.
* Addressed PR comments.
* Addressed PR comments.
* Added "const" to a parameter and fixed a memory leak seen in Valgrind.
* Stop testing the C extension for PHP5.
The next release of protobuf will deprecate the C extension
for PHP5, see:
https://github.com/protocolbuffers/protobuf/issues/7525
* Made the PHP5.6 Mac test only exercise pure-PHP.
* Build protoc for PHP 5.6 test.
* Rewrote bundling script in PHP to avoid dependency on Python.
* A few more fixes.
* Fixed int32/int64 behavior for 32-bit builds.
* Match more PHP versions in testing script.
* Use phpize --clean before building extension.
* Force-delete configure.in to avoid phpize problems cross-version.
* Delete both configure.ac and configure.in.
* enable compatibility mode in codegen
* regenerate protos
* improve readability
* more robust way of figuring out path to old C# compiler
* add recent C# changes
* Compiler changes (extensions)
* Generated changes (extensions)
* Library changes (extensions)
* Adjusted a summary to indicate ContainingType can be null for extensions
* Compiler changes (custom option review + access level review)
* Generated code changes (custom options + access review)
* Library changes (custom options + access review)
* Support C# 6 with library changes
* Access HasValue by property
* Set access level of all extension classes to internal (revert in next PR)
* Added null checks to custom options
* Rebase on master and regenerate Conformance
* Removed second dictionary from ExtensionSet
* Rebased compiler changes
* Rebased generated code changes
* Rebased library changes + review changes
* Add more safety checks to extension accessors
* Remove instances where extension sets were unnecessarily allocated
* Remove cleared items from sets
Empty sets are now made null
IExtensionMessage -> IExtendableMessage
* Remove dead code from IExtensionValue impls
* Clean both repeated and single value extensions
* Add GetOrRegister method for repeated fields and allow clearing repeated extensions
* Add type safe ClearExtension methods, remove non-generic IExtendableMessage interface.
* Simplify ExtensionSet.TryMergeFieldFrom
* Rebase on master to resolve conflicts
* Fix Makefile.am
* Add ObjectIntPair to Makefile.am
* Some fixes to make the code work in google3.
* Removed plugin.h.
* Some more fixes to be namespace-independent.
* More fixes for namespace independence.
* A few final fixes.
* Another fix (hide ToUpper from Copybara).
* Fix for charp_unittest.
* `csharp_options`: Added `Options` to encapsulate generator options.
Supported options for now - file_extension, base_namespace
* `{Blah}Generator`: Now accept `Options*` as parameter to constructor
* `csharp_generator.cc`: Parse and populate options
* `Makefile.am`: Added `csharp_options.h`
* `extract_includes.bat.in`: Added `csharp_options.h`
Refactoring code to two commits. This is the first commit
General
* License changed from Apache 2.0 to New BSD.
* It is now possible to define custom "options", which are basically
annotations which may be placed on definitions in a .proto file.
For example, you might define a field option called "foo" like so:
import "google/protobuf/descriptor.proto"
extend google.protobuf.FieldOptions {
optional string foo = 12345;
}
Then you annotate a field using the "foo" option:
message MyMessage {
optional int32 some_field = 1 [(foo) = "bar"]
}
The value of this option is then visible via the message's
Descriptor:
const FieldDescriptor* field =
MyMessage::descriptor()->FindFieldByName("some_field");
assert(field->options().GetExtension(foo) == "bar");
This feature has been implemented and tested in C++ and Java.
Other languages may or may not need to do extra work to support
custom options, depending on how they construct descriptors.
C++
* Fixed some GCC warnings that only occur when using -pedantic.
* Improved static initialization code, making ordering more
predictable among other things.
* TextFormat will no longer accept messages which contain multiple
instances of a singular field. Previously, the latter instance
would overwrite the former.
* Now works on systems that don't have hash_map.
Python
* Strings now use the "unicode" type rather than the "str" type.
String fields may still be assigned ASCII "str" values; they will
automatically be converted.
* Adding a property to an object representing a repeated field now
raises an exception. For example:
# No longer works (and never should have).
message.some_repeated_field.foo = 1