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.
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:
man.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:
There are a few things related to browsers and browser tools that you'll want to add:
ssh-keygen if you don't already have one and upload that to your Github account. You can use any email for your Github account. Ask someone to add you to the Blue Stingray team on Github.Now setup your shell/terminal and some tools that you'll need for building and running projects:
git in your terminal it will prompt you to download Developer Tools if you don't have it already.apt install git.brew install python3apt install python3.$PATH. For Mac and Linux this will be the same. Make sure that you have a line in either you .bashrc or your .bash_profile that points to your python3 bin. For Mac it may look like export PATH=$PATH:/Users/{my-user}/Library/Python/3.7/bin. Find your bin and add it to the end of your path or your going to have some problems running the internal tools we have created.docker ps. I recommend not running it as sudo if you can avoid it.apt install docker docker-compose. On Linux after you download make sure that your user is in the docker group via sudo usermod -aG docker ${USER}. Further instructions.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:
$ ~/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:
$ ~/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:
$ ~/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
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.
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.