Commit graph

57 commits

Author SHA1 Message Date
Ben Gotow
c8dcab5e6a build(linux): Ensure that target files are not group writable
Should fix #710. Will move all 0775 => 0755 and 0664 => 0644
2016-01-13 16:09:53 -08:00
Ben Gotow
7474c79c61 Revert "bump(electron): 0.35.4 => 0.36.2"
This reverts commit da607dd508.
2016-01-08 10:06:16 -08:00
Ben Gotow
f250fe2528 fix(examples): examples => packages, move away from installing them 2016-01-07 14:56:34 -08:00
Ben Gotow
da607dd508 bump(electron): 0.35.4 => 0.36.2 2016-01-06 13:20:27 -08:00
Ben Gotow
9bd77dc449 Merge pull request #903 from mbilker/fix-debian-icons
Copy app icons to `hicolor` on Debian
2016-01-05 16:45:53 -08:00
mbilker
e380ecef72 fix(mkdeb): specify hard path to icon files 2016-01-05 17:44:14 -05:00
mbilker
3754dd2d91 fix(mkdeb): copy app icons to hicolor on Debian 2016-01-05 15:24:49 -05:00
Ben Gotow
247bb15ab4 Merge pull request #866 from mbilker/remove-module-list
Remove log of integration test package installation by default
2016-01-04 12:14:46 -08:00
Evan Morikawa
822da1c0de feat(build): new rpm builds
Summary: Now builds RPM on Travis

Test Plan: manual

Reviewers: juan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2391
2016-01-04 09:56:14 -08:00
mbilker
b34c6434e5 fix(bootstrap): remove log of integration test package installation by default 2015-12-29 22:11:04 -05:00
Ben Gotow
a14a5212ac feat(transactions): Explicit (and faster) database transactions
Summary:
Until now, we've been hiding transactions beneath the surface. When you call persistModel, you're implicitly creating a transaction.
You could explicitly create them with `atomically`..., but there were several critical problems that are fixed in this diff:

- Calling persistModel / unpersistModel within a transaction could cause the DatabaseStore to trigger. This could result in other parts of the app making queries /during/
  the transaction, potentially before the COMMIT occurred and saved the changes. The new, explicit inTransaction syntax holds all changes until after COMMIT and then triggers.

- Calling atomically and then calling persistModel inside that resulted in us having to check whether a transaction was present and was gross.

- Many parts of the code ran extensive logic inside a promise chained within `atomically`:

  BAD:

```
  DatabaseStore.atomically =>
   DatabaseStore.persistModel(draft) =>
     GoMakeANetworkRequestThatReturnsAPromise
```

OVERWHELMINGLY BETTER:

```
  DatabaseStore.inTransaction (t) =>
     t.persistModel(draft)
  .then =>
    GoMakeANetworkRequestThatReturnsAPromise
```

Having explicit transactions also puts us on equal footing with Sequelize and other ORMs. Note that you /have/ to call DatabaseStore.inTransaction (t) =>. There is no other way to access the methods that let you alter the database. :-)

Other changes:
- This diff removes Message.labels and the Message-Labels table. We weren't using Message-level labels anywhere, and the table could grow very large.
- This diff changes the page size during initial sync from 250 => 200 in an effort to make transactions a bit faster.

Test Plan: Run tests!

Reviewers: juan, evan

Reviewed By: juan, evan

Differential Revision: https://phab.nylas.com/D2353
2015-12-17 11:46:05 -08:00
Evan Morikawa
b62a129e06 fix(bootstrap): split commands 2015-12-14 15:22:47 -08:00
Evan Morikawa
ee17b9d975 fix(ci): run grunt script in win compatible way 2015-12-11 17:46:18 -05:00
Evan Morikawa
8d50362428 fix(build): add nylas resources before apm install 2015-12-11 17:08:39 -05:00
Evan Morikawa
989f38ca77 feat(ci): add Travis and AppVeyor ci support 2015-12-07 12:48:26 -05:00
Evan Morikawa
783d835100 test(contenteditable): add in contenteditable list specs 2015-12-02 13:41:47 -08:00
Evan Morikawa
c3ecca2692 feat(tests): add integration tests
comment

Adding test harness

Using key strokes in main window test

