From 5348e8252e133611166edec5112135534d0c8e4d Mon Sep 17 00:00:00 2001
From: Steven Luscher <steveluscher@fb.com>
Date: Mon, 11 Apr 2016 17:35:20 -0700
Subject: [PATCH] Bump versions to 0.8.0 for release and update CHANGELOG

Summary: Closes https://github.com/facebook/relay/pull/1042

Reviewed By: wincent

Differential Revision: D3165490

Pulled By: steveluscher

fb-gh-sync-id: e0f6a3c1016af0ca00757109ea7498b747a891da
fbshipit-source-id: e0f6a3c1016af0ca00757109ea7498b747a891da
---
 CHANGELOG.md                            | 53 +++++++++++++++++++++++--
 package.json                            |  4 +-
 scripts/babel-relay-plugin/package.json |  2 +-
 website/core/SiteData.js                |  2 +-
 4 files changed, 54 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6ce4df66e2ba1..4cf5c8ec79541 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,12 +1,59 @@
 ## master
 
-## Unreleased
-
+## 0.8.0 (April 11, 2016)
+
+* Added a React Native / Relay TodoMVC example app.
+* You can now render multiple Relay apps at once, each with their own store.
+  The following APIs are early versions and are as of yet undocumented so please
+  use them with caution.
+  * Added `Relay.Environment`. `Relay.Store` is now simply a global instance of
+    `RelayEnvironment`. To create your own isolated store and network subsystem,
+    create a `new RelayEnvironment()` and make use of it wherever `environment`
+    is required.
+  * Use `Relay.Environment#injectNetworkLayer` to inject a custom network layer
+    for use within the context of a particular `Relay.Environment` instance.
+  * Added `Relay.ReadyStateRenderer`. This component takes in an instance of
+    `Relay.Environment`, a `queryConfig` that conforms to the
+    `RelayQueryConfigInterface`, and a Relay `container`. It renders
+    synchronously based on the supplied `readyState`. This primitive enables you
+    to create alternatives to `Relay.Renderer` that fetch and handle data in a
+    custom way (eg. for server rendered applications).
+  * Added `Relay.Renderer` &ndash; a replacement for `Relay.RootContainer` that
+    composes a `Relay.ReadyStateRenderer` and performs data fetching.
+    `Relay.RootContainer` is now a wrapper around `Relay.Renderer` that
+    substitutes `Relay.Store` for `environment`.
 * Renamed the Flow type `RelayRendererRenderCallback` to `RelayRenderCallback`.
 * Renamed the Flow type `RelayQueryConfigSpec` to `RelayQueryConfigInterface`.
 * `RelayContainer.setVariables` will no longer check if the variables are
-  changed before rerunning the variables. To prevent extra work, check the
+  changed before re-running the variables. To prevent extra work, check the
   current variables before calling `setVariables`.
+* You can now roll back mutations in the `COMMIT_QUEUED` state using
+  `RelayMutationTransaction#rollback`.
+* When specifying a `NODE_DELETE` or `RANGE_DELETE` mutation config, you can
+  omit `parentID` if your parent, in fact, does not have an ID.
+* In cases where you query for a field, but that field is unset in the response,
+  Relay will now write `null` into the store for that field. This allows you to
+  return smaller payloads over the wire by simply omitting a key in the JSON
+  response, rather than to write an explicit `fieldName: null`.
+* If the `relay` prop does not change between renders, we now recycle the same
+  object. This should enable you to make an efficient `this.props.relay ===
+  nextProps.relay` comparison in `shouldComponentUpdate`.
+* You can now craft a connection query having invalid combinations of connection
+  arguments (first/last/after/before) so long as the values of those arguments
+  are variables and not concrete values (eg. `friends(first: $first, last:
+  $last)` will no longer cause the Relay Babel plugin to throw).
+* Added runtime validation to mutation configs to help developers to debug their
+  `Relay.Mutation`.
+* Added `RelayNetworkDebug`. Invoke
+  `require('RelayNetworkDebug').init(Relay.DefaultNetworkLayer)` to enjoy simple
+  to read logs of your network requests and responses on the console. Substitute
+  your own network layer if you use one.
+* Added two new `rangeBehaviors`:
+  * `IGNORE` means the range should not be refetched at all.
+  * `REFETCH` will refetch the entire connection.
+* Connection diff optimization: Enables a mode where Relay skips diffing
+  information about edges that have already been fetched. This can be enabled by
+  adding `@relay(variables: ['variableNames'])` to a connection fragment.
 
 ## 0.7.3 (March 4, 2016)
 
diff --git a/package.json b/package.json
index 5cea10d3fda2c..4094fbd457433 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "react-relay",
   "description": "A framework for building data-driven React applications.",
-  "version": "0.7.3",
+  "version": "0.8.0",
   "keywords": [
     "graphql",
     "react",
@@ -34,7 +34,7 @@
     "react-static-container": "^1.0.0-alpha.1"
   },
   "peerDependencies": {
-    "babel-relay-plugin": "0.7.3",
+    "babel-relay-plugin": "0.8.0",
     "react": "^15.0.0 || ^0.14.0"
   },
   "devDependencies": {
diff --git a/scripts/babel-relay-plugin/package.json b/scripts/babel-relay-plugin/package.json
index e911994c6adc5..3d7de71063491 100644
--- a/scripts/babel-relay-plugin/package.json
+++ b/scripts/babel-relay-plugin/package.json
@@ -1,6 +1,6 @@
 {
   "name": "babel-relay-plugin",
-  "version": "0.7.3",
+  "version": "0.8.0",
   "description": "Babel Relay Plugin for transpiling GraphQL queries for use with Relay.",
   "license": "BSD-3-Clause",
   "repository": "facebook/relay",
diff --git a/website/core/SiteData.js b/website/core/SiteData.js
index 9b9b38651788d..5cc87a0d32c07 100644
--- a/website/core/SiteData.js
+++ b/website/core/SiteData.js
@@ -12,5 +12,5 @@
 'use strict';
 
 module.exports = {
-  version: '0.7.3'
+  version: '0.8.0'
 };