mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-08 17:17:56 +08:00
💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
e441553b50
Summary: This commit makes it so we always continue retrying syncback tasks as long as they error with a retryable error. There's really no reason to not continue retrying syncback tasks after an arbitrary number of retries (especially such a low one) if we encounter a retryable error. Before this commit, if for example we got 2 random network errors in a row, we would just mark the task as failed even though it would eventually succeed in subsequent attempts. Previously, when N1 synced against the cloud api, we would indefinitely retry a Task if we continued getting retryable errors. This ensures that the app can work correctly offline and prevents displaying unecessary errors to the user, and having actions bouncing back or sending messages without putting them in the sent folder. Additionally, this commit ensures that when cleaning up messages without a folderImapUID we don't delete messages that are currently being added to the sent folder. This is relevant to this commit because given that we could retry the EnsureMessageInSentFolder task indefinitely, we might end up deleting that message because it wont have a uid until the task succeeds. Depends on D3898 Test Plan: manual Reviewers: mark, spang, evan, halla Reviewed By: spang, evan, halla Differential Revision: https://phab.nylas.com/D3900 |
||
---|---|---|
.ebextensions | ||
arclib | ||
migrations | ||
packages | ||
scripts | ||
.arcconfig | ||
.arclint | ||
.babelrc | ||
.dockerignore | ||
.eslintrc | ||
.gitignore | ||
.tern-project | ||
Dockerfile | ||
lerna.json | ||
package.json | ||
pm2-debug-cloud-api.yml | ||
pm2-dev.yml | ||
pm2-prod-api.yml | ||
pm2-prod-workers.yml | ||
README.md | ||
test_accounts.txt |
K2 - Local Sync Engine & Cloud Services for Nylas Mail
This is a collection of all sync and cloud components required to run N1.
- Cloud API: The cloud-based auth and metadata APIs for N1
- Cloud Core: Shared code used in all remote cloud services
- Cloud Workers: Cloud workers for services like send later
- Isomorphic Core: Shared code across local client and cloud servers
- Local Sync: The local mailsync engine integreated in Nylas Mail
See /packages
for the separate pieces. Each folder in /packages
is
designed to be its own stand-alone repository. They are all bundled here
for the ease of source control management.
Initial Setup for All Local & Cloud Services:
New Computer (Mac):
- Install Homebrew
- Install NVM
brew install nvm
- Install Node 6 via NVM:
nvm install 6
- Install Redis locally
brew install redis
New Computer (Linux - Debian/Ubuntu):
- Install Node 6+ via NodeSource (trusted):
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
- Install Redis locally
sudo apt-get install -y redis-server redis-tools
benefit of letting us use subdomains.