Skip to content

Latest commit

 

History

History
85 lines (63 loc) · 2.33 KB

development.md

File metadata and controls

85 lines (63 loc) · 2.33 KB

Development setup

This is a guide to running the Zulip desktop app from a source tree, in order to contribute to developing it.

Prerequisites

To build and run the app from source, you'll need the following:

  • Git
  • Node.js >= v6.9.0
    • NPM and node-gyp, if they don't come bundled with your Node.js installation
  • Python (v2.7.x recommended)
  • A C++ compiler compatible with C++11
  • Linux users also need Snapcraft
  • Development headers for the libXext, libXtst, and libxkbfile libraries

Debian/Ubuntu and friends

On a system running Debian, Ubuntu, or another Debian-based Linux distribution, you can install all dependencies through the package manager (see here for more on the first command):

$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt install git nodejs python build-essential snapcraft libxext-dev libxtst-dev libxkbfile-dev libgconf-2-4

Other OSes

Other developers run the app on Windows, macOS, and possibly other OSes. PRs to add specific instructions to this doc are welcome!

On Windows, your C++ compiler should be Visual Studio 2015 or later.

Download, build, and run

Clone the source locally:

$ git clone https://github.com/zulip/zulip-electron
$ cd zulip-electron

Install project dependencies:

$ npm install

Start the app:

$ npm start

Start and watch changes:

$ npm run dev

Troubleshooting

If you have any problems running the app, see the most common issues.

Making a release

To package the app into an installer:

npm run dist

This command will produce distributable packages or installers for the operating system you're running on:

  • on Windows, a Windows installer file
  • on macOS, a .dmg file
  • on Linux, a plain .zip file as well as a .deb file, .snap file and an AppImage file. To generate all three types, you will need all three operating systems.

The output files appear in the dist/ directory.