Desktop Application for delta.chat
$ npm start
It is recommended to run this watch command in a separate terminal
$ npm run watch
The configuration files and database are stored at application-config's default filepaths.
Each database is a sqlite file that represents the account for a given email address.
static
: static files used directly in the appimages
: image files used for the 'conversations' module. This should probably be moved to the module at some point..src
: the original javascript source files, both for main and rendereres5
: the compiled es5 source files for front-enddist
: the final distributions and executables for all supported platforms.tx
: configuration files for transifex_locales
: source files for translationsbin
: misc. scriptsbuild
: files needed only at build time (for electron-builder)conversations
: react components pulled out of signal
$ git clone https://github.com/deltachat/deltachat-desktop.git
$ cd deltachat-desktop
$ npm install
If you get errors running npm install
, you might need to install meson
, ninja
and libssl1.0-dev
. Also, libetpan-dev
can't be installed globally.
On Linux (e.g. Debian Stretch):
$ sudo apt-get install python3-pip ninja-build libssl1.0-dev
$ sudo pip3 install meson
$ sudo apt-get remove libetpan-dev
Then try running npm install
again.
Please see build instructions for additional information.
$ npm test
$ npm run test-integration
The integration tests use Spectron and Tape. They click through the app, taking screenshots and comparing each one to a reference. Why screenshots?
- Ad-hoc checking makes the tests a lot more work to write
- Even diffing the whole HTML is not as thorough as screenshot diffing. For example, it wouldn't catch an bug where hitting ESC from a video doesn't correctly restore window size.
- Chrome's own integration tests use screenshot diffing iirc
- Small UI changes will break a few tests, but the fix is as easy as deleting the offending screenshots and running the tests, which will recreate them with the new look.
- The resulting Github PR will then show, pixel by pixel, the exact UI changes that were made! See https://github.com/blog/817-behold-image-view-modes
For MacOS, you'll need a Retina screen for the integration tests to pass. Your screen should have the same resolution as a 2016 12" Macbook.
For Windows, you'll need Windows 10 with a 1366x768 screen.
When running integration tests, keep the mouse on the edge of the screen and don't touch the mouse or keyboard while the tests are running.
Install the transifex-client and get added to the Delta Chat Desktop
project.
When you add new strings that need to be translated, run:
tx push --source
And periodically we can run the following command to get the new translation strings from translators:
tx pull --all
- Create a draft release on github, e.g.
vX.Y.Z
- Change
version
field inpackage.json
toX.Y.Z
- Commit and push modified
package.json
(repeat until release is ready) - Once done, publish the release on github, which will create the tag
Also see https://www.electron.build/configuration/publish
Licensed under the GPLv3, see LICENSE file for details.
Copyright © 2018 DeltaChat
contributors.