|
|
# Installation of the Development Environment
|
|
|
|
|
|
It is highly recommended to set up a virtual environment for the backend
|
|
|
development. The following procedure uses the
|
|
|
[venv](https://docs.python.org/3/library/venv.html) module for this
|
|
|
purpose (it is included in the standard Python library since version
|
|
|
3.3).
|
|
|
|
|
|
1. Install the latest stable Python 3 version, if it is not already on your system.
|
|
|
|
|
|
1. Clone the Yangson project in a directory of your choice:
|
|
|
```
|
|
|
$ git clone git@gitlab.labs.nic.cz:jetconf/jetconf-resolver.git
|
|
|
```
|
|
|
|
|
|
1. Create the virtual environment:
|
|
|
```
|
|
|
$ python3 -m venv jetconf-resolver
|
|
|
```
|
|
|
|
|
|
1. Activate the virtual environment:
|
|
|
```
|
|
|
$ cd jetconf-resolver
|
|
|
$ source bin/activate
|
|
|
```
|
|
|
|
|
|
1. Install required standard packages inside the virtual environment:
|
|
|
```
|
|
|
$ pip install -r requirements.txt
|
|
|
```
|
|
|
If you are prompted to upgrade *pip*, you can do that, too.
|
|
|
|
|
|
When inside the virtual environment, the shell prompt should change to something like
|
|
|
```
|
|
|
(jetconf-resolver) $
|
|
|
```
|
|
|
|
|
|
To leave the virtual environment, just do
|
|
|
```
|
|
|
$ deactivate
|
|
|
```
|
|
|
|
|
|
The virtual environment can be entered anytime later by executing step 4. The steps preceding it need to be performed just once.
|
|
|
|
|
|
The setup described above has a few consequences that have to be kept in mind:
|
|
|
|
|
|
* Any project files that need to go to `bin` (executable Python scripts), `include` or `lib` have to be added as exceptions to `.gitignore`, for example
|
|
|
```
|
|
|
!bin/foo
|
|
|
```
|
|
|
|
|
|
* After adding a new Python module dependency, it is necessary to run
|
|
|
```
|
|
|
$ make deps
|
|
|
```
|
|
|
and _commit_ the new content of `requirements.txt`.
|
|
|
|
|
|
As an additional test suite, all
|
|
|
[doctest](http://www.sphinx-doc.org/en/stable/ext/doctest.html)
|
|
|
snippets that are embedded in documentation can be executed:
|
|
|
```
|
|
|
$ cd docs
|
|
|
$ make doctest
|
|
|
```
|
|
|
|
|
|
Documentation can be built locally by running
|
|
|
```
|
|
|
$ make html
|
|
|
```
|
|
|
in the ``docs`` subdirectory.
|
|
|
|