Changelog for 3.5.0
diff --git a/CHANGES.txt b/CHANGES.txt
index c83da2d..b6964f8 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,78 @@
+2017-11-09 version 3.5.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
+  Planned Future Changes
+  * Make C++ implementation C++11 only: we plan to require C++11 to build
+    protobuf code starting from 3.6.0 release. Please join this github issue:
+    https://github.com/google/protobuf/issues/2780 to provide your feedback.
+
+  General
+  * Unknown fields are now preserved in proto3 for most of the language
+    implementations for proto3 by default. See the per-language section for
+    details.
+  * reserve keyword are now supported in enums
+
+  C++
+  * Proto3 messages are now preserving unknown fields by default. If you rely on
+    unknowns fields being dropped. Please use DiscardUnknownFields() explicitly.
+  * Deprecated the unsafe_arena_release_* and unsafe_arena_add_allocated_*
+    methods for string fields.
+  * Added move constructor and move assignment to RepeatedField,
+    RepeatedPtrField and google::protobuf::Any.
+  * Added perfect forwarding in Arena::CreateMessage
+  * In-progress experimental support for implicit weak fields with lite protos.
+    This feature allows the linker to strip out more unused messages and reduce
+    binary size.
+  * Various performance optimizations.
+
+  Java
+  * Proto3 messages are now preserving unknown fields by default. If you’d like
+    to drop unknown fields, please use the DiscardUnknownFieldsParser  API. For
+    example:
+  * Parser<Foo> parser = DiscardUnknownFieldsParser.wrap(Foo.parser());
+  * Foo foo = parser.parseFrom(input);
+  * Added a new CodedInputStream decoder for Iterable<ByteBuffer> with direct
+    ByteBuffers.
+  * TextFormat now prints unknown length-delimited fields as messages if
+    possible.
+  * FieldMaskUtil.merge() no longer creates unnecessary empty messages when a
+    message field is unset in both source message and destination message.
+  * Various performance optimizations.
+
+  Python
+  * Proto3 messages are now preserving unknown fields by default. Use
+    message.DiscardUnknownFields() to drop unknown fields.
+  * Add FieldDescriptor.file in generated code.
+  * Add descriptor pool FindOneofByName in pure python.
+  * Change unknown enum values into unknown field set .
+  * Add more Python dict/list compatibility for Struct/ListValue.
+  * Add utf-8 support for text_format.Merge()/Parse().
+  * Support numeric unknown enum values for proto3 JSON format.
+  * Add warning for Unexpected end-group tag in cpp extension.
+
+  PHP
+  * Proto3 messages are now preserving unknown fields.
+  * Provide well known type messages in runtime.
+  * Add prefix ‘PB’ to generated class of reserved names.
+  * Fixed all conformance tests for encode/decode json in php runtime. C
+    extension needs more work.
+
+  Objective-C
+  * Fixed some issues around copying of messages with unknown fields and then
+    mutating the unknown fields in the copy.
+
+  C#
+  * Added unknown field support in JsonParser.
+  * Fixed oneof message field merge.
+
+  Ruby
+  * Unknown fields are now preserved by default.
+  * Fixed several bugs for segment fault.
+
+  Javascript
+  * Decoder can handle both paced and unpacked data no matter how the proto is
+    defined.
+  * Decoder now accept long varint for 32 bit integers.
+
+
 2017-08-14 version 3.4.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
   Planned Future Changes
   * There are some changes that are not included in this release but are planned