Summary: Restored support for device icons which was disabled in previous diff
Reviewed By: passy
Differential Revision: D31054802
fbshipit-source-id: 107a53f06159211534cb9a2316340af7a7ca530a
Summary:
This stack takes care of handling care of moving all device interactions over the (possible) async channel FlipperServer. The FlipperServer interface (see previous diff) allows listening to specific server events using `on`, and emit commands to be executed by the server by using `exec` (e.g. `exec('take-screenshot', serial) => Promise<buffer>`).
FlipperServerImpl implements this interface on the server side.
The device implementations are split as follows
```
server / backend process:
ServerDevice
- iOSDevice
- AndroidDevice
- MetroDevice
- DummyDevice
- Mac/Windows Device
frontend / ui:
BaseDevice: a normal connected, device, implements device apis as they already existed
- ArchivedDevice (note that this doesn't have a server counterpart)
- TestDevice (for unit tests, with stubbed backend communication)
```
All features of devices are for simplicity unified (since the deviations are small), where specific device types might not implement certain features like taking screenshots or running shell commands.
To avoid making this diff unnecessarily big, some open Todo's will be addressed later in this stack, and it shouldn't be landed alone.
Reviewed By: timur-valiev
Differential Revision: D30909346
fbshipit-source-id: cce0bee94fdd5db59bebe3577a6084219a038719
Summary: This is the first diff in a stack of many where server and UI logic is further decoupled to be only communication through an event listener / emitting commands, where all data going over these media is json serializable. In this diff we extract the common interfaces that are to be used by both server and UI layer.
Reviewed By: passy
Differential Revision: D30899609
fbshipit-source-id: dc3c783707d47671f1d0f5dbf99cde17a8f69062
Summary: Take screenshot button state is not reset after screenshot taken. So Flipper can only take 1 screenshot per session.
Reviewed By: mweststrate
Differential Revision: D31018526
fbshipit-source-id: dc7b00f26c77ec94a8a15047f5ae835acdb710c7
Summary:
This change fixes a bug with the handled flag during the certificate exchange process.
Explanation:
handled was passed by reference as &handled
Once the function goes out of scope then the reference, well, it just becomes invalid (undefined behaviour)
In some cases, it appears as 'handled' because the reference is invalid and it happens to be 'true'.
Changelog: Fixed an issue where clients would randomly not connect to Flipper. Please update FlipperKit to 0.110.0 to apply the fix: https://fbflipper.com/docs/getting-started/react-native#using-the-latest-flipper-sdk
Reviewed By: mweststrate
Differential Revision: D31017592
fbshipit-source-id: c087a769fa23de1acfd3c198b4db4d6ccdb2be90
Summary:
As reported here: https://github.com/facebook/flipper/issues/2873, ADB would be initialised, even when disabled explicitly, resulting in an error if ADB could not be found.
Changelog: Fix: made sure that the "Android disabled" setting is respected.
Reviewed By: lblasa
Differential Revision: D31019099
fbshipit-source-id: 9d57945f2c21655426da42eb976dd46d8605d007
Summary: If a device disconnects and reconnects while keeping the plugin open, a new pluginInstance is available, but the React component would not be remounted since both the old and new pluginInstance have the same identifier (device/client/plugin). This change makes sure that if a different pluginInstance arrives, the rendering will be reinitialised as well.
Reviewed By: lblasa
Differential Revision: D31018845
fbshipit-source-id: ac09e7ac519c7aebfb4f8dc0cc7c6cda6fbbf633
Summary: Some code simplification. The validation functions are not async, so don't need promises. By combining the internal and non internal files, a lot of utilities can be kept local instead of exposing them
Reviewed By: lblasa
Differential Revision: D31018355
fbshipit-source-id: be568a70fc84971dbce82a8478495edf7dafb4a5
Summary:
When connecting both to an iOS emulator and physical device, the emulator devices would continuesly be replaced, and Flipper would print the warning
`Tried to replace still connected device XXX with a new instance`
Fixed the logical mistake that causes it. Not sure if this caused any actual bugs, but at least it was incorrect.
Reviewed By: lblasa
Differential Revision: D31015451
fbshipit-source-id: 32dd29043e9dc48357fdbf68cde930d3be11419a
Summary: I accidentally wrote a cert at the wrong location, but noticed that there was never raised an exception. Added error handing to surface the error. Seems the underlying RSocket implementation silently eats errors that escape from handlers....
Reviewed By: lblasa
Differential Revision: D31015168
fbshipit-source-id: 38480921c3cf33f3a5d91eb2ed4e3a912fdf74a7
Summary: If multiple apps connect simultanously, they could overwrite or cancel each other timeoutHandles, leading to potential incorrect messages.
Reviewed By: lblasa
Differential Revision: D31015171
fbshipit-source-id: 1d498a90c8a7a1847d2a961fc944d2f74e734cc2
Summary: While investigating Flipper to unblock D30990411. I found this untyped `device` field. This field is exactly the `Device` type in 'adbkit', so I did a small refactor to type it.
Reviewed By: timur-valiev
Differential Revision: D30996427
fbshipit-source-id: 9972a865c2dee009088635e57ef512969f404ddf
Summary:
My emulators stopped showing up, but I noticed they were still listed in adb devices as 'offline'. Seems to be a weird ADB issue, changing the developer settings on the emulator fixed that for me, so linked to the SO answer where I found the solution.
Changelog: Added warning about offline emulators in ADB
Reviewed By: nikoant
Differential Revision: D30957786
fbshipit-source-id: 5468a983b5364c0fe868610978c09382f6b43d91
Summary: Noticed in a support post that uninitialised devices could end up multiple times in the connecting list.
Reviewed By: timur-valiev
Differential Revision: D30957447
fbshipit-source-id: 11a2e3a9c52083245e66ebfb1899c00aeae6eb7e
Summary:
Noticed there are uncaught exception if adb cannot be found, that don't make it to the UI, but just cause no devices to be detected.
While testing, found that the unsafeClient fallback we use doesn't find the devices either. So it is unclear to me if it is helping in any case, and figured we'd better provide early signal to the user to set up adb correctly, rather than jumping through hoops and trying to work without it.
Changelog: Handle the absence of ADB better
Reviewed By: timur-valiev
Differential Revision: D30957220
fbshipit-source-id: 4d9a89bffefa96d3861d3f26224b4c74c19abd37
Summary:
The changes below add the notion of alternative ports to Flipper.
These alternative ports are meant to and will be used to connect via WebSocket instead of RSocket. The name does not suggest that as to make as generic as possible so that they can be reused for different purposes in the future.
Reviewed By: passy
Differential Revision: D30898874
fbshipit-source-id: 5eed8c61b41b502c859192aaac59c284b7b36228
Summary: There are some issues with label positioning, but overall works.
Reviewed By: defHLT
Differential Revision: D29588329
fbshipit-source-id: 5c2e8f6f139d997559111fa2ad124ae1d695b36a
Summary: Bump several deps of flipper-js-client-sdk at once, to close multiple dependabot PRs
Reviewed By: passy
Differential Revision: D30931608
fbshipit-source-id: 4c95a98e4fce805c8c92c605b3fd7eb71e7daaa7
Summary:
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.43 to 1.0.44.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dtolnay/anyhow/releases">anyhow's releases</a>.</em></p>
<blockquote>
<h2>1.0.44</h2>
<ul>
<li>Mark error constructors cold to help LLVM optimize code paths not leading to error (<a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/166">https://github.com/facebook/flipper/issues/166</a>, thanks <a href="https://github.com/stepancheg"><code>@stepancheg</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6c97c59375"><code>6c97c59</code></a> Release 1.0.44</li>
<li><a href="447eff84b0"><code>447eff8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/166">https://github.com/facebook/flipper/issues/166</a> from stepancheg/cold</li>
<li><a href="fa9bcc0457"><code>fa9bcc0</code></a> Mark error constructors cold</li>
<li><a href="b3c5e25860"><code>b3c5e25</code></a> Mirror PR 162 from readme to rustdoc</li>
<li><a href="bec8204d5f"><code>bec8204</code></a> Reword PR 162</li>
<li><a href="4d3adef908"><code>4d3adef</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/162">https://github.com/facebook/flipper/issues/162</a> from ArekPiekarz/readme-backtrace</li>
<li><a href="b45d6490c4"><code>b45d649</code></a> Ignore unhelpful Clippy lint in build script</li>
<li><a href="58b873a3cd"><code>58b873a</code></a> Add to README using backtraces on stable channel</li>
<li>See full diff in <a href="https://github.com/dtolnay/anyhow/compare/1.0.43...1.0.44">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/2847
Reviewed By: timur-valiev
Differential Revision: D30900762
Pulled By: mweststrate
fbshipit-source-id: e951554c0562fd53918843e58b8c1c3f13239bde
Summary:
Follow up on D29436059 (014e571f74), another place where the old format was leaked.
Fixes https://github.com/facebook/flipper/issues/2842 + some mentions on WP
Changelog: Fixed JavaScript exception on main thread occurring after loading Flipper
Reviewed By: nikoant
Differential Revision: D30928768
fbshipit-source-id: 083731e18230825738466b34368c2b5f730e386c
Summary: Sandy is idiomatic now, cleaned up old docs to avoid confusion as in https://github.com/facebook/flipper/issues/2611.
Reviewed By: passy
Differential Revision: D30908794
fbshipit-source-id: c4076f1d24b193f71923d19eeed631763bb9dacb
Summary:
Removed the Flipper QPL integration, see:
https://fb.workplace.com/groups/flippersupport/permalink/1200183003795689/
It complicates our build setup significantly, without actually being used anywhere for the past year. Apparently it doesn't solve a gap compared to the scuba logging we have already in place.
Reviewed By: passy
Differential Revision: D30911573
fbshipit-source-id: 836e2aba0c92c0eed9fed0dfb12bd8bdcb8c7d71
Summary:
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 27.1.0 to 27.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/jest/releases">babel-jest's releases</a>.</em></p>
<blockquote>
<h2>27.2.0</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-resolver, jest-runtime]</code> Pass <code>conditions</code> to custom resolvers to enable them to implement support for package.json <code>exports</code> field (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11859">#11859</a>)</li>
<li><code>[jest-runtime]</code> Allow custom envs to specify <code>exportConditions</code> which is passed together with Jest's own conditions to custom resolvers (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11863">#11863</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest/reporters]</code> Use async transform if available to transform files with no coverage (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11852">#11852</a>)</li>
<li><code>[jest-util]</code> Return correct value from <code>process.send</code> stub (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11799">#11799</a>)</li>
</ul>
<h2>27.1.1</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-runtime]</code> Add experimental, limited (and undocumented) support for mocking ECMAScript Modules (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11818">#11818</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-resolver]</code> Support <code>node:</code> prefix when importing Node core modules with ESM (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11817">#11817</a>)</li>
<li><code>[jest-types]</code> Export the <code>PrettyFormatOptions</code> interface (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11801">#11801</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/jest/blob/main/CHANGELOG.md">babel-jest's changelog</a>.</em></p>
<blockquote>
<h2>27.2.0</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-resolver, jest-runtime]</code> Pass <code>conditions</code> to custom resolvers to enable them to implement support for package.json <code>exports</code> field (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11859">#11859</a>)</li>
<li><code>[jest-runtime]</code> Allow custom envs to specify <code>exportConditions</code> which is passed together with Jest's own conditions to custom resolvers (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11863">#11863</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest/reporters]</code> Use async transform if available to transform files with no coverage (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11852">#11852</a>)</li>
<li><code>[jest-util]</code> Return correct value from <code>process.send</code> stub (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11799">#11799</a>)</li>
</ul>
<h2>27.1.1</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-runtime]</code> Add experimental, limited (and undocumented) support for mocking ECMAScript Modules (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11818">#11818</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-resolver]</code> Support <code>node:</code> prefix when importing Node core modules with ESM (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11817">#11817</a>)</li>
<li><code>[jest-types]</code> Export the <code>PrettyFormatOptions</code> interface (<a href="https://github-redirect.dependabot.com/facebook/jest/pull/11801">#11801</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b05635c539"><code>b05635c</code></a> v27.2.0</li>
<li><a href="111198b62d"><code>111198b</code></a> v27.1.1</li>
<li>See full diff in <a href="https://github.com/facebook/jest/commits/v27.2.0/packages/babel-jest">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/2853
Reviewed By: timur-valiev, fabiomassimo
Differential Revision: D30900776
Pulled By: mweststrate
fbshipit-source-id: 174f0455e700f8e8ee31d5d237c5919323b829c2
Summary:
Bumps [async-mutex](https://github.com/DirtyHairy/async-mutex) from 0.3.1 to 0.3.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/DirtyHairy/async-mutex/blob/master/CHANGELOG.md">async-mutex's changelog</a>.</em></p>
<blockquote>
<h2>0.3.2</h2>
<ul>
<li>Add <code>waitForUnlock</code> for waiting until a mutex/semaphore is free for locking,
thanks to Jason Gore.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0acc02c7eb"><code>0acc02c</code></a> Changelog.</li>
<li><a href="60563942d2"><code>6056394</code></a> Bump version.</li>
<li><a href="14f9f58939"><code>14f9f58</code></a> Documentation.</li>
<li><a href="92a1cacfcb"><code>92a1cac</code></a> Dependency bump.</li>
<li><a href="5fd5b7b890"><code>5fd5b7b</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/DirtyHairy/async-mutex/issues/43">https://github.com/facebook/flipper/issues/43</a> from JMounier/master</li>
<li><a href="7b022d28f9"><code>7b022d2</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/DirtyHairy/async-mutex/issues/47">https://github.com/facebook/flipper/issues/47</a> from JasonGore/jagore/waitforunlock</li>
<li><a href="dc839defa0"><code>dc839de</code></a> Do some cleanup and add Mutex tests.</li>
<li><a href="747cd7375f"><code>747cd73</code></a> Add waitForUnlock function to Semaphore and Mutex.</li>
<li><a href="4858eb7700"><code>4858eb7</code></a> fix tryAcquire README example</li>
<li><a href="d536a3313f"><code>d536a33</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/DirtyHairy/async-mutex/issues/37">https://github.com/facebook/flipper/issues/37</a> from kronthto/patch-1</li>
<li>Additional commits viewable in <a href="https://github.com/DirtyHairy/async-mutex/compare/v0.3.1...v0.3.2">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/2856
Reviewed By: timur-valiev, fabiomassimo
Differential Revision: D30900779
Pulled By: mweststrate
fbshipit-source-id: c8b2328a467aa93402d41dee10a7f2f57622bc7a
Summary:
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.8.20 to 0.8.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dtolnay/serde-yaml/releases">serde_yaml's releases</a>.</em></p>
<blockquote>
<h2>0.8.21</h2>
<ul>
<li>Avoid emitting surplus precision when serializing f32 (<a href="https://github-redirect.dependabot.com/dtolnay/serde-yaml/issues/214">https://github.com/facebook/flipper/issues/214</a>, thanks <a href="https://github.com/cheradenine"><code>@cheradenine</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="644be1654d"><code>644be16</code></a> Release 0.8.21</li>
<li><a href="4877180f10"><code>4877180</code></a> Clean up some strange absolute paths in serializer</li>
<li><a href="045dfedc1a"><code>045dfed</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/serde-yaml/issues/214">https://github.com/facebook/flipper/issues/214</a> from cheradenine/serialize-f32</li>
<li><a href="7d07fe6d7e"><code>7d07fe6</code></a> Adds test cases for f32 representations (inf and nan)</li>
<li><a href="c420357212"><code>c420357</code></a> Adds explicit serialization for f32 to avoid rounding artifacts when promotin...</li>
<li><a href="7a340b295b"><code>7a340b2</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/serde-yaml/issues/212">https://github.com/facebook/flipper/issues/212</a> from dtolnay/128</li>
<li><a href="0c6bca163a"><code>0c6bca1</code></a> Make 128 bit support unconditional</li>
<li>See full diff in <a href="https://github.com/dtolnay/serde-yaml/compare/0.8.20...0.8.21">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/2846
Reviewed By: timur-valiev
Differential Revision: D30900760
Pulled By: mweststrate
fbshipit-source-id: 2e553a276e7cde9123a6374ef95064a9dcbe1fe4
Summary: This change reverts a revert. The change was reverted for 'unrelated' issues addressed on this diff dependencies.
Reviewed By: passy
Differential Revision: D30696113
fbshipit-source-id: 8591d6ea79999597024c316e9927a346979e5219