All Versions
20
Latest Version
Avg Release Cycle
45 days
Latest Release
1207 days ago

Changelog History
Page 1

  • v10.1.1 Changes

    December 07, 2020

    πŸ‘Œ Improvements

    • Mark failed network requests on preloaded query references (f59d712)
    • πŸ”¨ Refactor notifying store subscriptions for better consistency update perf (under feature flag) (ad65328)

    πŸ›  Fixed

    • Require babel helpers instead of inlining (#3188)
    • Ensure network requests are always logged (95606c5)
    • πŸ“ Memoize the cache config in useMemoOperationDescriptor (81d24d2)
    • βœ‚ Remove unstable_next from useLoadMoreFunction (3242c58)

    Misc

    • βž• Add missing peer dependency in website/package.json (#3262)
    • βž• Add missing copyright headers (bc55eb6)
    • Refine typescript type generation (#3239)
    • Extract store subscription management into separate module (d64b579)
    • βœ‚ Remove link to GraphCool from prerequisites page (#3173)
    • ⚑️ Update website/i18n/en.json (#3261)
  • v10.1.0 Changes

    November 16, 2020

    βž• Added

    • βž• Added @appendNode and @prependNode declarative mutation directives for inserting a node to connections (#3155) [0fe732d]
      • Usage: comments @appendNode(connections: $connections, edgeTypeName: "CommentEdgeType") { id }
    • βž• Added @deleteEdge directive for removing the edge from connections (#3177) [01d65b3]
      • Usage: deletedCommentId @deleteEdge(connections: $connections)
    • βž• Added plural support for @deleteRecord directive (#3135) [27f938c]
      • Usage: deletedCommentIds @deleteRecord
    • ⏱ Made scheduleGC a public function inside RelayModernStore (#3167) [97401cb]
    • βž• Added cacheConfig in RequestDescriptor (#3070) … [eb256a3]

    πŸ‘Œ Improvements

    • βœ‚ Remove fragment naming enforcement from JS compiler [ff1c10b]

    πŸ›  Fixed

    • πŸ“„ Docs: fix typos of the 'A Guided Tour' page (#3236) [e4413bf]
    • πŸ›  Fix prependNode and prependEdge in declarative connection [7c836df]
    • πŸ›  Fix warning for plural fragment ref pointing to null data [c1a6831]
    • Don't setTimeout in loadQuery in SSR [2da0325]
    • Fix @match with __typename: other in MatchContainer [92c8d68]
    • πŸ›  Fix conflicting field value warning [7e3deb4]
    • πŸ›  Bugfix for validating optimistic updates containing undefined fields … [6a1586d]
    • Dispose nested entrypoints when calling dispose() [d5352a2]

    Misc

    • In @relay/react-relay, we now use ^16.9.0 || ^17 as a peerDependency.

    Experimental

    • βž• Added various minor improvements and fixes to the loadQuery API.
    • useQueryLoader now accepts an initial query reference.
    • Prevent usePreloadedQuery from consuming stale cached query refs
    • Stop caching errors at fragment boundaries, which prevented
    • Warn when attempting to use an already disposed PreloadedQuery or PreloadedEntryPoint [187bd34]
    • πŸ‘‰ Make sure loadQuery requests are deduped when started (vs at render time) [a21b1cb]
    • βž• Add Relay log event for when an EntryPointContainer uses an entrypoint component resource [7818bfb]
    • Create type utility EntryPointElementConfig [7d02240]
    • Unsubscribe network requests when releasing temporary retains [933b280]
    • ⚑️ Optimize getFragmentIdentifier [ac3a252]
    • holdGC for incremental responses in QueryExecutor [b3ecce2]

    Relay Compiler in Rust

    πŸš€ The Relay team is actively working on the new compiler implemented in Rust. The majority of recent changes you can see in the repo are related to the compiler. This new version won't be included in the release, as we are still working on the migration strategies for our OSS customers.

    Thank you for all outstanding contribution to the Relay compiler (#3182)

  • v10.0.1 Changes

    July 23, 2020

    Experimental

    • βœ‚ Remove persisted query id invariant from loadQuery (4b88a13)
    • Dispose nested entrypoints when calling dispose() (d5352a2)
  • v10.0.0 Changes

    July 13, 2020

    πŸ’₯ Breaking

    • πŸ”„ Change missing field handlers for β€œlinked” fields to treat null as null. Previously, returning either null or undefined indicated that a value could not be determined, and there was no way to indicate that the field value should be set to null. To indicate "no value can be provided", return undefined instead (f106ca0)

    βž• Added

    • πŸ†• New Declarative connection mutations: we added several directives to make common store updates in mutations easier. An updater is no longer required for following cases: @deleteRecord (applied to a field of type ID) will delete the record with the given id from the store. @appendEdge and @prependEdge (applied to a connection edge field) will append or prepend the edge to the listed connections (07ccab7, 687d89b, 2719324)
    • Precise type refinement: gated by RelayFeatureFlags.ENABLE_PRECISE_TYPE_REFINEMENT. With this feature enabled Relay more accurately models GraphQL semantics around inline fragments and fragment spreads which have a different type than their parent selection. This helps Relay to more accurately determine if a query can be fulfilled from the cache (ie with the β€˜store-or-network’ fetch policy) and also more accurately determine if data is missing and that a component should suspend. Generally speaking, the change is observable as fewer false positives where Relay thinks data is β€œmissing” when it isn’t. This feature will be enabled by default in a subsequent release; we recommend enabling it now. (00985e1, 11bf467, ef93983, 1e0dba0, 3318719, f7ba970, 08ba6f0, 7c67b47, 2cf9ac9)
    • Warn if a single GraphQL response contains conflicting values for a given field on the same entity (same DataID) (87520d3)
    • ⚑️ Optimize RequestIdentifier. Previously if the query was not persisted this used the full query text, now a hash of the query is used instead (a3acc08)
    • πŸ“œ Enable parsing of Flow enums (bcd7a81)
    • βž• Add the referenced DataIDs in the store.gc log event (adb64b7)
    • Garbage collection is now yieldy: the GC mark/sweep yields after processing each unit, restarting if a write to the store occurs (687e332)
    • 🚚 PreloadableQueryRegistry is moved from experimental to relay-runtime (6fe4323)

    πŸ›  Fixed

    • πŸ›  Fixed fatal in joinArgumentDefinitions (85b44e7)
    • Generate a static storageKey on field nodes for lists and objects whose values are all static (34b1dc0)
    • πŸ›  Fix @refetchable query generation for interfaces without own id field (d307b37)
    • Avoid a memory leak that can occur in some JS runtimes where Error objects can retain data on the call stack until its stack property is evaluated (2859aa8)
    • πŸ›  Fix bug with treatMissingFieldsAsNull flag and client extensions (5085aea)
    • πŸ›  Fix a memory leak (8c1e91b)

    Misc

    • βž• Added internal utility types PreloadPropsOf and VariablesOf (796950e, f1f784f)
    • πŸ‘‰ Use isMountedRef internal hook in query and EntryPoint loaders (61c8627)
    • Emit LogEvents for Store publish/notify (60b339b)
    • ⚑️ Flow updates: add codes to error suppressions, don’t mix import/require in flowtests (fba7930, 232dd95)
    • βœ‚ Removed unused request parameter in ResponseNormalizer options (651ced5)
    • πŸ‘‰ Make RelayError messages parameterized (0e72854)
    • πŸ–¨ Print the @defer and @stream directives last (this helps with parity between the JS and Rust compiler output) (7271283)
    • βš™ Run the SkipRedundantNodes transform on SplitOperation nodes (used for data-driven dependencies) (1bc049e)
    • πŸ“‡ Sort test metadata object keys (9a5cd5c)
    • ⚑️ Use scheduler to schedule consistency updates outside of QueryExecutor (8af3355, 315bcf9)
    • πŸ›  Fixed spelling mistakes: (564310d, c472ba3)
    • Cleanup unused code: (fba7c8a, 92b110b, 56dc1d6, 681f0cd, a9cbabe, 37ae1e7, 292b1e8, 8bb5809)
    • ⚑️ Update generated label for defer/stream nodes (2ae19c3)
    • 0️⃣ Sort keys of objects appearing as default values in arguments (3b8a288)
    • βœ‚ Remove plural: false metadata in generated artifacts (487016f)
    • Sort type spreads in the generate id transform (3de995a)
    • πŸ“‡ Sort metadata on generated artifacts by key (bf5484c)
    • βœ‚ Remove nonStrictEnums setting for defaultValues (78847c6)
    • Sort argumentDefinitions in queries generated by RefetchableTransform (c4ec34b)
    • βž• Add environmentProviderOptions to PreloadedQuery (2365b01)
    • βœ‚ Remove unused type in argument definitions (812e0f4)
    • ⚑️ Sort fragment arguments, updated artifacts (b065ae2)
    • βœ‚ Remove number of arguments check for fetch queries (9e29299)
    • Generated ID fields now have the type from the schema (b63815b)
    • πŸ“‡ Rename cacheTime property to fetchTime (57719cc)
    • βœ‚ Remove unused fragmentRefPathInResponse argument (251703e)
    • πŸ“‡ Ensure cursor/count metadata check is limited to extraVariables in getPaginationVariables (84565d4)
    • GenerateTypeNameTransform generates non-nullable String type for __typename (b128d82)
    • πŸ›  Fix check for whether a type is client type (1ccf069)
    • πŸ›  Fix printing indentation of conditions (cdd2c47)
    • Apply fragment arguments on Defer/Stream node (8d8ba8b)
    • βœ‚ Remove ValidateServerOnlyDirectivesTransform from IRTransforms (9593d57)
    • βœ‚ Remove label arg from @stream_connection (2e2be4c)
    • πŸ“‡ Strip compiler-only metadata from generated files (2299878, fddd31b)
    • Also create a proxy for executeWithSource in RelayModernMockEnvironment (8b3df8c)
    • fetchQueryDeduped accepts a RequestIdentifier instead of an OperationDescriptor (041c6ec)
    • βœ‚ remove type condition from @defer fragments (23300a9)
    • βž• Add onLoad support to PreloadableQueryRegistry (8242adc)

    Experimental

    • πŸ†• New useQueryLoader() and useEntryPointLoader() hooks for loading queries and EntryPoints from a component. These hooks wrap the internal loadQuery() and loadEntryPoint() APIs to manage the lifecycle of returned resources (ie, disposing the resources when the component un-mounts) (676660d, f512c9f, c819d41, d64fe26)
    • Misc
      • Relay Hooks: useDebugValue to show fragment/query values (e913579)
      • Expose networkCacheConfig in preloaded query references (605ac7f)
      • Handle case where loadQuery result is rendered under a different environment (08bb2d2)
      • Don't expose preloadQuery from relay-experimental (d1c8cb5)
      • Remove PreloadableQueryRegistry from relay-experimental (not a public API) (52ccd26)
      • prepareEntryPoint returns void and is deprecated (a5534ea)
      • Removed (internal) variant of PreloadedEntryPoint (09b8236)
  • v9.1.0

    April 27, 2020
  • v9.0.0 Changes

    February 13, 2020

    9.0.0

    πŸ’₯ Breaking

    • πŸ“‡ Rename getModernOperationVariables to getOperationVariables

    βž• Added

    • βž• Added queuePendingOperation to RelaModernMockEnvironment in testing tools. This allows the caller to manually register an operation that should be pending.
    • Optionally output eager es modules (#2781).
    • πŸ”¦ Expose a way to override isGeneratedFile function via language plugin (#2810).
    • πŸ‘ Allow language plugin to specify how generated files should be named (#2866).
    • πŸ‘ Allow language plugin to specify how to check for presence of graphql strings (#2811).
    • Setup external config for Relay Compiler.

    πŸ›  Fixed

    • Ensure root record is always created upon store initialization, even before initial query has been processed.
    • πŸ›  Fix disposable of optimistic updates: 87ef4ed
    • πŸ›  Fix various issues in docs.
    • πŸ›  Fix loading external config for Relay Compiler (#2999).

    Misc

    • DataChecker::check now returns the operation fetch time.
    • βœ‚ Removed getRelayDefaultMissingFieldHandlers.js

    Experimental

    • πŸ›  Fix leaking environments when using Relay Hooks (#3014).
    • πŸ›  Fix support of Fast Refresh when used with Relay Hooks.
    • πŸ›  Fix recycling data for plural fragments; i.e. return an array with the sam object identity if the data hasn’t changed.
    • βž• Add support for batched @stream’ed responses.
    • Internally renamed useLegacyPaginationFragment to usePaginationFragment.
    • Potentially Breaking
      • preloadQuery will error if called during render.
      • Remove new connection model experimental code.
      • We know check for β€œactive” instead of queries in β€œflight” when determining when to suspend. An operation may be indefinitely in flight (e.g. a live query, or a GraphQL Subscription), but it’s only β€œactive” if it’s actively receiving payloads, e.g. during @streaming or @defer.
  • v8.0.0 Changes

    December 19, 2019

    8.0.0

    πŸš€ Previous Release Notes: 8.0.0
    Commits: v7.1.0...v8.0.0

    πŸ’₯ Breaking

    • πŸ“œ Relay Compiler no longer relies on the graphql-js schema representation. And consumes only SDL file that represents the schema. This means that all custom implementations relay compiler runners that were depended on the specifics of the graphql-js may not work as expected. Specifically, custom Enum values are no longer available in the relay-compiler - as they cannot be expressed via SDL. Also, custom function parseValue, parseLiteral and serialize that can be defined for a graphql type via graphql-js primitives are not accessible in the relay compiler: this may break serialization of custom scalars. 860c23c
    • πŸ”Œ Babel plugin no longer produces thunks: 490c89d
    • Mutations are committed to unique root ids #2349. In mutation updaters, fields in the mutation will no longer be available in the store root returned from store.getRoot. Usages like store.getRoot().getLinkedRecord('create_comment_mutation') will break.
    • βœ‚ Removed internally unused RelayRecordSourceProxy::commitPayload(). Note that this method was not part of the public interface.

    βž• Added

    • πŸ‘ Allow language plugin to add schema extensions. #2935
    • πŸ‘ In relay-compiler we added support for variables in complex objects and arrays: 5da3be0
    • isClientID helper is available to use in relay-runtime dac614c

    πŸ›  Fixed

    βœ‚ Remove the clientMutationId requirement by creating a new root id for each executed mutation: #2349

    πŸ›° validateMutation correctly handles lists of scalar fields in the optimistic payloads: 56795ba

    DissalowIDAsAlias this validation had a bug, there it wasn't traversing LinkedFields, hence wasn't reporting violations in their selections. c4547f9

    RelayModernFragmentSpecResolver only holds on to fragment references as opposed to all props passed to product code to reduce amount of leaked memory when rendering in React concurrent mode.

    πŸ›  Fixed detecting whether the execution environment is a server: #2960

    Misc

    • Relay codebase is using explicit inexact objects: 4e2cc2f
    • βž• Added an options property on IEnvironment for attaching extra information to the environment instance
    • ⚑️ Updated docs to consider Relay server specifications GraphQL best practices and not purely a Relay spec: #2603
    • https://relay.dev has a new landing page redesign: #2953

    Experimental

    • Data Invalidation: Added new Data Invalidation primitives to allow marking data in the Relay Store as stale. When data is marked as stale, queries that reference that data will also be stale; stale queries will indicate to Relay that they need to be refetched the next time they are evaluated.
    • πŸ—„ Deprecate LazyLoadEntryPointContainer => LazyLoadEntryPointContainer_DEPRECATED: 08bde91
    • βœ‚ Removed Unused types from RelayStoreTypes 76354e9
    • usePrelaodedQuery now takes an unstable UNSTABLE_renderPolicy like useLazyLoadQuery: fc1b88b
    • useMutation Hook was added: 96d9703
    • Export a JSResource Flow interface from Relay.
    • πŸ›  Fixed subscribing to plural fragments with missing data when using useFragment.
  • v7.1.0 Changes

    November 07, 2019

    7.1.0

    βž• Added

    • πŸ†• New warning in RelayPublishQueue if if RelayPublishQueue::run() is called again during a run(): 3823534
    • πŸ‘Œ Support for the new configuration option in the compiler (aa1453b) writerConfig.writeQueryParameters - that can accept the function:

      writeQueryParams: ( dir: CodegenDirectory, filename: string, moduleName: string, params: RequestParameters, ) => void

    πŸ›  Fixed

    • 0️⃣ Compiler: fix validation of required fields with default values #2903 by @mrtnzlml
    • [Allow non-nullable Viewer field in ViewerQueryGenerator #2924 by @janicduplessis
    • βž• Add exports to relay-runtime to make available in relay-experimental: a0fc101

    Misc

    • 🚚 Renaming/cleanup in the compiler: Moving some parts of the new codegen runner to OSS, removed redundant prefixes.

    Experimental

    • πŸ‘ Allow an extraOptions object on PreloadOptions: 68e893e
    • πŸ‘ Allows passing a raw query to preloadQuery(), which makes it usable without the special $Parameters file: edb4670
    • getModuleIfRequired replaced with queryResource in the EntryPoints: 32f4a71
    • βž• Added new Relay Experimental Docs: 3f7ba11
    • βž• Added Step-by-step guide to Relay Hooks: 2d1473f
    • βž• Add support for loading 3D resources in optimistic responses: bef3551
  • v7.0.0 Changes

    October 21, 2019

    7.0.0

    Commits: v6.0.0...v7.0.0

    πŸ’₯ Breaking

    Variables are no longer set in Relay Context when using a QueryRenderer. This means that any product code that was relying on reading variables from RelayContext will break. If you need to access the variables that were set at a query root, the recommended approach is to manually pass them down through the component tree in product code.

    βœ‚ Removed old RelayNetworkLogger, and relay-runtime no longer exports createRelayNetworkLogger. This logger is being replaced with event based logging on the Environment which will allow us to have richer and more contextual events logged with more detail on what's going on. Wrapping the actual network request doesn't work well as some "requests" might never actually end up on the network when they can be fulfilled completely from the store.

    ⚑️ The constructor signature of Store constructor changed; specifically the second argument to the constructor is now an options object. Any product code directly constructing a Store and passing a second argument will need to be updated.

    🚚 Relay Compiler no longer relies on graphql-js for query validation. Most of the validation rules we used previous are now part of the RelayParser itself, while the remainder and implemented as transforms (15e8d22). Additionally, we've removed the concept of RelayIRValidations (da01bf3), which ran after IR transformation.

    πŸ‘ @defer is no longer allowed on inline fragments, since we can’t communicate a loading state with Suspense when used on an inline fragment. @defer is now only supported on fragment spreads.

    βž• Added

    • RelayCompiler: added a new directive (3dd79e8) @DEPRECATED__relay_ignore_unused_variables_error to suppress errors that were surfaced after we've migrated from GraphQL NoUnusedVariablesRule to RelayIRTransform validation. GraphQL NoUnusedVariablesRule was not aware of the difference between root (operation) variables and local fragment variables (defined by @argumentDefinitions) - because of that, it was considering the local fragment variables that have the same name as the root variable as used and did not report the violation. But in Relay compiler, we know this distinction, and we already keep track of the root variables and can report those invalid cases. Unfortunately, this revealed multiple violations that weren't possible to fix without product team involvement. For this purpose, we added a directive that can be used to temporarily suppress the error while teams fix their queries.

    πŸ‘Œ Improved

    • 😌 Relaxed the constraint for @refetchable directive on a fragment: we no longer enforce that the argument for the node field is called id; it can be called anything as long as it’s an ID type.
    • Developers can now select the __id field anywhere that __ typename can be selected, in order to fetch the internal cache key of an entity. The primary use-case for this is updating records that don’t have an id. Before, updating or deleting such entities would require writing an updater function that traversed from the nearest strong entity (w an id); now, developers can directly target records with e.g. store.get(record.__id) in an updater function.

    πŸ›  Fixed

    • πŸ“œ RelayCompiler: Usage of $variables in Complex objects (or as List Items) is now disabled by RelayParser: 6946e85 This was already unsupported, but Relay previously threw an error later in compilation.
    • 🀑 MockPayloadGenerator: allow null as default value of enum: 6946e85
    • πŸ›  Fix display names for containers.
    • πŸ›  Fixed @refetchable connection metadata for custom handlers.
    • πŸ›  Fixed missing field handler behavior for plural linked fields.
    • πŸ›  Fixed getRefetchMetadata to handle both commonjs and esmodules. (#2875)
    • πŸ›  Fixed printing require module dependency in generated artifacts. (#2861)

    Misc

    • ⬆️ Upgraded React peer dependency to 16.9.0.
    • ⬆️ Upgraded babel-preset-fbjs to 3.3.0
    • πŸ— RelayCompiler: We've changed the field type and typeCondition in GraphQL IR types to use Relay internal representation of GraphQL type (2606f32). Before this change, we were directly using graphql-js type instances. But eventually, our goal in Relay compiler is to get rid of the dependency on the graphql-js schema representation and use a faster/less memory intensive representation of the schema. We also build a Schema wrapper: 9e6d919 - that should help us during this migration.

    Experimental

    • 🐎 Several performance improvements to the internal implementation of useFragment were shipped.
    • πŸ›  Fixed issue to stop tracking mutations as in flight in the RelayOperationTracker when applying the optimistic update; this caused issues with suspending unexpectedly.
    • πŸ›  Fixed issue to stop tracking GraphQL subscriptions as indefinitely in flight in the RelayOperationTracker; instead, subscriptions should only be tracked as in flight when they’re waiting for incremental or module payloads. This caused issues with suspending indefinitely in some cases.
    • πŸ›  Fixed issue to correctly dispose of ongoing requests when unmounting a useQuery hook; this might happen when useQuery starts a long-lived request, e.g. to poll for real time data.
    • πŸ›  Fixed issue in useQuery to not suspend indefinitely when server response doesn’t return all of the requested data. This might occur for example when making selections on abstract types.
    • πŸ›  Fixed re-establishing store subscriptions when using useBlockingPagination.
    • πŸ›  Fixed pagination with Relay Hooks when using fragments that contain @argumentDefitions.
    • Pagination with Relay Hooks is now allowed even if server returns value for hasNextPage as false.
    • Several improvements to new experimental representation of connections.
    • Temporarily exposed new option for useQuery: renderPolicy_UNSTABLE, which determines whether data should be eagerly or lazily rendered.
  • v6.0.0 Changes

    September 16, 2019

    Commits: v5.0.0...v6.0.0

    πŸ’₯ Breaking

    • πŸ‘€ Environment no longer supports a configurable PublishQueue, this is a prerequisite for upcoming changes to support a new connection representation and the Store interface changes (see below): 44edf14
    • ⚑️ Changed the Store interface, adding snapshot() and restore() methods and changing the way that PublishQueue/Store coordinate to revert/rebase optimistic updates: a5c903d
      • Note: this should have no impact on users who use the default Store implementation; the main impact is to alternate store implementations and consumers thereof.
    • βœ‚ Removed the unused RecordSource interface load() method: bd15d4e
    • Changed dataFrom prop in ReactRelayQueryRenderer to fetchPolicy, changed 'STORE_THEN_NETWORK' to 'store-and-network'.
    • πŸ”„ Changed $key in flow type for plural fragments to plural ($ReadOnlyArray<>)
    • 🚚 environment.unstable_internal has been removed, since we no longer need to support Relay Compat.
    • Minimum required React version is now 16.9.0

    βž• Added

    • Added _ unreleased _ relay-experimental package which contains experimental version of Relay Hooks using React Suspense.
    • βž• Added a LocalQueryRenderer that has the same API as QueryRenderer, and only renders from data in the store.
    • @inline directive and readInlineData() function that enables data masking for functions instead of React components.
    • Added an @raw_response_type directive on query, mutation and subscription. With the directive, a new flow type will be added to the generated artifact that represents the shape of the server response.
    • πŸ†• New documentation for Client Schema extensions and managing local data was added.

    πŸ‘Œ Improved

    • Validate that required arguments are provided in compiler.
    • πŸ“¦ Don't include (70453f2) @babel (https://github.com/babel) packages in generated bundles ( (70453f2#2764#2764) (#2764)) (70453f2)
    • 🐎 Made several performance optimizations for our compiler transforms.
    • πŸ‘ Allow RelayFileWriter to specify the filesystem object (#2837)
    • πŸ”§ Can now configure persistFunction with relay config.

    πŸ›  Fixed

    • 🀑 Various fixes to the MockPayloadGenerator
      • Added test case for mocking null values (#2762 (#2762))
      • Fixed MockResolvers for Objects in plural fields
      • Fixed generated values for scalar arrays/enums
      • Fixed mock resolvers for arrays of Enums (#2779 (#2779))
      • Handle cases when MockResolver for ID returning undefined
    • πŸ›  Fix edge case in ConnectionHandler when field is unset
    • πŸ›  Fixed relay-compiler babel polyfill problem.
    • πŸ‘‰ Use reporter to report changes (#2838)
    • πŸ‘‰ Use global state for persisted queries to fix --watch (#2625 (#2625))

    Misc

    • v6.0.0 should now be compatible with React 16.9.0.
    • πŸ‘ Experimental: work-in-progress support for a new approach to representing connections, with changes starting in 6f01295. The new connection representation is not feature complete and disabled by a feature flag. The APIs are highly likely to change.
    • βž• Added a new implementation of the RelayRecordsSource (available behind a feature flag)