Summary: We don't need to re-publish plugin package when only docs are changed, so excluding "docs" from checksum computation
Differential Revision: D29508239
fbshipit-source-id: dfae89432f68b784caf07ae24ba7711f76c649b4
Summary:
Changelog: Flipper message debugging moved from a separate device to the console tab
This makes message debugging easier accessible, and in production (recently requested at GH). Also it clears up a lot of infra that was created just to make flipper a self recursive inspection device + a separate plugin. While fun, a hardcoded setup is just a bit more simpler (no exception rules and better static verification)
Reviewed By: nikoant
Differential Revision: D29487811
fbshipit-source-id: b412adc3ef5bd831001333443b432b6c0f934a5e
Summary:
Changelog: Add support for negative filters in data tables
As requested per somewhere on workplace but couldn't find it back :)
Reviewed By: nikoant
Differential Revision: D29486096
fbshipit-source-id: 467c8598f6d09afc9a5ed85affb6c51840afe00c
Summary: Removing old components that are no longer used, and cleaning up index.tsx to prevent future for some of those
Reviewed By: nikoant
Differential Revision: D29428621
fbshipit-source-id: 78ae51c09510738cf2d75982fdae35b9ef6d2d7e
Summary: Fury was the last user of this component
Reviewed By: nikoant
Differential Revision: D29426804
fbshipit-source-id: 793135119e70b41eda0391d3fedee1c9b6834cbd
Summary:
This removes all code duplication / old plugin infra that isn't needed anymore when all plugin run on the Sandy plugin infra structure.
The diff is quite large, but the minimal one that passes tests and compiles. Existing tests are preserved by wrapping all remaining tests in `wrapSandy` for classic plugins where needed
Reviewed By: passy
Differential Revision: D29394738
fbshipit-source-id: 1315fabd9f048576aed15ed5f1cb6414d5fdbd40
Summary:
Since the Sandy wrapper is now rolled out to 100%, removing the GK. Further code cleanup in next diffs.
Changelog: Flipper that don't use the new Sandy plugin format yet (see https://fbflipper.com/docs/extending/sandy-migration) will now always be loaded inside a legacy container
Reviewed By: timur-valiev
Differential Revision: D29394736
fbshipit-source-id: f7a7c321c6b6a82470d47e4352d86135c3849b82
Summary:
Bumps [jest](https://github.com/facebook/jest) from 27.0.4 to 27.0.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/jest/releases">jest's releases</a>.</em></p>
<blockquote>
<h2>27.0.6</h2>
<h3>Fixes</h3>
<ul>
<li><code>[*]</code> Publish all modules to include the build change in <a href="https://github-redirect.dependabot.com/facebook/jest/pull/11569">#11569</a></li>
</ul>
<h2>27.0.5</h2>
<h3>Features</h3>
<ul>
<li><code>[jest/fake-timers]</code> Flush callbacks scheduled with <code>requestAnimationFrame</code> every 16ms when using legacy timers. (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11567">#11523</a>)</li>
<li><code>[pretty-format]</code> Use <code>globalThis</code> (with polyfill if required) to bring support for esbuild's browser bundling mode (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11569">#11569</a></li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-core]</code> Support special characters like <code>@</code>, <code>+</code> and <code>()</code> on Windows with <code>--findRelatedTests</code> (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11548">#11548</a>)</li>
<li><code>[jest/fake-timers]</code> Do not add <code>setImmediate</code> and <code>clearImmediate</code> if they do not exist in the global environment (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11599">#11599</a>)</li>
<li><code>[jest/reporters]</code> Allow <code>node-notifier@10</code> as peer dependency (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11523">#11523</a>)</li>
<li><code>[jest/reporters]</code> Update <code>v8-to-istanbul</code> (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11523">#11523</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/jest/blob/master/CHANGELOG.md">jest's changelog</a>.</em></p>
<blockquote>
<h2>27.0.6</h2>
<h3>Fixes</h3>
<ul>
<li><code>[*]</code> Publish all modules to include the build change in <a href="https://github-redirect.dependabot.com/facebook/jest/pull/11569">#11569</a></li>
</ul>
<h2>27.0.5</h2>
<h3>Features</h3>
<ul>
<li><code>[jest/fake-timers]</code> Flush callbacks scheduled with <code>requestAnimationFrame</code> every 16ms when using legacy timers. (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11567">#11523</a>)</li>
<li><code>[pretty-format]</code> Use <code>globalThis</code> (with polyfill if required) to bring support for esbuild's browser bundling mode (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11569">#11569</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-core]</code> Support special characters like <code>@</code>, <code>+</code> and <code>()</code> on Windows with <code>--findRelatedTests</code> (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11548">#11548</a>)</li>
<li><code>[jest/fake-timers]</code> Do not add <code>setImmediate</code> and <code>clearImmediate</code> if they do not exist in the global environment (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11599">#11599</a>)</li>
<li><code>[jest/reporters]</code> Allow <code>node-notifier@10</code> as peer dependency (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11523">#11523</a>)</li>
<li><code>[jest/reporters]</code> Update <code>v8-to-istanbul</code> (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11523">#11523</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d257d1c44b"><code>d257d1c</code></a> v27.0.6</li>
<li><a href="48cda778b2"><code>48cda77</code></a> chore: update lockfile after publish</li>
<li><a href="dafa4737dc"><code>dafa473</code></a> v27.0.5</li>
<li><a href="83a7ca3def"><code>83a7ca3</code></a> chore: update changelog for release</li>
<li><a href="6373529888"><code>6373529</code></a> fix(legacy-timers): Do not add <code>setImmediate</code> and <code>clearImmediate</code> if they do...</li>
<li><a href="e5f9f2197b"><code>e5f9f21</code></a> chore(docs): run prettier</li>
<li><a href="6826764078"><code>6826764</code></a> chore(docs): correct generated mock example</li>
<li><a href="6308b6c8e4"><code>6308b6c</code></a> Fix docs: Update MockFunctions.md (<a href="https://github-redirect.dependabot.com/facebook/jest/issues/11556">#11556</a>)</li>
<li><a href="0a210dc434"><code>0a210dc</code></a> docs: enable syntax highlighting to a code block (<a href="https://github-redirect.dependabot.com/facebook/jest/issues/11594">#11594</a>)</li>
<li><a href="7be63ef9a2"><code>7be63ef</code></a> Use <code>globalThis</code> (with fallback if needed) instead of <code>global</code> to enable esbu...</li>
<li>Additional commits viewable in <a href="https://github.com/facebook/jest/compare/v27.0.4...v27.0.6">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/2536
Reviewed By: priteshrnandgaonkar
Differential Revision: D29489931
Pulled By: passy
fbshipit-source-id: cbd242764b3a5db721182aff181148c3614b8ecb
Summary:
This PR splits the linting of the flipperkit pods into different subspecs. This will fasten the overall validation time. Before, all the pods were validated in a serialised fashion, but now its done in a parallel way.
This brings down the total validation time from 2+ hrs to ~ 25mins
## Changelog
- Split the validation of the FlipperKit pod into parallelised subspecs
Pull Request resolved: https://github.com/facebook/flipper/pull/2540
Test Plan: https://github.com/facebook/flipper/actions/runs/986790548
Reviewed By: passy
Differential Revision: D29489716
Pulled By: priteshrnandgaonkar
fbshipit-source-id: 55557c581d56ee01796ca64405cf78b647d2a68b
Summary:
Github build is currently broken, so I'm removing this for now while I'm looking for the proper fix.
Failed job: https://github.com/facebook/flipper/runs/2947749418
Reviewed By: priteshrnandgaonkar
Differential Revision: D29491530
fbshipit-source-id: a2430033e18d3883adf2617beb0c60a67db5e183
Summary: Just some documentation on documenting plugins
Reviewed By: jknoxville
Differential Revision: D29488048
fbshipit-source-id: 1fef3d66894e7e2659043c02c82dab71963ecbff
Summary:
This PR adds a script to publish pods. It handles different edge cases like:
- The version was already pushed but still you are trying to push it, it will skip in that case and give a proper message.
- This also makes sure that the same version Flipper pod exists before pushing FlipperKit.
- It also has the retry mechanism in place if at all the pod trunk push fails to push.
## Changelog
Updated the workflow to push pods
Pull Request resolved: https://github.com/facebook/flipper/pull/2511
Test Plan:
While pushing already published release:
https://github.com/facebook/flipper/actions/runs/974346766
While pushing new release:
https://github.com/facebook/flipper/actions/runs/978707041
Reviewed By: passy
Differential Revision: D29415078
Pulled By: priteshrnandgaonkar
fbshipit-source-id: f0fb68a2e399802e5719d7be4216d4a5ed6ef782
Summary: Show a new view when a disabled/uninstalled plugin is selected in open-source Flipper build. I'm going to improve it later with additional info from npm packages metadata. For now it just shows status of the plugin and button to install/enable it.
Reviewed By: mweststrate
Differential Revision: D29482937
fbshipit-source-id: 45d207d3f6e846c354184f2b5fd911751d3164b0
Summary: Moved plugin documentation and related assets to plugin folders, fixed links and configured redirects where required. Now these docs are used for both showing docs in Flipper and generating Flipper docs website.
Reviewed By: passy
Differential Revision: D29465567
fbshipit-source-id: 3ec4240b215b0d5baea5154f64266a9ba7ead3a5
Summary: As we now allow selection of disabled plugins we need to track plugin usage a bit smarter. We'll add a new field "pluginEnabled" to the logged messages to indicate whether selected plugin is enabled or not.
Reviewed By: cekkaewnumchai
Differential Revision: D29455248
fbshipit-source-id: 32c79e0961653edc8f4cc89adecc2662b37cbd7b
Summary: Intercept click to links in the embedded documentation and redirect them to the default browser.
Reviewed By: passy
Differential Revision: D29426270
fbshipit-source-id: 1d3d9613ff827f80287883768452b93701e95d96
Summary:
This diff changes the way on how plugin documentation is produced. Instead of keeping plugin documentation together with other docs, we will now keep it together with plugin code. There are multiple advantages of such solution:
1. We are generating docs for every plugin in a standartised way so all of them looks similar. We can also use plugin metadata for generation as well (e.g. take title, icon, oncall name etc from package.json).
2. Standartised plugin docs make it possible to build docs both for websites (public and internal) and for embedding into Flipper.
3. It will hopefully incentivise authors to write docs as they will be a part of plugin "package".
4. We can scaffold documentation template using scarf to further incentivise filling it.
Reviewed By: jknoxville
Differential Revision: D29378053
fbshipit-source-id: 66ea48dc9ba225fabfb256ae6a10f8c81eef6f5f
Summary: Updated PluginInfo component to show info about uninstalled and unavailable plugins in addition to enabled/disabled. Now any selected plugin will be shown there. For uninstalled plugins we will show "Install" action button. For unavailable plugins we wiil show an alert describing why plugin is unavailable.
Reviewed By: mweststrate
Differential Revision: D29254970
fbshipit-source-id: 0de32da5b5550ff6b7d452abf6ff7259677aebc5
Summary: Changed PluginContainer implementation to allow selecting unavailable/uninstalled plugins which was impossible before that. Please note that for now something is shown only for enabled and disabled plugins. In next diff I'm also adding content for unavailable and uninstalled plugins.
Reviewed By: mweststrate
Differential Revision: D29254788
fbshipit-source-id: da639e5efddc821061abb69df534ffdce8ccd4e0
Summary: Use selectors to re-compute and cache plugin lists according to the selected device and app.
Reviewed By: mweststrate
Differential Revision: D29247845
fbshipit-source-id: 4bc669d5d441d605c4090086c4ce59b6d9684a4c
Summary: Initial layout for Plugin Info view built based on Plugin Manager Flow mockups.
Reviewed By: mweststrate
Differential Revision: D29186006
fbshipit-source-id: 01fafbdba049baf2e573228ff5b939ebc4871db2
Summary: Use set instead of array to keep list of supported plugins per client. It is not used as array anyway, in most places it is used to determine whether a plugin is supported or not and it's much faster to use set for that.
Reviewed By: priteshrnandgaonkar
Differential Revision: D29200673
fbshipit-source-id: 5f3c404a1a668c153867d7c1b6c223941f0b3b36
Summary: Moved PluginEnabler component from PluginContainer into a separate file PluginInfo and also refactored it to not use deprecated components. In following diffs I will be extending PluginInfo to show not only enabler, but also additional information about the currently selected plugin.
Reviewed By: priteshrnandgaonkar
Differential Revision: D29186007
fbshipit-source-id: 4c8af9dcc4dc53476b9c50305f2221aeb009553e
Summary:
This diffs removes restrictions on selecting disabled, uninstalled and unsupported plugins. Now it will be possible to select them, however for now empty view will be shown in such case.
In next diffs I'll add Plugin Info view which will be shown in case disabled plugin is selected. It will show static info about plugin - readme, version, oncall, user feedback group etc. This will make it possible for users to browse info about all plugins, even unsupported by selected device/app.
There is one problem that our analytics will be screwed by this change as even disabled plugins will be counted as used. I'll address this later in this stack.
If you see other potential problems with removing restrictions on selecting disabled plugins - please let me know.
Reviewed By: passy
Differential Revision: D29186005
fbshipit-source-id: 2e55c5fd3bb402594f4dbace6e287725de65bc6f
Summary: Went over all plugins and did superficial fixes to make most plugins look decent or at least usable in dark mode, which before they weren't :)
Reviewed By: priteshrnandgaonkar
Differential Revision: D29456680
fbshipit-source-id: 3952e5da512c68b89434eea081faf121d1049908
Summary:
Changelog: Improved dark mode support!
This diff makes sure that the dark mode preference is written to the Flipper config, and applied during startup, so that the ugly light/dark flash when starting Flipper in dark mode disappears
Reviewed By: passy
Differential Revision: D29436059
fbshipit-source-id: 0f762149848298512026fbd216d9a9e0bf4276db
Summary:
This diff adds OS support for dark mode (at least on Mac), by making sure system elements are styled according to system dark theme.
For some unknown reason, this does apply to all system dialogs, titlebars etc, but not for scrollbars, so they got custom themed.
Differential Revision: D29436058
fbshipit-source-id: bac649b6cd81f0142c607ed567eeb00f41625041
Summary:
This diff adds Sandy colors and dark mode support to the `DataInspector` and `LayoutInspector` components, and coverts hardcoded colors to semantic colors. Currently only one set of colors is used since they contrast fine with both dark and light mode, but this could be deviated from now onwards.
Also styled the legacy ManagedTable and Panel, since they are so commonly used (will convert more legacy components in next diffs).
Reviewed By: passy
Differential Revision: D28056698
fbshipit-source-id: 5a85103983f89e82b7f000d309bb9e1e1f07491d
Summary:
Changelog: [Flipper] Improve serialisation mechanism format & speed
The default serialisation mechanism used by Flipper to serialise plugin states is very flexible, taking care of maps, sets, dates etc. However, it is also really slow, leading to issues like in the related tasks, and work arounds like D17402443 (98bc01618f) to skip the whole process for plugins.
This diff changes the serialisation mechanism to have a better trade off between speed and convenience: For now we will only apply the smart serialisation for objects living at the _root_ of the serialised object, but it won't be applied recursively.
This sounds like a dangerous change, but works well in practice:
* I went through all `persistedState` and `createState` definition (the types), and the idea that complex types like Map and Set only live at the root of the persisted state holds up nicely. That makes sense as well since plugins typically store literally the same data as that they have received over the wire, except that they put it in some maps, sets etc.
* I introduced `assertSerializable` that only runs in dev/test, which will check (recursively, but without all the cloning) to see if a tree is indeed serialisable.
* The fact that by swapping this mechanism rarely existing unit test for exportData needed changes proves that the assumption that only roots are relevant generally upholds (or that plugin authors don't write enough tests ;-)).
* I verified that popular plugins still import / export correctly (actually *more* plugins are exportable now than before, thanks to sandy wrapper introduced earlier)
Reviewed By: jknoxville
Differential Revision: D29327499
fbshipit-source-id: 0ff17d9c5eb68fccfc2937b634cfa8f4f924247d
Summary: per title, for reasons see next diff :)
Reviewed By: passy
Differential Revision: D29327501
fbshipit-source-id: 548d943e90769af478232d3031d916fb399a067a
Summary: Noticed that when creating a flipper trace file, the errors were only shown in the console, but the dialog would hide.
Reviewed By: jknoxville, passy
Differential Revision: D29327500
fbshipit-source-id: 0ec60be28b5e3041f7cacd48ac4bcf13753f7219
Summary:
Changelog: 'flipper' package no longer uses or exposes immutablejs, or ManagedTable_Immutable
ImmutableJS was used in a few places, requires some specific knowledge to use optimally (e.g. batching was used nowhere), but most importantly resulted in a lot of unmaintained code duplication in terms of ManagedTable_immutable and the searchable variant.
For the planned trace export speedups this means that there is also serialization case less to worry about.
Reviewed By: jknoxville
Differential Revision: D29265677
fbshipit-source-id: 92e86081c03fb8da59d2c9f975f04a05e275c317
Summary: Sandcastle embedded the box ID in the source map URL which caused it to invalidate the caches. It shouldn't be there to begin with but the Metro option doesn't work as it's documented.
Reviewed By: nikoant
Differential Revision: D29456824
fbshipit-source-id: 5d8c5f29e2b344d046c802693e4da68fda92b8db
Summary:
This is an automated PR to update the Podfile.lock.
- Make sure that the Podfile.lock contains latest FlipperKit and Flipper pod versions.
- Also make sure that all the dependencies are updated to the latest one.
- This is auto-generated by [create-pull-request](https://github.com/peter-evans/create-pull-request)
Pull Request resolved: https://github.com/facebook/flipper/pull/2535
Test Plan:
Imported from GitHub, without a `Test Plan:` line.
|[Site Preview: flipper](https://our.intern.facebook.com/intern/staticdocs/eph/D29455139/V2/flipper/)
Reviewed By: jknoxville
Differential Revision: D29455139
Pulled By: priteshrnandgaonkar
fbshipit-source-id: 10eb515430f4ce16e7ab600e12ef68bdbb7614fb
Summary:
Bumps [testing-library/dom](https://github.com/testing-library/dom-testing-library) from 7.31.2 to 8.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/testing-library/dom-testing-library/releases"><code>@testing-library/dom</code>'s releases</a>.</em></p>
<blockquote>
<h2>v8.0.0</h2>
<h1><a href="https://github.com/testing-library/dom-testing-library/compare/v7.31.2...v8.0.0">8.0.0</a> (2021-06-23)</h1>
<h3>Recommendations</h3>
<ol>
<li>If you're using <code>jest</code> fake timers make sure you use modern timers
jest 27:
<pre lang="diff"><code>-jest.useFakeTimers('legacy')
+jest.useFakeTimers('modern')
// jest.config.js
-"timers": "legacy",
+"timers": "modern",
</code></pre>
jest 26:
<pre lang="diff"><code>-jest.useFakeTimers()
+jest.useFakeTimers('modern')
// jest.config.js
-"timers": "legacy",
+"timers": "modern",
</code></pre>
</li>
</ol>
<h3>chore</h3>
<ul>
<li>Release v8 as stable (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/979">https://github.com/facebook/flipper/issues/979</a>) (<a href="d347302d6b">d347302</a>)</li>
</ul>
<h3>BREAKING CHANGES</h3>
<ul>
<li>Remove deprecated <code>waitFormDOMChange</code></li>
<li>Remove deprecated <code>waitForElement</code></li>
<li>The <code>timeout</code> in <code>waitFor(callback, { interval, timeout } )</code> now uses the same clock as <code>interval</code>. Previously <code>timeout</code> was always using the real clock while <code>interval</code> was using the global clock which could've been mocked out. For the old behavior I'd recommend <code>waitFor(callback, { interval, timeout: Number.POSITIVE_INFINITY })</code> and rely on your test runner to timeout considering real timers.</li>
<li><code><script /></code>, <code><style /></code> and comment nodes are now ignored by default in <code>prettyDOM</code> .If you whish to return to the old behavior, use a custom <code>filterNode</code> function. In this case <code>prettyDOM(element, { filterNode: () => true })</code>.</li>
<li>node 10 is no longer supported. It reached its end-of-life on 30.04.2021.</li>
</ul>
<h2>v8.0.0-alpha.7</h2>
<h1><a href="https://github.com/testing-library/dom-testing-library/compare/v8.0.0-alpha.6...v8.0.0-alpha.7">8.0.0-alpha.7</a> (2021-06-20)</h1>
<h3>Bug Fixes</h3>
<ul>
<li>Consider <code><output /></code> labelable (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/968">https://github.com/facebook/flipper/issues/968</a>) (<a href="56a4c759a0">56a4c75</a>)</li>
</ul>
<h2>v8.0.0-alpha.6</h2>
<h1><a href="https://github.com/testing-library/dom-testing-library/compare/v8.0.0-alpha.5...v8.0.0-alpha.6">8.0.0-alpha.6</a> (2021-06-12)</h1>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="84ebc5124f"><code>84ebc51</code></a> test(fake-timers): raf is now mocked in legacy fake timers (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/986">https://github.com/facebook/flipper/issues/986</a>)</li>
<li><a href="d347302d6b"><code>d347302</code></a> chore: Release v8 as stable (<a href="https://github-redirect.dependabot.com/testing-library/dom-testing-library/issues/979">https://github.com/facebook/flipper/issues/979</a>)</li>
<li>See full diff in <a href="https://github.com/testing-library/dom-testing-library/compare/v7.31.2...v8.0.0">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Pull Request resolved: https://github.com/facebook/flipper/pull/2529
Reviewed By: mweststrate
Differential Revision: D29429955
Pulled By: cekkaewnumchai
fbshipit-source-id: 7a25bed5e6d85534a48815ddc5a5a5a701df5e7b