Setup of Development env#
These instructions are meant for developing RhodeCode from source code. To setup a development environment with all needed services for development follow the below actions:
define dev workspace home#
Setup env variable WORKSPACE_HOME to your absolute path where you repositories for dev are stored. e.g
example:
WORKSPACE_HOME=/media/psf/Home/workspace
Set this on bash:
export WORKSPACE_HOME=/media/psf/Home/workspace
get rcstack & docker#
To quickly get and install latest rcstack run this command
# create the rhodecode-docker dir, and cd into it
mkdir -p $WORKSPACE_HOME/rhodecode-docker && cd $WORKSPACE_HOME/rhodecode-docker
# get latest rcstack
curl -L -s -o rcstack https://code.rhodecode.com/rhodecode-enterprise-docker/raw/master/scripts/rcstack/rcstack && chmod +x rcstack
./rcstack init
Previously used ./rcstack init command will setup docker, and bootstrap the env, but we still need to fetch dev-tools
# make sure we got the latest dev-tools installed
curl -L -s -o dev-tools https://code.rhodecode.com/rhodecode-enterprise-docker/raw/master/scripts/dev-tools/dev-tools && chmod +x dev-tools
# Please check available options using --help
./dev-tools --help
Obtain source code#
Please clone the following repositories into the WORKSPACE_HOME directory
For CE development:
hg clone https://code.rhodecode.com/rhodecode-vcsserver
hg clone https://code.rhodecode.com/rhodecode-enterprise-ce
# make a dummy repo without source code
mkdir rhodecode-enterprise-ee
for EE development:
hg clone https://code.rhodecode.com/internal/rhodecode-vcsserver
hg clone https://code.rhodecode.com/internal/rhodecode-enterprise-ce
hg clone https://code.rhodecode.com/internal/rhodecode-enterprise-ee
Finally this is the structure you should get:
ls -la $WORKSPACE_HOME
drwxr-xr-x 1 docker docker 928 Dec 18 23:46 rhodecode-docker
drwxr-xr-x 1 docker docker 1504 Dec 18 23:46 rhodecode-enterprise-ce
drwxr-xr-x 1 docker docker 1280 Dec 18 23:46 rhodecode-enterprise-ee
drwxr-xr-x 1 docker docker 832 Dec 18 23:46 rhodecode-vcsserver
run dev-env#
First start with setting up a dev builds for dev images
# execute from cd $WORKSPACE_HOME/rhodecode-docker
./rcstack cli set-runtime-image beta
To start developing we need few services to run, we can run this using dev-env
# execute from cd $WORKSPACE_HOME/rhodecode-docker
./dev-tools dev-env
Note
There’s an option to run dev version of each of the service, e.g if ssh or svn should be tested it can be run like ./dev-tools ssh ./dev-tools svn
You can check the status of services by running
# execute from cd $WORKSPACE_HOME/rhodecode-docker
./rcstack status
Prepare services in develop mode#
copy the runtime.env as our dev.env:
cp .custom/.runtime.env .custom/.dev.env
go to rhodecode-vcsserver and run
# execute from cd $WORKSPACE_HOME/rhodecode-vcsserver
mkdir -p .dev/
echo "make sh" > .dev/dev-env.sh && chmod +x .dev/dev-env.sh
cp configs/development.ini .dev/dev.ini
go to rhodecode-enterprise-ce and run
# execute from cd $WORKSPACE_HOME/rhodecode-enterprise-ce
mkdir -p .dev/
echo "make sh" > .dev/dev-env.sh && chmod +x .dev/dev-env.sh
cp configs/development.ini .dev/dev.ini
run services (preferably in two separate shells)#
cd $WORKSPACE_HOME/rhodecode-docker
# shell 1
./dev-tools ce
➜ rhodecode-enterprise-ce
# shell 2
./dev-tools vcs
➜ rhodecode-vcsserver
Init DB#
# run from enterprise shell
➜ rhodecode-enterprise-ce
/usr/local/bin/rhodecode_bin/bin/rc-setup-app \
/home/rhodecode/rhodecode-enterprise-ce/.dev/dev.ini \
--force-yes \
--skip-existing-db \
--user=admin \
--password=secret4 \
--email=admin@example.com \
--repos=/var/opt/rhodecode_repo_store
Note
–user=admin –password=secret4 used here can be used to log-in to first super-admin account in web UI
Manually Upgrade DB#
/usr/local/bin/rhodecode_bin/bin/rc-upgrade-db \
/home/rhodecode/rhodecode-enterprise-ce/.dev/dev.ini \
--force-yes