Tests work now

Clean up argument variables

Rename list manager and get rid of old spec-helper methods

Extract out time overrides from spec-helper

Spectron test for contenteditable

fix spec exit codes and boot mode

fix(spec): cleanup N1.sh and make specs fail with exit code 1

Revert tests and get it working in window

Move to spec_integration and add window load tester

Specs pass. Console logs still in

Remove console logs

Extract N1 Launcher ready method

Make integrated unit test runner

feat(tests): adding integration tests

Summary:
The /spectron folder got moved to /spec_integration

There are now unit tests (the old ones) run via the renamed
`script/grunt run-unit-tests`

There are now integration tests run via the command `script/grunt
run-integration-tests`.

There are two types of integration tests:
1. Tests that operate on the whole app via Selenium/Chromedriver. These
tests have access to Spectron APIs but do NOT have access to any JS object
running inside the application. See the `app-boot-spec.es6` for an example
of these tests. This is tricky because we want to test the Main window,
but Spectron may latch onto any other of our loading windows. Code in
`integration-helper` give us an API that finds and loads the main window
so we can test it

2. Tests that run in the unit test suite that need Spectron to perform
integration-like behavior. These are the contentedtiable specs. The
Spectron server is accessed from the app and can be used to trigger
actions on the running app, from the app. These tests use the
windowed-test runner so Spectron can identify whether the tests have
completed, passed, or failed. Unfortunately Spectron can't access the logs
, nor the exit code of the test script thereby forcing us to parse the
HTML DOM. (Note this is still a WIP)

I also revamped the `N1.sh` file when getting the launch arguments to work
properly. It's much cleaner. We didn't need most of the data.

Test Plan: new tests

Reviewers: juan, bengotow

Differential Revision: https://phab.nylas.com/D2289

Fix composer specs

Tests can properly detect when Spectron is in the environment

Report plain text output in specs

fixing contenteditable specs

Testing slow keymaps on contenteditable specs

Move to DOm mutation

