Summary: Re-use the same function for plugin building both at publishing time by "flipper-pkg" and in runtime by Flipper itself.
Reviewed By: jknoxville
Differential Revision: D21129685
fbshipit-source-id: b7bff6737310352d28a14223128f127ac4d2eebf
Summary:
Added versioning for plugin format.
The first version is where "main" points to source code entry and plugins are bundled by Flipper in run-time on loading them.
The second version is where "main" points to the already existing bundle and Flipper just loads it without bundling. The plugins of version 2 must be bundled using "flipper-pkg" tool before publishing.
Changelog: Support new packaging format for plugins.
Reviewed By: mweststrate
Differential Revision: D21074173
fbshipit-source-id: 7b70250e48e5bd5d359c96149fb5b14e67783c4d
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1030
Currently flow linter is failing on GitHub. This diff disables flow for pkg-lib and lib output folders where it is failing currently.
Reviewed By: passy
Differential Revision: D21129580
fbshipit-source-id: 71f28c8bd0d4b7293bdc8f1be943b5fd77b6b444
Summary:
Enabled ASAR which should improve startup time and also removes a warning in the build process we've had for ages.
It does improve compression in ZIP archives but seems to do the opposite in XZ based on the size tool. It's a bit odd - I'm still checking why that would be. *Update: In my testing, we get a 6-7MB reduction with DEFLATE which is in line with the number below and -2MB with LZMA.*
This *could* break things that directly access files, but I have not seen any issues. If any arise, we can manually specify them using `asarUnpack`.
Reviewed By: nikoant
Differential Revision: D21089067
fbshipit-source-id: 71ddc5c046a3aa3d81b21c0b958490add332614e
Summary: Set typings as devDependencies for pkg and pkg-lib packages
Reviewed By: passy
Differential Revision: D21092027
fbshipit-source-id: 7750f1796458bd88ea9ff620f3bb2e3e14ea7ca0
Summary: "flipper-pkg" added ~2MB to Flipper disttributive size, because of heavy dependencies which are only required for CLI functionality. See size warning in diff D21068373 in this stack where I added pkg as dependency to flipper. Here I'm splitting it into library and CLI packages, so Flipper app will only reference the library.
Reviewed By: passy
Differential Revision: D21087336
fbshipit-source-id: d9d62f1e75a835d1c0fa78ff1addb0d9a761a9c7
Summary:
Adds a GitHub action that applies a label to issues where the original
author has responded to.
Pull Request resolved: https://github.com/facebook/flipper/pull/1022
Test Plan: Try it out?
Reviewed By: jknoxville
Differential Revision: D21089462
Pulled By: passy
fbshipit-source-id: 6a728d1acf710d36835bfc5966648936ceb5586e
Summary:
This change makes it possible to remove preferences. I also added a `Delete` context menu option to `DataInspector` because I needed it to implement this feature. passy confirmed that it makes sense to add this because delete is a common action.
Fixes https://github.com/facebook/flipper/issues/451
Pull Request resolved: https://github.com/facebook/flipper/pull/1018
Reviewed By: jknoxville
Differential Revision: D21086308
Pulled By: passy
fbshipit-source-id: 551ff0908d5e6c93f58d6012b42e1ee3531de997
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/1016
YogaKit's version is compatible recent version of swift and also before the last release its swift version was not mentioned, which caused issues, but now there is no need to set the swift version.
Reviewed By: passy
Differential Revision: D21054723
fbshipit-source-id: 2210cf4beab86088533302028091e0bc44b9d232
Summary:
Just a convenient feature: `yarn start --open-dev-tools` opens Dev Tools window alongside with Flipper window.
Changelog: new command-line flag "--open-dev-tools" to automatically open Chrome Dev Tools for Flipper debugging.
Reviewed By: mweststrate
Differential Revision: D21074769
fbshipit-source-id: 12ae33ab74a3d35c54051321396d8701d72c7e32
Summary: "flipper-pkg" has dependency to "flipper-babel-transformer" and we use typescript to compile both of them, so we can use references here for incremental compilation.
Reviewed By: mweststrate
Differential Revision: D21070251
fbshipit-source-id: eadef024cebe8a85ddb8ef4e62bd613752a13c06
Summary: Moved getWatchFolders script to flipper-pkg and used it from other packages. Script helps to resolve all the folders with package dependencies including symlinked folders in case if plugin is a part of yarn workspaces.
Reviewed By: mweststrate
Differential Revision: D21068373
fbshipit-source-id: 8691837fdb1aef333dab4c13d8758262838d36ee
Summary: I think it is good to have error handlers where-ever possible, so that there is historical data in our monitoring when we need it, and can track from which point of the code it originates :)
Reviewed By: jknoxville
Differential Revision: D21040059
fbshipit-source-id: 1c07fbfa65379739554bc98f83761ae97870ba82
Summary: Unity is using this, and I noticed it was showing up as Web Browser which is a bit misleading.
Differential Revision: D21067698
fbshipit-source-id: 93d6a598824e61490e0eadd1b2c9fb3ebc12d01c
Summary: Component classes do not reflect the source of the component anymore.
Reviewed By: fabiomassimo
Differential Revision: D20595754
fbshipit-source-id: 645a63f78ee6aaaf75ac0c1e08bf67229a3f906b
Summary:
These haven't built in ages now and causing all sorts of
down-stream issues with Greenkeeper and release jobs. We need to find
a more sustainable way of running them.
Pull Request resolved: https://github.com/facebook/flipper/pull/1019
Test Plan: eyes
Reviewed By: priteshrnandgaonkar
Differential Revision: D21066022
Pulled By: passy
fbshipit-source-id: 0480b7f17ed04af490113cf5dfbbfec130ec9eb3
Summary: Fixed the patch disabling warnings for cyclic dependencies inside node_modules. It broke after I changed the way of bundling plugins.
Reviewed By: passy
Differential Revision: D21065488
fbshipit-source-id: f8891f007d14d2475df517b28452dc0b8346f113
Summary:
Originally, Flipper would use exceptions for the control flow of determining if there's no desktop client available. It would catch an exception and then kick off another attempt. This is cool, but if you are debugging an application where Flipper is enabled, and you set a breakpoint to detect all thrown exceptions, then you'll see an exception thrown inside Flipper logic every couple of seconds. That makes it hard to debug what you're trying to do.
There's a workaround where you can simply open Flipper, but that's a bit annoying.
This diff changes the logic in Flipper to not use exceptions for the part of connection where it's doing the initial connect. We could apply this to `doCertificateExchange` as well, but that's actually an error there so I don't see the need to do it there as well.
Reviewed By: jknoxville
Differential Revision: D21016737
fbshipit-source-id: cbdfe2794b4d38a9e3b8304ebee845655bb26ae5
Summary:
It solves the warning about caching not working but this doesn't really help us right now as builds are timing out and the cache is never filled in the first place.
Based on this: 56904692d4/lib/travis/build/script/objective_c.rb (L127)
Pull Request resolved: https://github.com/facebook/flipper/pull/1012
Reviewed By: nikoant
Differential Revision: D21042282
Pulled By: passy
fbshipit-source-id: b8e9475cd58033a8840a49b0897ac1dfffc0ddb3
Summary:
Forgot to add it here previously, so it will diverge
from others if there's a global NDK env var set.
Reviewed By: nikoant
Differential Revision: D21061431
fbshipit-source-id: 0a90211a63497bac467b2b9598c7c058145857cc
Summary:
This PR fixes a broken `Troubleshooting` link in the iOS setup page as well as adds that link to the React Native iOS one.
## Changelog
Add correct `Troubleshooting` page links
Pull Request resolved: https://github.com/facebook/flipper/pull/1013
Test Plan: Check `docs/getting-started/native-ios` and `docs/getting-started/react-native-ios`.
Reviewed By: mweststrate
Differential Revision: D21042264
Pulled By: passy
fbshipit-source-id: 3b069b3ffa51d5d290af410d8c85ecb316d76c32
Summary:
I was trying to plot some graphs based on our background plugin stats, grouped per plugin, but discovered that we can't exploded or group on json object keys, so separated the data into separate `plugin-stats-plugin` events, as is done with the `time-spent` event.
Also fixed:
* grouping stats per plugin, rather than per plugin method, which was to fine-grained
* added `bytesReceived` field to the cumulative event `plugin-stats`
Reviewed By: jknoxville
Differential Revision: D21046016
fbshipit-source-id: 1043612064921cf6427d5b3bbee10b76776df39e
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/999
Pritesh reminded me of this. Just some of the basics,
the plugin itself for simpler dep updates, Kotlin,
NDK (as the one referenced wasn't even installed on my laptop anymore),
Litho.
Reviewed By: jknoxville
Differential Revision: D20946199
fbshipit-source-id: 85ee57ef239ab219af3f07d90c121f3ab8b5f9b9
Summary:
D20920582 was unfortunately not enough to fix ability for Flipper to connect to packages that are running as services without an `<application>` tag in the manifest.
The issue there is that the push of `sonarCA.crt` succeeded due to erroneous changes to the target package.
This change ensures both pull and push are covered.
Reviewed By: jknoxville
Differential Revision: D21024673
fbshipit-source-id: cad86ba9ae3b02a99187d3f6bd3b500d2a4b971a
Summary:
We've ported [Reactotron](https://infinite.red/reactotron) to work as a Flipper plugin. This adds a new section listing known community plugins and starts with Reactotron-in-Flipper as an example.
## Changelog
Added one section to the React Native page.
Pull Request resolved: https://github.com/facebook/flipper/pull/1009
Test Plan: Docs-only.
Reviewed By: passy
Differential Revision: D21039079
Pulled By: mweststrate
fbshipit-source-id: 1187119d78baba321012f8ffa243685b25441e9d
Summary: Updated Metro to the latest version 0.59.0
Reviewed By: passy
Differential Revision: D21027614
fbshipit-source-id: 0b2c1c422dfed7e8426bb9a36c5626f3a96eb8f6
Summary:
Solves this T65385916.
Before this diff the bugreporter showed a disabled UI while waiting for the upload to finish. Its confusing for the user as, it can be seen from the above the task. Thus I added an intermediate UI with a spinner and a text "Submitting..." which makes it clear for the user that we are uploading a bug report.
Reviewed By: mweststrate
Differential Revision: D21017426
fbshipit-source-id: ce12dfbefc8726adfad9ef17abd744cc92c254ed
Summary: Currently Flipper shows empty Changelog with only "pre-history" entry. This is because of path in generation script is wrong now. Flipper shows Changelog.md from desktop/static, so generated entries should be added there rather than to Changelog.md in the root.
Reviewed By: passy
Differential Revision: D21016884
fbshipit-source-id: 8709a2556374ec70bc665eaf0729bb85fd0d913f
Summary:
This diff enables optional [Fast Refresh](https://reactnative.dev/docs/fast-refresh) for Flipper in dev mode. It can be opted-in using additional argument "--fast-refresh": `yarn start --fast-refresh`. I've copy-pasted the most part of implementation from React Native with some minor changes.
I made this optional for now as it works not ideally. In most cases which I checked it works fine, however for some files it falls back to full refresh (e.g. when `desktop/plugins/network/index.tsx` changed) and sometimes doesn't refresh content even after change detected and re-compiled (e.g. when `src/ui/components/searchable/Searchable.tsx` is changed, Network plugin which is dependent on it is not refreshed automatically).
State from redux is restored after fast refresh, but local state in class-based components is cleared. For function-based components local state is also stored, so it's an additional point to make plugins components functional :)
Also, for now there is no UI for Fast Refresh (loading indicator etc), information is just logged to console.
Changelog: Experimental support for Fast Refresh in dev mode can be enabled by `yarn start --fast-refresh`.
Reviewed By: jknoxville
Differential Revision: D20993073
fbshipit-source-id: 65632788df105a85fac0b924b7808120900b349e
Summary: Auto-format for js files was broken on my machine. It seems that there is a conflict between eslint and prettier and the latter is trying to format files after eslint using different rules for that. Option to disable prettier formatting for already formatted files fixed this issue for me.
Reviewed By: jknoxville
Differential Revision: D20994053
fbshipit-source-id: 6e90be7f58f2891ce2143bca8c3d76118b9cfba3
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/998
After this diff all the default plugins (which are distributed with Flipper) will be included into the main app bundle instead of bundling each of them separately and then loading from file system. This is done by auto-generating plugins index in build-time and importing it from Flipper app bundle, so Metro can follow these imports and bundle all the plugins to the app bundle.
This provides several benefits:
1) reduced Flipper bundle size (~10% reduction of zipped Flipper archive), because Metro bundles each of re-used dependencies only once instead of bundling them for each plugin where such dependency used.
2) Faster Flipper startup because of reduced bundle and the fact that we don't need to load each plugin bundle from disk - just need to load the single bundle where everything is already included.
3) Metro dev server for plugins works in the same way as for Flipper app itself, e.g. simple refresh automatically recompiles bundled plugins too if there are changes. This also potentially should allow us to enable "fast refresh" for quicker iterations while developing plugins.
4) Faster build ("yarn build --mac" is 2 times faster on my machine after this change)
Potential downsides:
1) Currently all the plugins are identically loaded from disk. After this change some of plugins will be bundled, and some of them (third-party) will be loaded from disk.
2) In future when it will be possible to publish new versions of default plugins separately, installing new version of such plugin (e.g. with some urgent fix) will mean the "default" pre-built version will still be bundled (we cannot "unbundle" it :)), but we'll skip it and instead load new version from disk.
Changelog: Internals: include default plugins into the main bundle instead producing separate bundles for them.
Reviewed By: passy
Differential Revision: D20864002
fbshipit-source-id: 2968f3b786cdd1767d6223996090143d03894b92
Summary:
Refactored plugins compilation script by splitting it into 3 scripts: 1) search plugins 2) compile plugins 3) watch plugins.
No functional changes in this review, it's just preparation for further changes.
Reviewed By: passy
Differential Revision: D20860443
fbshipit-source-id: 02900430199875574b992e597d09b82d0d7f32ef
Summary:
Treat only packages with "flipper-plugin" keyword as Flipper plugins. This will allow to place lib packages re-used by different plugins into "plugins" folder.
Changelog: Internals: it is now possible to add modules for re-use by different plugins into `desktop/plugins` folder.
Reviewed By: mweststrate
Differential Revision: D20898133
fbshipit-source-id: 8934870350ce42af3dc8060d1494025519ed307e
Summary: We cannot just add internal plugins as workspaces to the root package.json in "sonar/desktop" as they are not open-sourced, so public build will break. Instead, I have created root package.json for internal plugins and added all internal plugins as workspaces there. This means all these plugins will use the single root yarn.lock and installation of their dependencies will be faster. This also means that plugins can declare dependencies to other local packages included into workspaces and they will be symlinked automatically.
Reviewed By: mweststrate
Differential Revision: D20806237
fbshipit-source-id: f8b3327166963dec7da8ac74079682aebe4527e1
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/969
Added all public plugins as workspaces to the root package.json. This means all these plugins will use the single root yarn.lock and installation of their dependencies will be faster. This also means that plugins can declare dependencies to other local packages included into workspaces and they will be symlinked automatically.
Changelog: Internals: plugins added as "yarn workspaces" into the root package.json to simplify dependency management between them
Reviewed By: mweststrate
Differential Revision: D20805231
fbshipit-source-id: e85c62d3195d1ea3c5c60def6ca12318a2b53466
Summary: Adding id field for the currently logged in user in the store's state
Reviewed By: passy
Differential Revision: D20928642
fbshipit-source-id: eff5373bd88ed8fd228193b47649f586cf20b585
Summary: As per the title it adds the CK support to the Flipper's support form.
Reviewed By: jknoxville
Differential Revision: D20943408
fbshipit-source-id: bc8f0ac6a4974fe8258e91d7ac9437931c4d4abd
Summary: Allow optionally to provide the device title to select a plugin in. Currently, there's only support for `flipper://<app>/<plugin_id>`. This allows to add a `?device=<specifier>`.
Reviewed By: mweststrate
Differential Revision: D20920587
fbshipit-source-id: e7df4b510f1adfa9c2c9d072f6aebca1edb89cc0
Summary: When an android package is not an application, the `run-as` command will fail. In this case, the package might be an operating system service package. In this case, it may be possible for the user to run adb as root. Note that Flipper does not restart adbd via `adb root` on behalf of the user; the command is simply retried without `run-as`.
Reviewed By: jknoxville
Differential Revision: D20920582
fbshipit-source-id: 8db86084c3c3a61d8322edb1e34fdfdf48d0412d
Summary:
Added a graph to show how much data is sent to plugins. The tooltip shows a sorted overview of the amount of data.
Will put up a GK so that plugin devs can get this data also more easily
Reviewed By: jknoxville
Differential Revision: D20919321
fbshipit-source-id: f2b78b21ef34551e0ed562b009589d2a5dba9ff3
Summary:
Measure how many byte we receive per plugin, and add this to the plugin stats that are collected
Will add a graph to the flipper dashboard, and probably a small visualization in a next diff as well.
Reviewed By: priteshrnandgaonkar
Differential Revision: D20917583
fbshipit-source-id: bb341531ecf8492080af82c56e73c0ec608f7b36
Summary:
***
☝️ **Important announcement:** Greenkeeper will be saying goodbye 👋 and passing the torch to Snyk on June 3rd, 2020! [Find out how to migrate to Snyk and more at greenkeeper.io](https://greenkeeper.io)
***
## The dependency [electron-devtools-installer](https://github.com/MarshallOfSound/electron-devtools-installer) was updated from `2.2.4` to `3.0.0`.
This version is **not covered** by your **current version range**.
If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.
---
**Publisher:** [marshallofsound](https://www.npmjs.com/~marshallofsound)
**License:** MIT
<details>
<summary>Release Notes for v3.0.0</summary>
<h1><a href="https://urls.greenkeeper.io/MarshallOfSound/electron-devtools-installer/compare/v2.2.4...v3.0.0">3.0.0</a> (2020-04-07)</h1>
<h3>Bug Fixes</h3>
<ul>
<li>make extension store directory recursively (<a href="82479523e2">8247952</a>)</li>
<li>only allow installs from the main process (<a href="fc1d8781b6">fc1d878</a>)</li>
<li>support dynamic application path (<a href="https://urls.greenkeeper.io/MarshallOfSound/electron-devtools-installer/issues/88" data-hovercard-type="pull_request" data-hovercard-url="/MarshallOfSound/electron-devtools-installer/pull/88/hovercard">https://github.com/facebook/flipper/issues/88</a>) (<a href="e9471f9042">e9471f9</a>)</li>
<li>use ES6 standard imports for electron modules. Closes <a href="https://urls.greenkeeper.io/MarshallOfSound/electron-devtools-installer/issues/116" data-hovercard-type="pull_request" data-hovercard-url="/MarshallOfSound/electron-devtools-installer/pull/116/hovercard">https://github.com/facebook/flipper/issues/116</a> (<a href="dc0f6e4391">dc0f6e4</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>test:</strong> add mobx to unit tests (<a href="https://urls.greenkeeper.io/MarshallOfSound/electron-devtools-installer/issues/95" data-hovercard-type="pull_request" data-hovercard-url="/MarshallOfSound/electron-devtools-installer/pull/95/hovercard">https://github.com/facebook/flipper/issues/95</a>) (<a href="6d4f699877">6d4f699</a>)</li>
<li>Only allow installs from the main process (<a href="d692149da5">d692149</a>)</li>
</ul>
<h3>BREAKING CHANGES</h3>
<ul>
<li>Only allow installs from the main process</li>
</ul>
<p>The remote is being deprecated and as such we should not rely on it for what is a buggy and very small usability tweak.</p>
</details>
<details>
<summary>Commits</summary>
<p>The new version differs by 22 commits.</p>
<ul>
<li><a href="d692149da5"><code>d692149</code></a> <code>feat: Only allow installs from the main process</code></li>
<li><a href="0f3ebfc9d3"><code>0f3ebfc</code></a> <code>chore: update NPM readme badge</code></li>
<li><a href="ba9648c2b9"><code>ba9648c</code></a> <code>chore: update README badges</code></li>
<li><a href="776912cf7d"><code>776912c</code></a> <code>BREAKING CHANGE: Only allow installs from the main process</code></li>
<li><a href="ae075d13bc"><code>ae075d1</code></a> <code>build: update CFA plugin</code></li>
<li><a href="0dde83b4a7"><code>0dde83b</code></a> <code>build: use latest v10 node for release CI</code></li>
<li><a href="cc8700c784"><code>cc8700c</code></a> <code>build: update version number for CFA</code></li>
<li><a href="9628782f2f"><code>9628782</code></a> <code>build: add CFA</code></li>
<li><a href="7d5f157939"><code>7d5f157</code></a> <code>docs: clean up README</code></li>
<li><a href="6d4f699877"><code>6d4f699</code></a> <code>feat(test): add mobx to unit tests (https://github.com/facebook/flipper/issues/95)</code></li>
<li><a href="dc0f6e4391"><code>dc0f6e4</code></a> <code>fix: use ES6 standard imports for electron modules. Closes https://github.com/facebook/flipper/issues/116</code></li>
<li><a href="82479523e2"><code>8247952</code></a> <code>fix: make extension store directory recursively</code></li>
<li><a href="fc1d8781b6"><code>fc1d878</code></a> <code>fix: only allow installs from the main process</code></li>
<li><a href="a5dfe4c1b1"><code>a5dfe4c</code></a> <code>build: rename prepublish to prepare, closes https://github.com/facebook/flipper/issues/120</code></li>
<li><a href="a5242e1fd8"><code>a5242e1</code></a> <code>build: update dependencies</code></li>
</ul>
<p>There are 22 commits in total.</p>
<p>See the <a href="0b07982a06...d692149da5">full diff</a></p>
</details>
---
<details>
<summary>FAQ and help</summary>
There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>
---
Your [Greenkeeper](https://greenkeeper.io) bot 🌴
Pull Request resolved: https://github.com/facebook/flipper/pull/988
Test Plan:
{F233368502}
Tested in Flipper
Reviewed By: cekkaewnumchai
Differential Revision: D20889307
Pulled By: passy
fbshipit-source-id: 63ed886cceefe34dc7d4212f25d05c5e13f7dab8