Commit graph

78 commits

Author SHA1 Message Date
Ben Gotow 149b389508
Replace Babel with TypeScript compiler, switch entire app to TypeScript 🎉 (#1404)
* 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
2019-03-04 11:03:12 -08:00
Ben Gotow 4cb1851b47 Fix regression on some linux distros - need to set curl CURLOPT_CAINFO 2019-02-11 08:51:17 -08:00
Ben Gotow 69cbfd3fc2 Fix handling of newlines in localized string extraction script 2018-10-09 17:17:46 -07:00
Ben Gotow b38afe5e3f Make the find-strings script prune localizations and give an overview of completeness 2018-10-07 01:24:55 -07:00
Ben Gotow 05bd2cdc8c Make all strings in the app run through intl lookup 2018-10-06 23:27:27 -07:00
Ben Gotow 23081d2e10 Bump to a newer version of runas with 1.8.x support 2018-01-28 22:45:23 -08:00
Ben Gotow c7e63bfe52 Lock Slate versions to prevent missing dep issue in prod, add warning 2018-01-21 10:36:21 -08:00
Ben Gotow 71eee04b42 Make postinstall script download last released version of mailsync #274 2017-10-30 12:51:08 -07:00
Ben Gotow 4e8a2abfc3 Make postinstall script to untar mailsync 2017-10-23 10:51:32 -07:00
Ben Gotow ce090d82ae Package linux .so and .bin, ship a compressed tar.gz file, not just tar 2017-10-03 17:12:09 -07:00
Ben Gotow 78c975915a On Linux, link against most deps statically, bundle remaining with product 2017-10-03 00:20:02 -05:00
Ben Gotow efcf5162d0 Enable postinstall downloading of C++ binaries 2017-09-05 14:16:34 -07:00
Ben Gotow b698458766 Switch product name to “Mailspring” 2017-09-05 13:40:25 -07:00
Ben Gotow cc486ce72a Stop shipping an entire extra copy of Electron inside the app… 🙃 2017-09-01 23:22:35 -07:00
Ben Gotow 717fe440e8 Replace references to Nylas in many places 2017-08-16 13:20:54 -07:00
Ben Gotow 38e5362b50 Place mailsync binary in ./app/dist to fix S3 path 2017-08-12 19:34:24 -07:00
Ben Gotow c549fcc8ba Fix documentation generation, clean up ./app package dependencies 2017-08-11 11:38:25 -07:00
Ben Gotow 643a589974 Fix .travis.yml formatting, was not installing apt packages 2017-08-10 23:31:37 -07:00
Ben Gotow b83a7fd426 Revert to Node 6.9+, Linux build failing with npm 4 2017-08-10 23:20:34 -07:00
Ben Gotow 29c89acb60 Enable app/node_modules caching, make postinstall check its Electron version 2017-08-10 22:47:06 -07:00
Ben Gotow 653618133b Remove “matrix” nesting in deploy block of .travis.yml 2017-08-10 21:45:05 -07:00
Ben Gotow 89200b5e67 Encrypt and commit Mac build secrets 2017-08-10 21:24:12 -07:00
Ben Gotow 7f3731bc10 Clean up project directory structure, removing legacy packages folder 2017-08-10 19:24:10 -07:00
Ben Gotow c71d8fad72 Remove benchmark mode, npm scripts related to cloud codebase 2017-08-02 13:33:52 -07:00
Ben Gotow 555b4136b8 Remove lerna, revert postinstall script to Nov 2016 version 2017-08-02 13:13:30 -07:00
Ben Gotow aa2e2a7624 Remove APM for now 2017-07-11 12:15:47 -07:00
Ben Gotow efbea58e1e Overhaul TaskFactory.tasksForApplyingCategories, fix many specs 2017-06-27 11:31:22 -07:00
Ben Gotow 3c56e2fbfd Remove isomorphic-core and related packages 2017-06-24 20:34:01 -07:00
Ben Gotow 973a411145 Remote client-sync 2017-06-22 13:37:29 -07:00
Ben Gotow a5afcf17ee bump(version): React 15.6, Electron 1.7.3 2017-06-19 19:12:10 -07:00
Juan Tejada daf7f9ec6f [*] postinstall: Don't try to link cloud specs if pkgs don't exist
Summary: see title

Test Plan: manual

Reviewers: evan, spang, mark, halla

Reviewed By: halla

Differential Revision: https://phab.nylas.com/D4446
2017-04-17 22:00:53 -07:00
Juan Tejada 148fbfd936 [*] Postinstall should install client-sync regardless of private plugins
Summary: see title

Test Plan: manual

Reviewers: spang, evan, mark, halla

Reviewed By: halla

Differential Revision: https://phab.nylas.com/D4445
2017-04-17 22:00:43 -07:00
Mark Hahnenberg be4b0d773c [client-app] Add benchmark mode
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
2017-04-07 15:33:57 -07:00
Juan Tejada 10d199f389 [dev] Ensure daily script grabs current version after pulling latest changes
Summary: see title

Test Plan: manual

Reviewers: halla, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D4378
2017-04-06 14:34:31 -07:00
Mark Hahnenberg 965946724b [client-app] Some final benchmark fixes
Summary: See title

Test Plan: Run on the coffee machine

Reviewers: juan, evan, spang

Reviewed By: spang

Differential Revision: https://phab.nylas.com/D4368
2017-04-05 15:59:17 -07:00
Christine Spang 2095f0907e [scripts] Batch upload each row
Makes the script like 4x faster.
2017-04-04 15:24:01 -07:00
Mark Hahnenberg 00e1df8491 [client-app] Add script to run benchmarks once per day at specified time
Summary: See title

Test Plan: Run locally

Reviewers: juan, evan, spang

Reviewed By: spang

Differential Revision: https://phab.nylas.com/D4345
2017-04-04 15:07:08 -07:00
Christine Spang bd933f1bc0 [scripts] Add script to upload benchmark data to Google Sheets
Test Plan: ran locally (need client secret for this)

Reviewers: mark

Reviewed By: mark

Differential Revision: https://phab.nylas.com/D4343
2017-04-04 15:04:03 -07:00
Mark Hahnenberg 4eef086e3e [client-app] Fix benchmark script
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
2017-04-04 13:28:46 -07:00
Mark Hahnenberg f629818075 [client-app] Remove sudo from benchmark-initial-sync.sh
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
2017-04-04 12:49:00 -07:00
Mark Hahnenberg 7818f42d42 [client-app] Fix sqlite build for older versions of clang
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
2017-04-03 17:12:02 -07:00
Mark Hahnenberg 9270ff6c4c [client-app] Add script that benchmarks new commits
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
2017-03-30 16:11:49 -07:00
Mark Hahnenberg fa50657af1 [client-app] Add initial sync benchmarking script
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
2017-03-29 16:11:44 -07:00
Juan Tejada b8883cd2b7 [dev] Only bootstrap specific pkgs in postinstall for faster installs
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
2017-03-28 13:59:55 -07:00
Evan Morikawa 44e51a0ed5 [client-app] only re-install for optional deps on mac 2017-03-27 17:00:38 -07:00
Evan Morikawa b7036574d5 [*] add ONLY_CLIENT=false support for cloud & regular install 2017-03-27 14:40:28 -07:00
Karim Hamidou 1f9c5120cd Fix build condition
On the server the env var is defined but set to false.
2017-03-22 11:06:59 -07:00
Juan Tejada d025aaf369 [dev] Actually fix tmp dir path in daily 2017-03-21 09:29:46 -07:00
Juan Tejada 17da34caed [dev] Fix temp dir path in daily 2017-03-21 09:25:46 -07:00
Juan Tejada f1572f4bfc [dev] Fix path for tmp dir in daily script 2017-03-17 10:08:00 -07:00