mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-11 01:54:40 +08:00
918090a4e1
Summary:
The goal is to let us see what plugins are throwing errors on Sentry.
We are using a Sentry `tag` to identify and group plugins and their
errors.
Along the way, I cleaned up the error catching and reporting system. There
was a lot of duplicate error logic (that wasn't always right) and some
legacy Atom error handling.
Now, if you catch an error that we should report (like when handling
extensions), call `NylasEnv.reportError`. This used to be called
`emitError` but I changed it to `reportError` to be consistent with the
ErrorReporter and be a bit more indicative of what it does.
In the production version, the `ErrorLogger` will forward the request to
the `nylas-private-error-reporter` which will report to Sentry.
The `reportError` function also now inspects the stack to determine which
plugin(s) it came from. These are passed along to Sentry.
I also cleaned up the `console.log` and `console.error` code. We were
logging errors multiple times making the console confusing to read. Worse
is that we were logging the `error` object, which would print not the
stack of the actual error, but rather the stack of where the console.error
was logged from. Printing `error.stack` instead shows much more accurate
stack traces.
See changes in the Edgehill repo here:
|
||
---|---|---|
.. | ||
config | ||
resources | ||
tasks | ||
Gruntfile.coffee | ||
package.json | ||
README.md | ||
run-build-and-send-screenshot.scpt |
N1 Build Environment
Node version 0.10.x (Due to the version of electron currently used.)
N1 Building and Tasks
This folder contains tasks to create production builds of N1
Tasks should not be executed from this folder, but rather from /scripts
. The
/scripts
folder has convenient methods that fix paths and do environment
checks.
Note that most of the task definitions are stored in /build/tasks
Some useful tasks
NOTE: Run all of these from the N1 root folder.
Linting:
`script/grunt lint`
Building:
`script/grunt build`
The build folder has its own package.json and is isolated so we can use npm
to compile against v8's headers instead of apm