KUDU-1296. Release notes for 0.7.0

Reviewed-on: http://gerrit.cloudera.org:8080/2062
Reviewed-by: Jean-Daniel Cryans
Tested-by: Jean-Daniel Cryans
Reviewed-by: Adar Dembo <adar@cloudera.com>
(cherry picked from commit 2d029b34e78b0f880f85abf63499fa9dc4037f50)

Change-Id: I863475c55645897df05b3ce51967abf317ffcf56
Reviewed-on: http://gerrit.cloudera.org:8080/2087
Reviewed-by: Jean-Daniel Cryans
Tested-by: Jean-Daniel Cryans
diff --git a/docs/release_notes.adoc b/docs/release_notes.adoc
index e8430dd..b850b31 100644
--- a/docs/release_notes.adoc
+++ b/docs/release_notes.adoc
@@ -53,6 +53,83 @@
 applications that are difficult or impossible to implement on current-generation
 Hadoop storage technologies.
 
+[0.7.0]
+=== Release notes specific to 0.7.0
+
+Kudu 0.7.0 is the first release done as part of the Apache Incubator and includes a number
+of changes, new features, improvements, and fixes.
+
+See also +++<a href="https://issues.cloudera.org/issues/?jql=project%20%3D%20Kudu%20AND%20status%20in%20
+(Resolved)%20AND%20fixVersion%20%3D%200.7.0%20ORDER%20BY%20key%20ASC">JIRAs resolved
+for Kudu 0.7.0</a>+++ and +++<a href="https://github.com/apache/incubator-kudu/compare/branch-0.6.0...branch-0.7.0">Git
+changes between 0.6.0 and 0.7.0</a>+++.
+
+[0.7.0_incompatible_changes]
+==== Incompatible changes
+
+. The C++ client includes a new API, `KuduScanBatch`, which performs better when a
+large number of small rows are returned in a batch. The old API of `vector<KuduRowResult>`
+is deprecated.
++
+NOTE: This change is API-compatible but *not* ABI-compatible.
+
+. The default replication factor has been changed from 1 to 3. Existing tables will
+continue to use the replication factor they were created with. Applications that create
+tables may not work properly if they assume a replication factor of 1 and fewer than
+3 replicas are available. To use the previous default replication factor, start the
+master with the configuration flag `--default_num_replicas=1`.
+
+. The Python client has been completely rewritten, with a focus on improving code
+quality and testing. The read path (scanners) has been improved by adding many of
+the features already supported by the C++ and Java clients. The Python client is no
+longer considered experimental.
+
+[0.7.0_new_features]
+==== New features
+
+. With the goal of Spark integration in mind, a new `kuduRDD` API has been added,
+which wraps `newAPIHadoopRDD` and includes a default source for Spark SQL.
+
+[0.7.0_improvements]
+==== Improvements
+
+. The Java client includes new methods `countPendingErrors()` and
+`getPendingErrors()` on `KuduSession`. These methods allow you to count and
+retrieve outstanding row errors when configuring sessions with `AUTO_FLUSH_BACKGROUND`.
+
+. New server-level metrics allow you to monitor CPU usage and context switching.
+
+[0.7.0_fixed_issues]
+==== Fixed Issues
+
+. https://issues.cloudera.org/browse/KUDU-1288[KUDU-1288] fixes a severe file descriptor
+leak, which could previously only be resolved by restarting the tablet server.
+
+. https://issues.cloudera.org/browse/KUDU-1250[KUDU-1250] fixes a hang in the Java
+client when processing an in-flight batch and the previous batch encountered an error.
+
+[0.7.0_changes]
+==== Other noteworthy changes
+
+. The file block manager's performance was improved, but it is still not recommended for
+real-world use.
+
+. The master now attempts to spread tablets more evenly across the cluster during
+table creation. This has no impact on existing tables, but will improve the speed
+at which under-replicated tabletsare re-replicated after a tablet server failure.
+
+. All licensing documents have been modified to adhere to ASF guidelines.
+
+. Kudu now requires an out-of-tree build directory. Review the build instructions
+for additional information.
+
+. The `C++` client library is now explicitly built against the
+link:https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html[old gcc5 ABI].
+If you use gcc5 to build a Kudu application, your application must use the old ABI
+as well. This is typically achieved by defining the `_GLIBCXX_USE_CXX11_ABI` macro
+at compile-time when building your application. For more information, see the
+previous link and link:http://developerblog.redhat.com/2015/02/05/gcc5-and-the-c11-abi/.
+
 [0.6.0]
 === Release notes specific to 0.6.0
 
@@ -161,7 +238,7 @@
 
 === Schema Limitations
 * Testing with more than 20 columns has been limited.
-*  Kudu is primarily designed for analytic use cases and, in the beta release,
+* Kudu is primarily designed for analytic use cases and, in the beta release,
 you are likely to encounter issues if a single row contains multiple kilobytes of data.
 * The columns which make up the primary key must be listed first in the schema.
 * Key columns cannot be altered. You must drop and recreate a table to change its keys.
@@ -216,11 +293,10 @@
 * Data encryption is not included in the public beta.
 
 === Client and API Limitations
-* Potentially-incompatible C++ and Java API changes may be required during the
+* Potentially-incompatible C++, Java and Python API changes may be required during the
 public beta.
 * `ALTER TABLE` is not yet fully supported via the client APIs. More `ALTER TABLE`
 operations will become available in future betas.
-* The Python API is experimental and not supported.
 
 === Application Integration Limitations
 * The Spark DataFrame implementation is not yet complete.