Skip to content

Latest commit

 

History

History
110 lines (75 loc) · 3.37 KB

development.md

File metadata and controls

110 lines (75 loc) · 3.37 KB

Development Setup

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

Prerequisites

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

  • Git
    • Use our Git Guide to get started with Git and GitHub.
  • Node.js >= v10.16.3
    • 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
  • Development headers for the libXext, libXtst, and libxkbfile libraries, which can be installed using apt on Ubuntu using
    $ sudo apt install libxext-dev libxtst-dev libxkbfile-dev libgconf-2-4

Ubuntu/Linux and other Debian-based distributions

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

MacOS

On a system running MacOS, you can refer to official nodejs docs to install nodejs. To ensure Node.js has been installed, run node -v in terminal to know your node version.

If NPM and node-gyp don't come bundled with your Node.js installation, you will need to install them manually.

Windows

  • Download Node.js for Windows and install it. You can refer to the official docs here to do so. To ensure Node.js has been installed, run node -v in Git Bash to know your node version.
  • Also, install Windows-Build-Tools to compile native node modules by using
    $ npm install --global windows-build-tools

Download, build, and run

Clone the source locally:

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

Install project dependencies:

$ npm install

Start the app:

$ npm start

Run tests:

$ npm test

How to contribute?

Feel free to fork this repository, test it locally and then report any bugs you find in the issue tracker.

You can read more about making contributions in our Contributing Guide.

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 .7z nsis file and a .exe WebSetup 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 of files, you will need all three operating systems.

The output distributable packages appear in the dist/ directory.