Environment

For developers, you'll need to set up your development environment. There's no Elastio rule about how you do this, it's entirely a matter of personal preference. This chapter contains some advice from various Elastio team members. Take it or leave it.

Windows Setup

Whether you're using a Linux system for your development environment or not, it's very likely you'll need to work with a Linux environment at some point.

If you're on Windows, @anelson suggests using WSL 2, and in particular the Fedora version. This is well tested, performs well, and let's you forget for a few moments that you're on Windows. Make sure you install a decent terminal emulator if you go this route. Alacritty is great, the Windows Terminal app in the MSFT store is pretty good. The console you get running PowerShell or cmd.exe is an abomination and it's use in the presence of other Elastio team members will invite derisive comments at the very least, or merciless ridicule at worst.

The Rust toolchain should be installed on your Windows system, as well as on your Linux VM. Most of the Elastio system supports Windows, although some key components including ScaleZ are Linux-only. That's why you'll need a Linux environment no matter what OS you run.

@olesiastorchak runs Windows ask her if you get stuck.

Linux Setup

Various team members use various distributions. @anelson's current recommendation is the latest Fedora (Fedora 32 at the time of this writing). Other developers swear by Ubuntu (20.04 as of this writing). This comes down to personal preference, but that means you're responsible for getting whatever your distro of choice is working. If you don't care and just want to get your work done, go with Ubuntu or Fedora.

To build the Elastio Rust codebase on Linux you'll need some dependencies installed. There's a shell script in the elastio/devboxes repo which is used to build our Vagrant build boxes for every supported distro we target (there are a lot of them). You'd be well advised to run that script on your system, or at least read it and install the packages therein. @anelson apologizes that this is a shell script and not an Ansible playbook, he has thus far failed to convert the shell scripting heathens to the virtuous path of Ansible.

macOS Setup

Good luck to you. @vvv uses a mac maybe he can help you.

Editors

There are many opinions in the company about which editor to use. A partial list of who prefers what is below. Depending on what editor you prefer, you may consider reaching out to one of your colleagues for advice:

EditorUsers
(neo)vim@anelson
emacs@vvv
VS Code@Veetaha
CLion or IDEA Rust plugin@olesiastorchak @JusSergey
Visual StudioLOLWUT?? Seriously? Who uses that?