mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-20 23:36:21 +08:00
b79488ae43
Summary: This diff solves a few separate issues from T7313, T7316, T7282, and it refactors the send code a little bit. Initially, the problem that led to this diff was generating message ids that wouldn't collide (which was causing errors in the message-processor). Collisions in ids were being caused by messages that contained the exact same participants, subject and date (most likely due bots or scripts sending emails in quick succession) To prevent collisions this commit adds the `message-id` header as part of the database message id, and ensures that we set it correctly before sending, and that it remains consistent through send, multi-send, and the sync loop. During the refactor and review, I removed some code that assumed that we were syncing drafts (which we aren't), and also fixes a few other known and unknown issues around sending, message creation, and tracking, like assigning the correct date header (we were previously assigning the draft creation date from within N1), fixing the tracking regex, among other smaller bugs/typos. Will address inline TODOs in a separate diff Test Plan: TODO!!! I will add tests in another diff Reviewers: evan, halla, jackie, khamidou Reviewed By: halla, jackie Differential Revision: https://phab.nylas.com/D3507 |
||
---|---|---|
arclib | ||
packages | ||
.arcconfig | ||
.arclint | ||
.dockerignore | ||
.eslintrc | ||
.gitignore | ||
.tern-project | ||
Dockerfile | ||
lerna.json | ||
package.json | ||
pm2-dev.yml | ||
pm2-prod-api.yml | ||
pm2-prod-workers.yml | ||
README.md | ||
test_accounts.txt |
K2 - Local Sync Engine & Cloud Services for Nylas N1
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 N1
See /packages
for the separate pieces. Each folder in /packages
is
designed to be its own stand-alone repositoriy. 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.