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:
Editor | Users |
---|---|
(neo)vim | @anelson |
emacs | @vvv |
VS Code | @Veetaha |
CLion or IDEA Rust plugin | @olesiastorchak @JusSergey |
Visual Studio | LOLWUT?? Seriously? Who uses that? |