Building Atom on Linux for Teletype


#1

The following is a quick guide for new people (like me) that are wanting to contribute to Atom and in particular Atom’s Teletype, but don’t know too much about building or the dependencies needed and just want a quick guide to get everything working together.

These commands were run on an Ubuntu Virtual Box v16.04.3, and the commands are taken from the flight manual’s guide for hacking on atom’s core.

This guide is intended to be a helpful quick guide for those just starting out, however this guide is not intended in any way to replace the well documented Flight Manual, and I cannot guarantee that it will work (as changes to dependencies and to the core occur).

I hope that some people can find this helpful! :smile:

Bootstrapping and cloning:

$wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
--reopen terminal
$nvm install v8.9.0
$npm install -g npm
$npm config set python /usr/bin/python2 –g
$sudo apt-get install build-essential git libsecret-1-dev fakeroot rpm libx11-dev libxkbfile-dev
$git clone https://github.com/atom/atom.git
$atom/script/bootstrap
$atom/script/clean
$atom/script/build --install ~
$gedit ~/.profile
--ADD the following to the bottom of the file, then save and exit out of the file
export ATOM_DEV_RESOURCE_PATH="$HOME/atom"
--Restart VirtualBox
$atom --dev ~/atom

Note: As mentioned in the flight manual, the command atom and apm may have an ending suffix (i.e., atom-beta or atom-dev depending upon the version of atom cloned).

Note: there may be a build issue that gives an EACCESS error (see atom#16853).
A workaround proposed is to use XDG_DATA_DIRS=~/local/share in terminal before the script/build --install ~ step. You then have to make all of the following directories manually ~/local/share/icons/hicolor before the installation step. Disclaimer: This is not at all a fix to the problem, nor is it recommended for atom but it allows you to finish the build. Before using this check if the issue above has been resolved :slight_smile:

How to Develop Teletype and Teletype-Client:

$apm install teletype
$git clone https://github.com/atom/teletype.git
$cd teletype
$apm install
$apm link -d
$sudo apt-get update
$sudo apt-get install postgresql-9.5

Note: If you get a package lock error, restart Vbox, and Without opening anything other than terminal, re-enter the command.

$cd teletype
$sudo -u postgres createuser <root user name> -d 
$createdb teletype-test
$apm-dev install

Then run the tests to confirm that its working: atom-dev --test test in the teletype directory.

$cd node_modules/@atom
$rm -r teletype-client
$git clone http://github.com/atom/teletype-client.git
$cd teletype-client
$git checkout -b mod
$cp .env.example .env
$createdb teletype-server-test
$npm install