157 lines
3.9 KiB
ReStructuredText
157 lines
3.9 KiB
ReStructuredText
.. _dev-setup:
|
|
|
|
===================
|
|
Development setup
|
|
===================
|
|
|
|
|
|
RhodeCode Enterprise runs inside a Nix managed environment. This ensures build
|
|
environment dependencies are correctly declared and installed during setup.
|
|
It also enables atomic upgrades, rollbacks, and multiple instances of RhodeCode
|
|
Enterprise running with isolation.
|
|
|
|
To set up RhodeCode Enterprise inside the Nix environment, use the following steps:
|
|
|
|
|
|
|
|
Setup Nix Package Manager
|
|
-------------------------
|
|
|
|
To install the Nix Package Manager, please run::
|
|
|
|
$ curl https://nixos.org/nix/install | sh
|
|
|
|
or go to https://nixos.org/nix/ and follow the installation instructions.
|
|
Once this is correctly set up on your system, you should be able to use the
|
|
following commands:
|
|
|
|
* `nix-env`
|
|
|
|
* `nix-shell`
|
|
|
|
|
|
.. tip::
|
|
|
|
Update your channels frequently by running ``nix-channel --upgrade``.
|
|
|
|
|
|
Switch nix to the latest STABLE channel
|
|
---------------------------------------
|
|
|
|
run::
|
|
|
|
nix-channel --add https://nixos.org/channels/nixos-16.03 nixpkgs
|
|
|
|
Followed by::
|
|
|
|
nix-channel --update
|
|
|
|
|
|
Clone the required repositories
|
|
-------------------------------
|
|
|
|
After Nix is set up, clone the RhodeCode Enterprise Community Edition and
|
|
RhodeCode VCSServer repositories into the same directory.
|
|
To do this, use the following example::
|
|
|
|
mkdir rhodecode-develop && cd rhodecode-develop
|
|
hg clone https://code.rhodecode.com/rhodecode-enterprise-ce
|
|
hg clone https://code.rhodecode.com/rhodecode-vcsserver
|
|
|
|
.. note::
|
|
|
|
If you cannot clone the repository, please request read permissions
|
|
via support@rhodecode.com
|
|
|
|
|
|
|
|
Enter the Development Shell
|
|
---------------------------
|
|
|
|
The final step is to start the development shell. To do this, run the
|
|
following command from inside the cloned repository::
|
|
|
|
cd ~/rhodecode-enterprise-ce
|
|
nix-shell
|
|
|
|
.. note::
|
|
|
|
On the first run, this will take a while to download and optionally compile
|
|
a few things. The following runs will be faster. The development shell works
|
|
fine on both MacOS and Linux platforms.
|
|
|
|
|
|
|
|
Creating a Development Configuration
|
|
------------------------------------
|
|
|
|
To create a development environment for RhodeCode Enterprise,
|
|
use the following steps:
|
|
|
|
1. Create a copy of `~/rhodecode-enterprise-ce/configs/development.ini`
|
|
2. Adjust the configuration settings to your needs
|
|
|
|
.. note::
|
|
|
|
It is recommended to use the name `dev.ini`.
|
|
|
|
|
|
Setup the Development Database
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
To create a development database, use the following example. This is a one
|
|
time operation::
|
|
|
|
paster setup-rhodecode dev.ini \
|
|
--user=admin --password=secret \
|
|
--email=admin@example.com \
|
|
--repos=~/my_dev_repos
|
|
|
|
|
|
Compile CSS and JavaScript
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
To use the application's frontend, you will need to compile the CSS and
|
|
JavaScript with Grunt. This is easily done from within the nix-shell using the
|
|
following command::
|
|
|
|
make web-build
|
|
|
|
You will need to recompile following any changes made to the CSS or JavaScript
|
|
files.
|
|
|
|
|
|
Start the Development Server
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
From the rhodecode-vcsserver directory, start the development server in another
|
|
nix-shell, using the following command::
|
|
|
|
pserve configs/development.ini http_port=9900
|
|
|
|
In the adjacent nix-shell which you created for your development server, you may
|
|
now start CE with the following command::
|
|
|
|
|
|
rcserver dev.ini
|
|
|
|
.. note::
|
|
|
|
To automatically refresh - and recompile the frontend assets - when changes
|
|
are made in the source code, you can use the option `--reload`.
|
|
|
|
|
|
Run the Environment Tests
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Please make sure that the tests are passing to verify that your environment is
|
|
set up correctly. RhodeCode uses py.test to run tests.
|
|
While your instance is running, start a new nix-shell and simply run
|
|
``make test`` to run the basic test suite.
|
|
|
|
|
|
Need Help?
|
|
^^^^^^^^^^
|
|
|
|
Join us on Slack via https://rhodecode.com/join or post questions in our
|
|
Community Portal at https://community.rhodecode.com
|