Table of Contents

Setting Up Your Computer

Before Getting Ready For Development

Before reading through this wiki, make sure you've gone through the general wiki information on the home page as well as our information about company tools. This will be helpful to get a rough idea of everything that we are using as a company before you jump into Odoo specific or development specific tools.

Stuff To Know

Every operating system is going to be slightly different, but we are going to focus primarily on Mac OS and Ubuntu (Linux) systems. There is not too much that you will need to run ERP projects for Blue Stingray because we try to do all of our local development through Docker containers and every project should come with a docker-compose file.

It will be helpful to read through some general documentation to get your head around the tools that we use as a team before you start working on projects or setting up your computer. You do not need to know every tool front to back, but you need to know each tools purpose:

General Setup

Okay, once you feel comfortable with all of the topics above, here are some steps to follow for making sure your computer has everything you need for local development:

Browser Tools

There are a few things related to browsers and browser tools that you'll want to add:

Shell

Now setup your shell/terminal and some tools that you'll need for building and running projects:

Editors

See Configuring your Editor

Organizing Projects

Do whatever is best for you. Make yourself efficient.

One great way to try organizing projects, and something that will prevent code conflicts, is to designate an area for projects and make sure that you have a folder for each version that you are working on. For example, you may set up something like:

snippet.sh
$ ~/Work
 
$ ~/Work/projects # This would store our repos and active development.
$ ~/Work/documents # This would store any random downloads that we need temporarily.
$ ~/Work/design # This may contain some design assets that we need.

The projects section that you could break up even more if you feel that it helps you. Some developers may put /projects/clients/… or /projects/internal/… depending on what is easiest to understand. For this example, I'll just group everything together.

So we will want to have client folders because each client may have multiple projects:

snippet.sh
$ ~/Work/projects/bell_racing # Bell Racing is a client that may have multiple projects
$ ~/Work/projects/empac_group # Empac Group is a client that may have multiple projects
$ ~/Work/projects/bhs # BHS is a client that may have multiple projects

Now if we take a specific client, for example, we will want to have a nested directory for each version of a project. We will look at Bell Racing. Bell Racing has an Odoo instance running on version 9. This is a git repository stored at github.com/gobluestingray/bell_addons.git. They are also transitioning to a version 11 instance. So this is going to be the same repo, but a different branch.

In most development scenarios, you would just keep the code under a single directory that you cloned down but switch between branches. Since we are using docker, and because there are such large differences between versions of Odoo, you will want a separate git clone for each version:

snippet.sh
$ ~/Work/projects/bell_racing/bell_odoo_v9 # This is github.org/bluestingray/bell_addons.git on branch=9.0
$ ~/Work/projects/bell_racing/bell_odoo_v11 # This is github.org/bluestingray/bell_addons.git on branch=11.0

Nice To Have

We'll keep a list of nice to have applications, for the ERP Implementation Team specifically, listed out here. We will split them out into Linux and Mac.

Mac

Linux

Ready To Go

You should have everything that you need now. Jump back to the Team wiki page and start setting up some projects and making sure that you can clone down an existing project, run it without any issues, and that you understand the process for creating a new ERP project.