aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/dev
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2017-07-18 16:39:18 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-07-19 13:17:54 +0000
commit430e4c84e9a2229e386741c7c06b51e679d9fef3 (patch)
tree80adcdd4b96e66be29e689ceb75ad6d6e7b64b6d /site/dev
parentcae60da0a92bf7e81c503939272479e89c2e019e (diff)
Some basic Flutter/Fuchsia docs
No-Try: true Docs-Preview: https://skia.org/?cl=24406 Bug: skia: Change-Id: I18ba9bf86b44b27262c9785cc0b5edbc982ae076 Reviewed-on: https://skia-review.googlesource.com/24406 Reviewed-by: Ravi Mistry <rmistry@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'site/dev')
-rw-r--r--site/dev/flutter/index.md23
1 files changed, 23 insertions, 0 deletions
diff --git a/site/dev/flutter/index.md b/site/dev/flutter/index.md
new file mode 100644
index 0000000000..6c5c65e7ec
--- /dev/null
+++ b/site/dev/flutter/index.md
@@ -0,0 +1,23 @@
+Skia in Flutter & Fuchsia
+=========================
+
+Skia is used by both [Flutter](https://flutter.io/) and [Fuchsia](https://fuchsia.googlesource.com/docs/+/master/README.md).
+
+Fuchsia has a [roller](https://fuchsia-roll.skia.org/) that will continuously roll latest Skia into that project. Fuchsia uses an XML [manifest](https://fuchsia.googlesource.com/manifest/+/master/userspace) to specify the Skia revision (as well as other third party libraries).
+
+Flutter does not (yet) have a roller, so developers must manually perform rolls. Flutter uses [DEPS](https://github.com/flutter/engine/blob/master/DEPS) to specify third party dependencies.
+
+
+Although each project is (almost always) building at a different revision of Skia, Fuchsia itself always builds the latest revision of Flutter as one of its components. Thus, the versions of Skia being used by Flutter and Fuchsia must be "source compatible" -- Flutter must be capable of compiling against either revision without any change to Flutter itself.
+
+Making API Changes
+------------------
+
+If you need to make a breaking API change, the basic approach is:
+
+* Add new code to Skia, leaving the old code in place.
+* Deprecate the old code path so that it must be enabled with a flag such as 'SK_SUPPORT_LEGACY_XXX'.
+* Add that same flag to [flutter\_defines.gni](https://skia.googlesource.com/skia/+/master/gn/flutter_defines.gni) in Skia.
+ * Both Flutter and Fuchsia build Skia with a GN argument that enables all the defines listed in that file.
+* Land the Skia change, and test the new API in both Flutter and Fuchsia.
+* Remove the flag and code when the legacy code path is no longer in use.