Commit graph

259 commits

Author SHA1 Message Date
Juan Tejada f5a9ae718d fix(build): Update asar unpack patterns to match top level examples
- Any dependencies that have an `examples` directory would not get
packed into the asar, causing the windows build to fail because of path
lengths > 250 characters
2016-06-02 16:56:31 -07:00
Juan Tejada 7730f4fcc2 fix(build): Do not try to compile dependencies
- Remove unused peg file
2016-06-02 15:53:08 -07:00
Juan Tejada 5dc07d68cf fix(build): Don't lint files inside node_modules, fix lint error 2016-06-02 14:45:51 -07:00
MAA 9ed577cf64 Fixing small typo. (#2298) 2016-05-24 11:08:40 -07:00
Hon Nguyen 87ea432295 fixed bug timezone cannot detect in fedora (#2250)
* fixed bug timezone cannot detect in fedora

* update spec build fedora package

* rpm package for fedora 22

* change code follow coffee-script style

* remove fedora binary file
2016-05-19 16:16:00 -07:00
Ben Gotow 6cd6253771 fix(build): prebuild less was using wrong options, cache not used at runtime 2016-05-17 19:28:18 -07:00
Ben Gotow 3559f5e419 fix(config): Move all reads / writes to the main process
Summary:
Moves all reading / writing of config file to the main process,
to avoid needing to write code to lock across processes. This should also
be more efficient than re-loading the file in all processes when it's
saved.

Test Plan: Run tests

Reviewers: evan, jackie

Reviewed By: evan, jackie

Differential Revision: https://phab.nylas.com/D2963
2016-05-16 16:38:46 -05:00
Ben Gotow 67b6dfc5b0 bump(version): 0.4.36 and changelog 2016-05-13 15:57:03 -07:00
Juan Tejada eacf54b4eb fix(build): Fix lint issues and specs 2016-05-11 15:33:52 -07:00
Ben Gotow de4a69b89a fix(build): Defer require of parent node modules until they're fetched #2184 2016-05-10 19:08:41 -07:00
Evan Morikawa f2fbfbceba fix(build): rename babel task to .js to be picked up by grunt 2016-05-06 16:46:36 -07:00
Evan Morikawa 2d2e459094 fix(lint): final linter fixes
fix(lint): final set of linter fixes
2016-05-06 16:32:34 -07:00
Ben Gotow 7533dc0ac6 fix(lint): Various linter issues 2016-05-06 16:06:16 -07:00
Evan Morikawa 431b652e62 fix(lint): various linter fixes 2016-05-06 14:11:05 -07:00
Ben Gotow 0e2b5501e3 fix(lint): Correct more linter errors 2016-05-06 14:10:28 -07:00
Evan Morikawa 3d3b9bf87f fix(lint): fixing various linter errors.
746 left
2016-05-06 13:42:09 -07:00
Evan Morikawa bd444864c8 fix(linter): object-shorthand, quote-props
object-shorthand got turned off. We think it's fine to say {foo: foo} if
you want

quote-props is error consistent as neeeded.

Use custom file-by-file rules for global-require
2016-05-06 12:41:52 -07:00
Evan Morikawa 6f923b0e91 feat(babel6): remove eslinter fixer task 2016-05-06 12:20:16 -07:00
Evan Morikawa d29848e242 feat(babel6): 1,043 linter errors 2016-05-06 11:55:57 -07:00
Evan Morikawa d568bae358 feat(babel6): 1,240 linter errors 2016-05-06 11:55:55 -07:00
Evan Morikawa b3a71780d7 feat(babel6): 1,393 linter errors 2016-05-06 11:55:53 -07:00
Evan Morikawa 5143105e2e feat(babel6): 1,608 linter errors 2016-05-06 11:55:52 -07:00
Evan Morikawa 5b26322c89 feat(babel6): Add task to fix function spacing 2016-05-06 11:55:45 -07:00
Evan Morikawa d2a4befad7 feat(babel6): 2,398 linter errors 2016-05-06 11:55:43 -07:00
Evan Morikawa 1def854603 feat(babel6): 88,888 lint errors 2016-05-06 11:55:40 -07:00
Evan Morikawa 654820d568 feat(babel6): 90,798 lint problems
Fix eslint-task. Grunt doesn't recognize es6 files
2016-05-06 11:55:38 -07:00
Evan Morikawa 13e0a8f442 feat(babel6): Add test for spec describe 2016-05-06 11:55:18 -07:00
Evan Morikawa 2692fce522 feat(babel6): Fix destructuring default from exports and update linter 2016-05-06 11:55:14 -07:00
Evan Morikawa e355971dd2 feat(babel6): Use absolute paths for linter and dont call default on coffee 2016-05-06 11:54:58 -07:00
Evan Morikawa 2d55322705 feat(babel6): Detect when packages don't have a default export 2016-05-06 11:54:57 -07:00
Evan Morikawa 21419b9df0 feat(babel6): Convert to use new es6 require syntax 2016-05-06 11:54:55 -07:00
Evan Morikawa 850e703aac feat(babel6): Add babel presets and lint for require.default 2016-05-06 11:54:52 -07:00
Evan Morikawa 8db8722f74 feat(babel6): Initial babel conversion 2016-05-06 11:54:38 -07:00
Ben Gotow da2c9145b4 bump(asar): Re-create ordering hint 2016-05-03 16:25:52 -07:00
Ben Gotow 6d2755329b fix(send-later): Simplify logic, use changes.addPluginMetadata 2016-05-03 14:01:06 -07:00
Ben Gotow 67fcba6769 fix(read-receipts): Remove tracking pixels when composing drafts 2016-04-28 17:08:54 -07:00
Akshar Patel a69266a75d Show under Internet Category in Linux (#2083)
* Update title for system tray

Using only Menu Bar confuses Linux users because ''Menu Bar'' word is only used withing Mac OS. So, also use "System Tray" word.

* Show under Internet Category in Linux

Right now, N1 is showing under Programming Category. "Network" should be added to show under Internet Category.
2016-04-28 10:28:41 -07:00
Ben Gotow c543de9e81 cleanup(specs): Remove space-pen. Goodbye, jQuery! 2016-04-26 13:14:07 -07:00
Ben Gotow 80c8d733c8 cleanup(config): Remove unused features, dependencies 2016-04-26 13:14:06 -07:00
Evan Morikawa c416731d35 fix(build): fix lstatSync throwing 2016-04-25 16:18:23 -07:00
Evan Morikawa 6a55717157 feat(package): fix build-resources-task and move submodule 2016-04-25 16:01:56 -07:00
Evan Morikawa 25dea6a136 feat(package): require 'engines': {'nylas': '*'} in package.json 2016-04-25 15:06:37 -07:00
Ben Gotow 4d38ac6310 cson(cleanup): Remove imports, only used for config.cson now 2016-04-24 20:33:34 -05:00
Ben Gotow ba16a71777 fix(build): CSON => JSON no longer necessary for /keymaps, /menus 2016-04-24 20:27:29 -05:00
Ben Gotow b98a3bae60 fix(build): Run eslint on files inside submodule 2016-04-24 19:32:37 -05:00
Ben Gotow 3bfad0c9e1 fix(*): spec failures related to moment-round again 2016-04-24 15:21:29 -05:00
Ben Gotow aab39a12da mv(packages): move plugins that are incompatible with open source sync engine 2016-04-24 14:53:12 -05:00
Ben Gotow a46bad4eb7 refactor(menus): Major prune of keymaps/commands, real conditional menus
Summary:
Keymaps & menus CSON => JSON, remove AtomKeymaps, CommandRegistry use of CSS selectors, use Mousetrap instead

Important Notes:

- The `application:` prefix is reserved for commands which are handled in the application process. Don't use it for other things. You will not receive the events in the window.

- Maintaining dynamic menus seems to come with quite an overhead, because Electron updates the entire menu every time. In the future, we'll need https://github.com/electron/electron/issues/528 to really make things nice. I will be tracking this upstream.

- The format for keyboard shortcuts has changed. `cmd-X` is now `command+shift+x`

Test Plan: Run tests

Reviewers: juan, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2917
2016-04-24 12:16:25 -05:00
Evan Morikawa e90735ed6e feat(win): faster popout windows
Summary:
This diff is designed to dramatically speed up new window load time for
all window types and reduce memory consumption of our hot windows.

Before this diff, windows loaded in ~3 seconds. They now boot in a couple
hundred milliseconds without requiring to keep hot windows around for
each and every type of popout window we want to load quickly.

One of the largest bottlenecks was the `require`ing and initializing of
everything in `NylasExports`.

I changed `NylasExports` to be entirely lazily-loaded. Drafts and tasks
now register their constructors with a `StoreRegistry` and the
`TaskRegistry`. This lets us explicitly choose a time to activate these
stores in the window initalization instead of whenever nylas-exports
happens to be required first.

Before, NylasExports was required first when components were first
rendering. This made initial render extremely slow and made the proposed
time picker popout slow.

By moving require into the very initial window boot, we can create a new
scheme of hot windows that are "half loaded". All of the expensive
require-ing and store initialization is done. All we need to do is
activate the packages for just the one window.

This means that the hot window scheme needs to fundamentally change from
have fully pre-loaded windows, to having half-loaded empty hot windows
that can get their window props overridden again.

This led to a major refactor of the WindowManager to support this new
window scheme.

Along the way the API of WindowManager was significantly simplifed.
Instead of a bunch of special-cased windows, there are now consistent
interfaces to get and `ensure` windows are created and displayed. This
DRYed up a lot of repeated logic around showing or creating core windows.

This also allowed the consolidation of the core window configurations into
one place for much easier reasoning about what's getting booted up.

When a hot window goes "live" and gets populated, we simply change the
`windowType`. This now re-triggers the loading of all of the packages for
the window. All of the loading time is now just for the packages that
window requires since core Nylas is there thanks to the hot window
mechanism.

Unfortunately loading all of the packages for the composer was still
unnaceptably slow. The major issue was that all of the composer plugins
were taking a long time to process and initialize. The solution was to
have the main composer load first, then trigger another window load
settings change to change the `windowType` that loads in all of the
plugins.

Another major bottleneck was the `RetinaImg` name lookup on disk. This
requires traversing the entire static folder synchronously on boot. This
is now done once when the main window loads and saved in a cache in the
browser process. Any secondary windows simply ask the backend for this
cache and save the filesystem access time.

The Paper Doc below is the current set of manual tests I'm doing to make
sure no window interactions (there are a lot of them!) regressed.

Test Plan: https://paper.dropbox.com/doc/Window-Refactor-UYsgvjgdXgVlTw8nXTr9h

Reviewers: juan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2916
2016-04-22 13:30:42 -07:00
Ben Gotow 0174b4d20f bump(resources): Updates to submodule 2016-04-22 10:53:11 -07:00