Back to Relay

Agenda

meta/meeting-notes/2016-09-20-team-sync.md

20.1.13.9 KB
Original Source

Agenda

  • Project updates

Note: There was no update last week because the team was in a "war room" converting a React Native product within the main Facebook Android and iOS apps to use Relay 2.

Present

Project Updates

Relay 1:2 interop

Goal: Here is to make it possible for most components to be written with Relay 2 syntax/APIs and have them work either in Relay 1 or Relay 2. Implementation detail: use of a so-called "compatibility container".

Status: Filled in multiple gaps during the war room, enough to fully convert two full top-level views within the app (now have support for fragment variables, provided imports, mutations).

End of week goal: Basically done; will address any gaps that arise as we continue to convert products.

Current owner(s): n/a

Relay 2 product integration

Goal: Here is to convert a couple of significant views in a production app which will exercise major facets of the framework such as pagination and mutations.

Status: As noted above, we were able to port two full top-level views within the app. This includes the ability to run them via either Relay 1 or Relay 2 thanks to the compatibility container. We will have metrics in place to allow us to compare the performance in production of the two implementations. We have a candidate for another large React Native product inside the main Facebook app to port next; they should be ready for us within a couple of weeks.

Current owner(s): @yuzhi

Mutations

Goal: Is to finish the API for basic server and optimistic mutations (initially not connections, then connections).

Status: Basics are done, and the building blocks for connection mutations are in place; will build higher-level API on top of this as needed in the future.

Current owner(s): @josephsavona

Pagination

Goal: Is to support easy pagination in Relay 2.

Status: @connection directive is in place and working; the refetch container is up and running and makes writing views with simple pagination straightforward (eg. this.props.relay.refetch({after: 'cursor', first: 10})).

End of week goal: Replace manual pagination in existing product code with simpler version that uses the refetch container.

Current owner(s): @wincent

Refetching

Goal: Is to have easy refetching in Relay 2, analogous to current setVariables API.

Status: Prototype is working and expected to land soon; some follow-up diffs landing for short-circuiting via boolean diffing.

Current owner(s): @wincent

Packager

Goal: Have fast (scalable) and convenient builds for codebase using Relay 2.

Status: We now have a Watchman-driven codegen script that monitors the entire repo and regenerates all queries within about 1s whenever there is a change.

Current owner(s): @kassens

Pokes Dashboard

Goal: Ship Relay 2 powered Pokes Dashboard to 100% of production users.

Status: Nothing blocking us from turning this on for the public; aim to do so before the end of the week.

Current owner(s): @kassens

Native disk cache

Goal: Collect metrics and publish internal report.

Status: Wrote up learnings in report; no further action planned for now so wrapping this project up.

Current owner(s): n/a

Open source

Status: Fairly quiet on this front: of some interest, there has been activity on a PR to get Relay into create-react-app.

Current owner(s): @yuzhi (on call)

Relay 1

Status: Nothing to report.