)]}'
{
  "commit": "fe0e123b1239ab63f40770e741b18d14adbaa738",
  "tree": "a6eda31015c28aa9d226fc8936e3514be8c3a806",
  "parents": [
    "600567ef152452ded9914aa6aa441ce8cc66b74b"
  ],
  "author": {
    "name": "Alexander Aprelev",
    "email": "aam@google.com",
    "time": "Mon Aug 21 12:55:17 2017 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Aug 21 12:55:17 2017 -0700"
  },
  "message": "Introduce frontend_server that flutter tools will use for compilation. (#3982)\n\n* Introduce frontend_server that allows for interactive and batch modes.\r\n\r\nExample of batch mode:\r\n```\r\n$ dart $HOME/p/f/t11/flutter/engine/src/flutter/frontend_server/bin/server.dart --sdk-root\u003d$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk --platform-kernel-dill\u003d$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk/platform.dill $HOME/p/f/t11/flutter/flutter/examples/flutter_gallery/lib/main.dart\r\n\r\nout: result 79256789-598c-4909-a9e4-0ef36d4c26ba\r\nout: \u0027State\u0026TickerProviderStateMixin^#U0^\u0027 is exported from both \u0027package:flutter/src/widgets/animated_cross_fade.dart\u0027 and \u0027package:flutter/src/widgets/animated_list.dart\u0027.\r\n...\r\nout: Superclass has no method named \u0027hitTest\u0027.\r\nout: 79256789-598c-4909-a9e4-0ef36d4c26ba $HOME/p/f/t11/flutter/flutter/examples/flutter_gallery/lib/main.dart.dill\r\n$\r\n```\r\n\r\nExample of interactive mode - communication via stdin/stdout:\r\n```\r\n$ dart $HOME/p/f/t11/flutter/engine/src/flutter/frontend_server/bin/server.dart --sdk-root\u003d$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk --platform-kernel-dill\u003d$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk/platform.dill --incremental\r\n\r\nout: Frontend server is ready.\r\nin: compile abc.dart\r\nout: result fd99c0f9-12bb-4083-818e-2521d454fdc8\r\nout: fd99c0f9-12bb-4083-818e-2521d454fdc8 abc.dart.dill\r\nin: accept\r\nin: recompile kuka\r\nin: 123.dart\r\nin: 456.dart\r\nin: kuka\r\nout: result d12f8d05-6c79-44f7-a775-1d3469e1be53\r\nin: quit\r\n$\r\n```\r\n\r\n* Add test. Cleanup dependencies.\r\n\r\n* One more test with mocks\r\n\r\n* Remove platform-kernel option. Refactored CompilerOptions. Clean up comments.\r\n\r\n* Update license\r\n\r\n* Use Uri.base.resolve consistently. Ensure folder path for sdk root. Fix test.\r\n\r\n* Fix main_dart for frontend_server build target\r\n\r\n* Reintroduce .packages file, add README.md, revert changes to licenses_flutter\r\n\r\n* Run analyzer on frontend-server. Update .packages deps so tests can be run too.\r\n\r\n* Add analyzer options file\r\n\r\n* Clean up dependencies\r\n\r\n* Add frontend_server files to license file back\r\n\r\n* Fix comment in analysis_options.yaml\r\n\r\n* Run frontend_server tests in travis\r\n\r\n* Update licenses\r\n\r\n* Change a+x permission on travis/test.sh\r\n\r\n* pub get before pub run test\r\n\r\n* Fix path to when\r\n\r\n* Clarify accept/reject instructions\r\n\r\n* Formatting, fixed docs, style\r\n\r\n* Update license script to skip .travis.yml, when/example. Update license file.\r\n\r\n* Update style nits\r\n\r\n* Fix license\r\n\r\n* Trim license extracted text. Fix licenses\r\n\r\n* Update licenses_third_party signature\r\n\r\n* Few more tests\r\n\r\n* Update dart license\r\n\r\n* Update dart license\r\n\r\n* Style changes. Fix return value for Future\u003cNull\u003e\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5eba57016cc30698d0e4acf985ef766feda7e32d",
      "old_mode": 33188,
      "old_path": ".travis.yml",
      "new_id": "1ed00e9bf13fbb91ff6dc0c9d2763914da272d48",
      "new_mode": 33188,
      "new_path": ".travis.yml"
    },
    {
      "type": "modify",
      "old_id": "0799b92dafdf00ec5148009a012dbdd5e075e0ec",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "cea73b5c6b9d94ccdfed6a4f9d3c85bd400f356c",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "f827f5eeb051a13864244a70a5e607e5b7dc5049",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "96418587458d3ff85589fb88d77b3fdbfebf4a5d",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "48fbcdd36b9856f1f2b1fa2ce372794ccf0e852a",
      "new_mode": 33188,
      "new_path": "analysis_options.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f7bb541ded9def504acf4e3fff377797370148ac",
      "new_mode": 33188,
      "new_path": "frontend_server/.packages"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1f11a8ddb95105f216ff7071d88fdb5358312088",
      "new_mode": 33188,
      "new_path": "frontend_server/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3007831b924c6a190f64c905f97609b1ba33e19a",
      "new_mode": 33188,
      "new_path": "frontend_server/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f8abbe57051a31f29bde0d355eefd8a960b85aa7",
      "new_mode": 33188,
      "new_path": "frontend_server/bin/starter.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b22cd414cd5c69df5c5e1c195049364aad920927",
      "new_mode": 33188,
      "new_path": "frontend_server/lib/server.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fc79ae73975dc6b4d5f4a475064cea68530a1f24",
      "new_mode": 33188,
      "new_path": "frontend_server/pubspec.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dc4032072823d36b063ef414d81cf8f34485a807",
      "new_mode": 33188,
      "new_path": "frontend_server/test/server_test.dart"
    },
    {
      "type": "modify",
      "old_id": "e543a8b7b18cba359d39903d088d897cbc7de06b",
      "old_mode": 33188,
      "old_path": "sky/packages/sky_engine/LICENSE",
      "new_id": "e6966d7bdb963b56999f1b8c0c6c0b9c1f5d75bf",
      "new_mode": 33188,
      "new_path": "sky/packages/sky_engine/LICENSE"
    },
    {
      "type": "modify",
      "old_id": "eff9ee386904edf1bd5d1fa25697124fff1e8c18",
      "old_mode": 33188,
      "old_path": "tools/licenses/lib/main.dart",
      "new_id": "a8c18afaf53ad4afc6e69076189c91ac63ed0d16",
      "new_mode": 33188,
      "new_path": "tools/licenses/lib/main.dart"
    },
    {
      "type": "modify",
      "old_id": "8abfb480e2366a29fe12a3509561cf1506d4dde5",
      "old_mode": 33188,
      "old_path": "tools/licenses/lib/patterns.dart",
      "new_id": "53fa89c6de4516f10c7a49e1f3811376f516620e",
      "new_mode": 33188,
      "new_path": "tools/licenses/lib/patterns.dart"
    },
    {
      "type": "modify",
      "old_id": "9ccfb7def35b678e759c43e8365066f4fc65b201",
      "old_mode": 33261,
      "old_path": "travis/analyze.sh",
      "new_id": "97d26266d45b8ee8e015ad601c5aeb646f530172",
      "new_mode": 33261,
      "new_path": "travis/analyze.sh"
    },
    {
      "type": "modify",
      "old_id": "ee8e418719d1569f2b2bdc677aa7b27a2f9966c0",
      "old_mode": 33188,
      "old_path": "travis/licenses_golden/licenses_dart",
      "new_id": "58e28c575c333400fd20f33d65adb727ebce6c66",
      "new_mode": 33188,
      "new_path": "travis/licenses_golden/licenses_dart"
    },
    {
      "type": "modify",
      "old_id": "56a6ac6949e9add652bd5ea27af9a703540e6fc5",
      "old_mode": 33188,
      "old_path": "travis/licenses_golden/licenses_flutter",
      "new_id": "307197ea4b9638fedaee09629d4e37e90203a4fa",
      "new_mode": 33188,
      "new_path": "travis/licenses_golden/licenses_flutter"
    },
    {
      "type": "modify",
      "old_id": "011a27df8cd88756a879483ae391761bb73d5293",
      "old_mode": 33188,
      "old_path": "travis/licenses_golden/licenses_third_party",
      "new_id": "13ab38c4f39a0f972c9ba812d1988b27cdf55862",
      "new_mode": 33188,
      "new_path": "travis/licenses_golden/licenses_third_party"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5f2f30089fcd6aeeeb63a4659e39e55366c677c9",
      "new_mode": 33261,
      "new_path": "travis/test.sh"
    }
  ]
}