Spell as `subtree` not `subTree`
2015-12-02 13:41:14 -08:00
Evan Morikawa
05b50fd7bf fix(build): bail if script/bootstrap fails and enhance test output
Have the test output
2015-11-23 14:34:18 -05:00
Juan Tejada
52e2c1251e refactor(script/docs): Add comments 2015-11-17 18:09:46 -08:00
Juan Tejada
35991c5786 Add docs script to automatically move output of grunt docs to gh-pages 2015-11-17 18:03:24 -08:00
Ben Gotow
74252d58d9 bump(️): Electron 0.29.2 > 0.34.3, Sqlite 3.0.11 > 3.1.1 2015-11-17 15:36:32 -08:00
Ben Gotow
94e0cb97d3 fix(bootstrap): Set apm environment vars to avoid Atom conflicts 2015-11-16 16:42:35 -08:00
Ben Gotow
1eee97f5d0 fix(win32): Allow npm dedupe to error, succeeds anyway 2015-11-06 15:47:28 -08:00
Ben Gotow
0ec4ea6fa8 fix(win10): Ignore stdout from apmDedupe 2015-11-06 14:35:30 -08:00
Ben Gotow
e313521197 fix(paths): Flatten npm inside of apm to cut 20 chars from max path length 2015-11-03 12:00:43 -08:00
Ben Gotow
5e2282a2a0 fix(bootstrap): Always use npm3 in ./build to install apm 2015-10-27 17:04:14 -07:00
Ben Gotow
848fa10dee ⇧(npm): Move to NPM3 to shorten paths on Win32 2015-10-27 16:23:12 -07:00
Evan Morikawa
bbf42531cf feat(windows): updated docs and fix for building on 64-bit 2015-10-23 12:55:44 -07:00
Ben Gotow
9a6d51e595 ci(mac): Rename the app Nylas N1 on the Mac 2015-10-20 18:36:39 -07:00
Ben Gotow
615e90466b fix(bootstrap): Don't fail when path contains spaces 2015-10-14 10:46:27 -07:00
solnj
d5ea09adbc fix(script): allow x64 build on Windows
Electron is available for 64-bit Windows machines(https://github.com/atom/electron/issues/980), so we don't need the 32-bit check anymore. Reference: https://github.com/nylas/N1/issues/28
2015-10-12 11:02:07 -04:00
Ben Gotow
f9308f1163 rollback(*): Move back SQLite upgrade after crashing in popout drafts 2015-10-09 13:25:39 -07:00
Matt Bilker
3bc1151b0f refactor(code): change atom to nylas in clean script 2015-10-07 21:34:07 -04:00
Evan Morikawa
66e5371030 Upgrade to Electron 0.30.8. Remove unsused packages. Upgrade deps
- Upgrade node-sqlite3 from patched 3.0.2 to mainline 3.1.0

- Upgrade Electron to 0.30.8: NOTE: This is the latest in the 0.30 line.
  The 0.31+ line did a Chrome upgrade that we want to save for a later
  day. We've had a history of serious instabilities with these upgrades
  and are doing them conservatively

- Upgrade coffee-script from 1.9.0 to 1.10.0

- Package updates in /build folder
2015-10-07 16:52:49 -07:00
Matt Bilker
0edbf515fd Use npm's packaged node-gyp and combine configure and rebuild gyp steps 2015-10-06 23:41:19 -04:00
Matt Bilker
a9f45b0776 Target node version used by APM 1.1.1 and Electron 0.30.7
node-gyp header layout change in node v4, causes package builds to fail.

This change forces node-gyp to download the correct version of node so
native extensions can be built.
2015-10-06 23:40:35 -04:00
Christine Spang
bc969b1dae Install package repo for autoupdates in Debian packages. 2015-10-04 19:38:16 -07:00
Evan Morikawa
7c9e591924 copy(readme): update readmes 2015-10-02 13:24:39 -07:00
Evan Morikawa
31125cf699 refactor(n1): change launch script to N1.sh 2015-10-02 11:58:38 -07:00
Ben Gotow
1a0292a37e fix(docs): Replace docs references to Edgehill with N1 2015-09-29 09:45:02 -07:00
Ben Gotow
1d9a34f5ea rename(Nylas Mail): Replace Nylas Mail > N1 2015-09-29 09:44:30 -07:00
Ben Gotow
dbe5d474e0 fix(build-flow): New integration test at the end of mac builds 2015-08-18 18:04:47 -07:00
Ben Gotow
bf89ea8c64 fix(build): Linux needs to build sqlite after pulling electron 2015-07-31 12:14:14 -07:00
Ben Gotow
cab654ec48 fix(sqlite): Connect to sqlite directly rather than sending queries over IPC (twice...)
Summary:
- We now build sqlite3 manually from source in script/bootstrap
- We now allow queries to run in parallel outside of transaction blocks

- When signining in and out, the main window creates the database file and then advances the database "phase", which allows all the windows to connect to the initialized database.

This diff also fixes T2411 where popout drafts opened twice, and several issues around Windows icons and install.

Test Plan: Run existing tests

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T2411

Differential Revision: https://phab.nylas.com/D1815
2015-07-30 18:09:20 -07:00
Ben Gotow
c0682e4eb5 fix(bootstrap): Fix syntax bug in script bootstrap 2015-07-24 19:48:31 -07:00
Ben Gotow
8b751f2520 fix(build): Actually install package dependencies 2015-07-24 19:12:25 -07:00
Evan Morikawa
2442e0d6b6 refactor(cruft): remove old Atom docs and other cruft
Summary:
Getting rid of things that I'm pretty sure we don't need. Lmk if you see
anything to the otherwise.

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1799
2015-07-24 14:27:21 -07:00
Rob McQueen
c5acf8fcb2 Separate notifications if less than five
Summary: If less than 5 new unread notifications, then show notification for each new message. Each message is separated by 1 second

Test Plan: Added test to make sure Notification is called multiple times

Reviewers: bengotow

Reviewed By: bengotow

Maniphest Tasks: T1295

Differential Revision: https://phab.nylas.com/D1744
2015-07-15 13:18:10 -07:00
Ben Gotow
3e0e3a88e7 fix(linux-build): Move the license file out of app so it works with ASAR 2015-05-21 18:22:11 -07:00
Evan Morikawa
57fc6d61e5 update linter to look at all less files
Test Plan: script/grunt lint

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1549
2015-05-21 14:50:40 -07:00