If you’re developing for Open edX, you’ll need most of these eventually.
Tools to Install on Mac OS X
Tool | Setup Instructions | Notes |
---|---|---|
Homebrew | Homebrew is a 3rd party package manager for Mac that makes it easy to setup many developer friendly tools. | |
Pyenv | A tool that lets you manage multiple python versions. | |
Python Versions | Install the latest stable versions of python 3.8 and 3.9. You can find out what’s available that starts with 3.8 via:
or by looking at https://www.python.org/downloads/ Then run pyenv install with the specific versions you want. Set your 3.8 version as the default:
| The language we use to develop our backends. Note: You can also just download and install the version of python you need directly from the python.org website. |
Virtualenvwrapper | You’ll want to source the wrapper script from the python environment you installed with pyenv. For example if you’re using `3.8.whichever` you would source the below path in your source ~/.pyenv/versions/3.8.whichever/bin/virtualenvwrapper.sh Restart your terminal and you will see some creation activity from that script. | The main purpose of Python virtual environments is to create an isolated environment for Python projects. |
Docker Desktop | https://docs.docker.com/docker-for-mac/install/ Alternately:
Note: do NOT use `brew install docker`, as this will only give you the CLI. After installing docker you will need to give it more space. Check the devstack readme for minimum sizing, currently 2 CPUs, 8G of memory, 96G of disk. | If you don’t know what docker is, check out their docs here first. We use docker heavily across development, testing and production environments so having a good understanding of docker concepts will make your life a lot easier. |
Node Version Manager |
Place the following in your shell .bash_profile or .zshenv): export NVM_DIR="$HOME/.nvm" [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && . "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion` After restarting a terminal: nvm install v16 | Used to allow multiple versions of node since different front ends use different nodejs versions. Most commonly used as of 12/1/2020 is node 12.20 LTS (https://nodejs.org/en/about/releases/) |
edX Devstack | Start with the Readme in the Devstack Repo | Get to the point where you can run LMS and Studio locally and open them in your browser. As an edX developer, please use the LATEST version of the devstack ( |
[In Development] Tutor | Start here: Using Tutor for local development | This process is in development. We encourage new developers to try it out! |
Tools to Install on Ubuntu
Tool | Setup Instructions | Notes |
---|---|---|
Deadsnakes PPA | sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update | A source for specific versions of python. |
Python Versions | sudo apt install python3.8-dev | The language we use to develop our backends. |
Virtualenvwrapper | The main purpose of Python virtual environments is to create an isolated environment for Python projects. | |
Docker | If you don’t know what docker is, check out their docs here first. We use docker heavily across development, testing and production environments so having a good understanding of docker concepts will make your life a lot easier. | |
Node | Used to build Micro-Frontends and client side javascript code. | |
edX Devstack | Start with the Readme in the Devstack Repo | Get to the point where you can run LMS and Studio locally and open them in your browser. As an edX developer, please use the LATEST version of the devstack ( |