Commit graph

34 commits

Author SHA1 Message Date
Ben Gotow 1157fdc450 build(*): electron-compile, electron-packager instead of custom tooling
Summary:
This diff removes significant cruft from N1's compilation and build tooling:

- Electron-Packager replaces most of the code in build/tasks/* used to copy things,
  bundle things, download electron, etc.

- script/bootstrap has been replaced with a much simpler script that does not use
  APM, does not download Electron (we just use electron as an NPM dep) and does
  not manully compile sqlite. It requires NPMv3, but I think that's safe.

- babel and eslint are now devDependencies of the main project. The main project
  also supports optionalDependencies now.

- npm test and npm start replace ./N1.sh

- APM is still around, and is only put into N1 so it can install plugins at runtime.
  It should be removed as soon as we notify package maintainers and have them provide zips.

- N1 no longer has it's own compile-cache or babel/typescript/coffeescript compilers.
  It delegates to electron-compile and electron-compilers. Both of these packages had
  to be forked and modified slightly, but I'm hopeful the modifications will make it back
  in to the projects and you can still consult their documentation for more info.

  + In the near future, I think we should stop shipping electron-compilers with N1. This
    would mean that all plugins would need to be compiled on pre-publish, just like NPM
    packages, and would complicate the local development story a bit, but would make the
    app smaller. electron-compile is not supposed to compile at runtime in the prod app,
    just pull from the compile cache.

- I've re-organized Grunt according to Grunt best practices, where each tasks/* file
  specifies it's own config and imports grunt tasks.

- Unfortunately, I was not able to use any open source projects for the deb and rpm builds,
  because we have things like postinst hooks and start menu items which are not supported
  by the electron installer-generators.

WIP

Turn off all LESS compilation, because themes. Doh.

Use Grunt for new build process too, just remove tasks

More changes

Add babel-eslint

Remove unused react-devtools

WIP

Add name

Ignore nonexistent

Switch to more modern approach to config for grunt

Move zipping to mac installer task

Restructure publish task so it aggregates first, can log useful info if publishing is disabled

Fix build dirs

Fix win installer

Fix linux installer

Fix linux installer

Try making linux

A few more

Updates

Upadtes

fixes

fixes

Get rid of non-meaningful variables

Resolve assets path

Insert nylas.sh

Clean up args more

Actually use description

Fix display name ugh

More tweaks

Expliclty write /usr/bin/nylas

Improve vars

Use old nylas.sh

Reinstate APM to better scope this diff

Test Plan: Test on Mac, Windows, Linux

Reviewers: evan, jackie, juan

Reviewed By: jackie, juan

Differential Revision: https://phab.nylas.com/D3411
2016-11-09 13:52:10 -08:00
Ben Gotow 78411cc139 fix(readme): Improve Win32 build instructions 2016-10-12 16:30:03 -07:00
Aaron Sikes 93b01d574a Mention test focusing and skipping in CONTRIBUTING (#2514) 2016-07-08 10:57:41 -07:00
Keith Armstrong f8d0c82647 Update broken links for guides, docs, and API (#2455)
Also updated schemes of some links to https for consistency
2016-06-15 15:29:52 -07:00
Ben Gotow 786e9639c3 fix(readme): Add --enable-logging flag 2016-03-22 12:21:25 -07:00
Ben Gotow a1691c10b2 hide(zoom): Remove UI for zoom, move to CONFIG.md 2016-03-14 13:13:32 -07:00
Julien Chinapen 0039c1fc62 Example Update
Update code snippet to show `env: custom`

Signed-off-by: Julien Chinapen <j.c@shogun.io>
2016-02-27 11:40:39 -05:00
Julien Chinapen 03baa579d6 README Update
Updating Contributing guidelines to make note of the `env: custom` option so that a Sync Engine in a local environment may be accessed on an alternate IP.

Also APIRoot must contain quotes around the URL otherwise a config validation will be thrown.

Signed-off-by: Julien Chinapen <j.c@shogun.io>
2016-02-27 08:50:04 -05:00
Ben Gotow 91efdd5a8b fix(contributing): Mention syncEngine.APIRoot 2016-01-21 10:42:31 -08:00
mbilker 2b5ac044c5 fix(contributing): grammar corrections 2016-01-01 18:43:22 -05:00
mbilker ecc5a50451 fix(contributing): remove invitation references
In response to #879
2016-01-01 18:39:43 -05:00
Ben Gotow 98ed9f1ea2 Update CONTRIBUTING.md 2015-10-29 16:58:46 -07:00
Ben Gotow 50a2e651cf Update CONTRIBUTING.md 2015-10-29 16:56:16 -07:00
Brett Gerry 22b406484f Add quotes to account token key in example config.cson 2015-10-26 17:13:05 -07:00
Michael Grinich 204746252b note about libgcrypt11 2015-10-24 18:05:20 -07:00
Evan Morikawa db19e88369 fix(docs): fix broken link 2015-10-23 13:41:29 -07:00
Evan Morikawa e1529efbf5 feat(windows): updated docs and fix for building on 64-bit 2015-10-23 12:55:44 -07:00
Ben Gotow 56ef02009a fix(contributing): Clarify setup instructions for open source stack 2015-10-13 12:04:23 -07:00
Ben Gotow fd69d1af9c fix(contributing): Expand the instructions for running the stack on your own
Addresses several things brought up internally and in https://github.com/nylas/N1/pull/41
2015-10-09 10:41:05 -07:00
Evan Morikawa fc8b1bae3d Merge pull request #50 from lukegb/patch-1
fix(docs): correct SMPT->SMTP
2015-10-07 17:48:59 -07:00
Evan Morikawa 143f301baf Update CONTRIBUTING.md and README.md to remove node requirement
No more warning message about needing Node v0.10. This got fixed :D

Adding more info about our commit guidelines.
2015-10-07 17:18:41 -07:00
Luke GB c6742b2804 fix(docs): correct SMPT->SMTP 2015-10-07 21:54:02 +01:00
dillon d634c75420 fix(docs): add CLA to CONTRIBUTING.md
Test Plan: manual

Reviewers: evan, bengotow

Maniphest Tasks: T4193

Differential Revision: https://phab.nylas.com/D2128
2015-10-07 11:51:33 -07:00
Brett Gerry 9a893dff1b add more info on running against local sync engine
Test Plan: doc only change

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2119
2015-10-06 19:05:02 -07:00
Ben Gotow 311c85b32d fix(docs): Include a note about script/build in CONTRIBUTING.md 2015-10-06 14:31:00 -07:00
Ben Gotow b1532909c1 fix(docs): Add a note about building with Node 0.10.x 2015-10-06 11:51:31 -07:00
Evan Morikawa 9803c0d5f9 copy(contributing): example config 2015-10-05 11:26:33 -07:00
Evan Morikawa 256f287a82 copy(contributing): instructions for open source sync engine 2015-10-05 11:24:14 -07:00
Michael Grinich f04682031c actually no more gh-pages 2015-10-05 05:08:53 -07:00
Evan Morikawa e1adbcf10b copy(readme): update links in readme 2015-10-02 18:48:34 -07:00
Evan Morikawa b9bd402b3d copy(readme): update readmes 2015-10-02 13:24:39 -07:00
Evan Morikawa 8cf124fef5 copy(readme): update readme 2015-10-02 13:04:31 -07:00
Evan Morikawa e8f002ac5d 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
Ben Gotow 1e8fd46342 fix(drafts): Various improvements and fixes to drafts, draft state management
Summary:
This diff contains a few major changes:

1. Scribe is no longer used for the text editor. It's just a plain contenteditable region. The toolbar items (bold, italic, underline) still work. Scribe was causing React inconcistency issues in the following scenario:
   - View thread with draft, edit draft
   - Move to another thread
   - Move back to thread with draft
   - Move to another thread. Notice that one or more messages from thread with draft are still there.

There may be a way to fix this, but I tried for hours and there are Github Issues open on it's repository asking for React compatibility, so it may be fixed soon. For now contenteditable is working great.

2. Action.saveDraft() is no longer debounced in the DraftStore. Instead, firing that action causes the save to happen immediately, and the DraftStoreProxy has a new "DraftChangeSet" class which is responsbile for batching saves as the user interacts with the ComposerView. There are a couple big wins here:

   - In the future, we may want to be able to call Action.saveDraft() in other situations and it should behave like a normal action. We may also want to expose the DraftStoreProxy as an easy way of backing interactive draft UI.

   - Previously, when you added a contact to To/CC/BCC, this happened:

     <input> -> Action.saveDraft -> (delay!!) -> Database -> DraftStore -> DraftStoreProxy -> View Updates

Increasing the delay to something reasonable like 200msec meant there was 200msec of lag before you saw the new view state.

To fix this, I created a new class called DraftChangeSet which is responsible for accumulating changes as they're made and firing Action.saveDraft. "Adding" a change to the change set also causes the Draft provided by the DraftStoreProxy to change immediately (the changes are a temporary layer on top of the database object). This means no delay while changes are being applied. There's a better explanation in the source!

This diff includes a few minor fixes as well:

1. Draft.state is gone—use Message.object = draft instead
2. String model attributes should never be null
3. Pre-send checks that can cancel draft send
4. Put the entire curl history and task queue into feedback reports
5. Cache localIds for extra speed
6. Move us up to latest React

Test Plan: No new tests - once we lock down this new design I'll write tests for the DraftChangeSet

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1125
2015-02-03 16:24:31 -08:00