Summary:
This defaults to the `version` and is used to update the inline plists
of the Frameworks that are bundled with the MacOS app bundle. Setting
them to a fixed value means that they remain unchanged across rebuilds
(bringing them in line with Linux and Windows equivalents). This
is required to ship them as separate bundles for the launcher.
Why 50? The reason this was introduced was to allow people to override
this to values >= 50 as this is somehow a Mac App Store requirement:
https://github.com/electron-userland/electron-builder/issues/565#issuecomment-230678643
Reviewed By: priteshrnandgaonkar
Differential Revision: D21179072
fbshipit-source-id: a6f10b7508526b4305b229bd160d6e570ddce822
Summary: Just fixed warning that kebab-style properties are deprecated and camel-case should be used instead
Reviewed By: mweststrate
Differential Revision: D21178489
fbshipit-source-id: 9fba323b3c6ccfce7eb2acc97aa57526305e24ac
Summary: Fixed build for Reactotron plugin. It was broken because one of dependencies has statement "import * as React from 'react'" which transformed wrongly.
Reviewed By: passy
Differential Revision: D21178313
fbshipit-source-id: d700981a570dc8ded2080910e872b44976b850e8
Summary: Disabled asar packing until Metro removed from Flipper bundle
Reviewed By: passy
Differential Revision: D21178188
fbshipit-source-id: e8508fd65fec3e31a7bed8d391149a57c5416863
Summary:
Major update without breaking changes, but from changelog doesn't sound like it will affect us. Does require node 10. But afaik that is what we require already anyways.
Closes#907
Reviewed By: passy
Differential Revision: D21137620
fbshipit-source-id: dd7a64ba334f95733997acbb52eee7d8f3322ec4
Summary:
Added the ability to search tree generations for a particular component. As soon as you start typing in the search bar, only relevant timeline tracks would be displayed.
Currently, I'm looking for the search string in `component_class_name` of the payload and among all nodes in the tree.
Reviewed By: fabiomassimo
Differential Revision: D21175734
fbshipit-source-id: 642c628350192697980becd20352d303200a031e
Summary: It seems that these are not referenced anywhere in the repository.
Reviewed By: mweststrate
Differential Revision: D21176051
fbshipit-source-id: 502d4a2020d230f8c57bee31e15fbcf996484676
Summary: Fixed plugin compilation in release build. One dependency was missing from the final package.
Reviewed By: jknoxville, passy
Differential Revision: D21174687
fbshipit-source-id: 311e04b3ab782093bdbb8f1b81191380320e94d0
Summary: "incremental" option in base config conflicts with "tsc --noemit" which leads to crashes like in D21155831. Removing it from base config, anyway it is explicitly set for all the packages where required (babel-transformer, pkg-lib, pkg)
Reviewed By: timur-valiev
Differential Revision: D21157205
fbshipit-source-id: bb37101521d865bbe737e99637a9bc83a308494e
Summary: there are two plugins which uses copy-pasted ToolbarIcon and at least one more where it will be helpful. Let's move it to components folder
Reviewed By: nikoant
Differential Revision: D21089290
fbshipit-source-id: a14dcd56633dd24016711e34308b94023fcb40ed
Summary:
This diff fixes an issue where the selected device was not correctly updated when selecting a device plugin, causing the wrong plugin, or none at all, to be highlighted.
This diff fixes an issue where deeplinks were not correctly parsed if formatted as shown in the test plan of D20920587 (it was a different format in the recording, but after looking into it, using `plugin?params` instead of `plugin/?params` is the natural thing to do, so we now support both)
Reviewed By: jknoxville
Differential Revision: D21154190
fbshipit-source-id: c31132aaf7213ee1c3c188a6a1cf2b6bcc7b5b00
Summary: This shaves another ~6MB of the zipped build. Less than I would have thought, but I haven't looked at the alternative options so far at all.
Reviewed By: nikoant
Differential Revision: D21131772
fbshipit-source-id: 641515d6f36fdeeffa5be81d64c2c1043a9e4e34
Summary: Updating Electron is an expensive call (in terms of time investment), and potentially very impactful in a way that is hard to test automated. So should be done consciously rather than for every random patch that appears.
Reviewed By: jknoxville
Differential Revision: D21134157
fbshipit-source-id: 9d208cffa84728aead620d0ec6a6cd1f01f01e2d
Summary:
Command which transpiles and bundles plugin code.
It is supposed to be used in "prepack" script for all open-sourced plugin packages to bundle them before publishing like this:
```
{
"devDependencies": {
"flipper-pkg": "latest"
},
"scripts": {
"prepack": "flipper-pkg bundle"
}
}
```
Also made directory parameter of other command "pack" optional so it also can be called from plugin directory simply by `flipper-pkg pack`.
Changelog: "flipper-pkg bundle" command for bundling plugins before publishing.
Reviewed By: mweststrate
Differential Revision: D21129691
fbshipit-source-id: 8f97bc950c28cf9ad8b0117c0e1d811ed1b988eb
Summary: Renamed command "bundle" to "pack" because the latter name better describe what the command does. Also I'm going to add another command which will only bundle the plugin code and it will be called "bundle" (see the next diff in this stack)
Reviewed By: mweststrate
Differential Revision: D21129690
fbshipit-source-id: 2dde30501c3776d6796c27c68d49948d1f84f822
Summary:
Added "id" field to Flipper plugin manifest which is used to match native and desktop plugin parts. Before that, "name" field was used both as npm package name and as plugin id.
The problem is that currently there are a lot of plugins which has invalid values in "name", e.g. not starting with "flipper-package-", or containing upper cased letters.
Simple renaming of "name" field can be very problematic, so we need a new field to avoid any breaking changes and keep historical analytics data which is also bound to plugin id.
Reviewed By: mweststrate
Differential Revision: D21129689
fbshipit-source-id: efd143c82a6a802cc0b5438fd3f509bd99aded0e
Summary: This was being interpreted as returning `void` which was causing problems when trying to access the resolved value from the request. Fixing to slightly better type of `Promise<any>`
Reviewed By: passy
Differential Revision: D21105552
fbshipit-source-id: 76deb5a83b5220bafed8c12c3f56f339a5215c14
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:
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:
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:
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: 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:
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:
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: 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