* Switch to using Typescript instead of Babel
* Switch all es6 / jsx file extensions to ts / tsx
* Convert Utils to a TS module from module.exports style module
* Move everything from module.exports to typescript exports
* Define .d.ts files for mailspring-exports and component kit… Yes it seems this is the best option :(
* Load up on those @types
* Synthesize TS types from PropTypes for standard components
* Add types to Model classes and move constructor constants to instance vars
* 9800 => 7700 TS errors
* 7700 => 5600 TS errors
* 5600 => 5330 TS errors
* 5330 => 4866 TS errors
* 4866 => 4426 TS errors
* 4426 => 2411 TS errors
* 2411 > 1598 TS errors
* 1598 > 769 TS errors
* 769 > 129 TS errors
* 129 > 22 TS errors
* Fix runtime errors
* More runtime error fixes
* Remove support for custom .es6 file extension
* Remove a few odd remaining references to Nylas
* Don’t ship Typescript support in the compiled app for now
* Fix issues in compiled app - module resolution in TS is case sensitive?
* README updates
* Fix a few more TS errors
* Make “No Signature” option clickable + selectable
* Remove flicker when saving file and reloading keymaps
* Fix mail rule item height in preferences
* Fix missing spacing in thread sharing popover
* Fix scrollbar ticks being nested incorrectly
* Add Japanese as a manually reviewed language
* Prevent the thread list from “sticking”
* Re-use Sheet when switching root tabs, prevent sidebar from resetting
* Ensure specs run
* Update package configuration to avoid shpping types
* Turn eslint back on - we will opt-in to the TS rules one by one
Summary:
There are some settings that apply to dev and prod modes that we don't want
to use while benchmarking. E.g. the folder where we store messages,
whether we generate long stack traces in our bluebird promises, etc.
This diff adds a benchmark mode so that we can change these settings to
something that works better for benchmarking.
Test Plan: Run locally, verify it works
Reviewers: evan, juan, spang
Reviewed By: juan, spang
Differential Revision: https://phab.nylas.com/D4374
Summary: See title
Test Plan: Run on the coffee machine
Reviewers: juan, evan, spang
Reviewed By: spang
Differential Revision: https://phab.nylas.com/D4368
Summary:
We weren't changing into the directory of the git repository, so running
the script from anywhere but inside the git repo didn't work. We also
weren't pulling before checking for the latest commit. Now we do both of
these things.
Test Plan: Run locally
Reviewers: spang, juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D4339
Summary:
We created the process so we can also kill it with no problems. This
makes it easier to automatically run benchmarks without human
intervention.
Test Plan: Run locally
Reviewers: spang, evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D4332
Summary: See title
Test Plan: Run locally on older version of clang
Reviewers: juan, spang, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D4329
Summary:
We want to setup the initial sync benchmark to run automatically with each
commit on a separate machine. This script does just that and dumps the
results to a directory. We can then have a separate script process them
and upload them to whichever service we want.
Test Plan: Run locally
Reviewers: evan, spang, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D4296
Summary:
We want to be able to benchmark initial sync, so this diff adds two
scripts. The first, drop-stuff.sh, drops all data from the app and sync
databases that isn't related to account credentials. The second,
benchmark-initial-sync.sh, runs a fixed number of iterations (current 5) that
invokes drop-stuff.sh then opens the app, waits a fixed amount of time
(currently 120 seconds), and then kills the app and measures how many messages
it synced which it prints to the console. This is sufficient for us to start
measuring how quickly we can sync messages. This diff also includes the
sqlite3 amalgamation which drop-stuff.sh requires to function correctly
due to depending on the FTS5 extension which doesn't come built-in on
some platforms.
Test Plan: Run benchmark locally
Reviewers: evan, spang, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D4275
Summary:
This commit makes it so postinstall.es6 only bootstraps the packages we
are interested in based on a new env variable, `INSTALL_TARGET`.
`INSTALL_TARGET` can be set to `cloud`, `client` or `all`, or not set at all,
and our postinstall will bootstrap the packages accordingly. This will make
build and deploy times faster.
Test Plan: manual
Reviewers: spang, halla, evan, khamidou
Reviewed By: evan, khamidou
Differential Revision: https://phab.nylas.com/D4271