$customHeader
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

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

https://brew.sh/

Homebrew is a 3rd party package manager for Mac that makes it easy to setup many developer friendly tools.

Pyenv

Installing pyenv (using Homebrew)

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:

pyenv install 3.8

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:

pyenv global 3.8.whichever-you-have

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

Basic Installation Docs

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 .bashrc or .zshrc

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:

brew install --cask docker

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

brew install nvm

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 (master of the repos you're developing).

[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

Basic Installation Docs

The main purpose of Python virtual environments is to create an isolated environment for Python projects.

Docker

Install Docker via Repository

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

https://nodejs.org/en/

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 (master of the repos you're developing).

  • No labels