dev-setup.rst
160 lines
| 4.1 KiB
| text/x-rst
|
RstLexer
r303 | .. _dev-setup: | |||
r1 | ||||
=================== | ||||
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 | ||||
r272 | Enterprise running with isolation. | |||
r1 | ||||
r271 | To set up RhodeCode Enterprise inside the Nix environment, use the following steps: | |||
r1 | ||||
Setup Nix Package Manager | ||||
------------------------- | ||||
r271 | To install the Nix Package Manager, please run:: | |||
r1 | ||||
$ curl https://nixos.org/nix/install | sh | ||||
r271 | 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 | ||||
r1 | following commands: | |||
* `nix-env` | ||||
* `nix-shell` | ||||
.. tip:: | ||||
Update your channels frequently by running ``nix-channel --upgrade``. | ||||
r271 | Switch nix to the latest STABLE channel | |||
--------------------------------------- | ||||
r1 | ||||
run:: | ||||
nix-channel --add https://nixos.org/channels/nixos-16.03 nixpkgs | ||||
Followed by:: | ||||
nix-channel --update | ||||
Clone the required repositories | ||||
------------------------------- | ||||
r271 | After Nix is set up, clone the RhodeCode Enterprise Community Edition and | |||
r1 | 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:: | ||||
r272 | If you cannot clone the repository, please request read permissions | |||
via support@rhodecode.com | ||||
r1 | ||||
Enter the Development Shell | ||||
--------------------------- | ||||
r271 | The final step is to start the development shell. To do this, run the | |||
r1 | following command from inside the cloned repository:: | |||
cd ~/rhodecode-enterprise-ce | ||||
r271 | nix-shell | |||
r1 | ||||
.. note:: | ||||
On the first run, this will take a while to download and optionally compile | ||||
r272 | a few things. The following runs will be faster. The development shell works | |||
r489 | fine on both MacOS and Linux platforms. | |||
r1 | ||||
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 | ||||
r491 | .. note:: | |||
r1 | ||||
r491 | It is recommended to use the name `dev.ini`. | |||
r1 | ||||
Setup the Development Database | ||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||||
r271 | To create a development database, use the following example. This is a one | |||
r1 | time operation:: | |||
paster setup-rhodecode dev.ini \ | ||||
--user=admin --password=secret \ | ||||
--email=admin@example.com \ | ||||
--repos=~/my_dev_repos | ||||
r490 | Compile CSS and JavaScript | |||
^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||||
r701 | To use the application's frontend and prepare it for production deployment, | |||
you will need to compile the CSS and JavaScript with Grunt. | ||||
This is easily done from within the nix-shell using the following command:: | ||||
grunt | ||||
r490 | ||||
r701 | When developing new features you will need to recompile following any | |||
changes made to the CSS or JavaScript files when developing the code:: | ||||
r490 | ||||
r701 | grunt watch | |||
r490 | ||||
r701 | This prepares the development (with comments/whitespace) versions of files. | |||
r490 | ||||
r1 | Start the Development Server | |||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||||
r489 | From the rhodecode-vcsserver directory, start the development server in another | |||
nix-shell, using the following command:: | ||||
r1 | ||||
r515 | pserve configs/development.ini http_port=9900 | |||
r1 | ||||
r489 | In the adjacent nix-shell which you created for your development server, you may | |||
now start CE with the following command:: | ||||
r1 | ||||
r491 | ||||
r489 | rcserver dev.ini | |||
r1 | ||||
r491 | .. note:: | |||
To automatically refresh - and recompile the frontend assets - when changes | ||||
are made in the source code, you can use the option `--reload`. | ||||
r1 | ||||
Run the Environment Tests | ||||
^^^^^^^^^^^^^^^^^^^^^^^^^ | ||||
r271 | Please make sure that the tests are passing to verify that your environment is | |||
r272 | set up correctly. RhodeCode uses py.test to run tests. | |||
r489 | 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 | ||||