summaryrefslogtreecommitdiff
path: root/docs/dev/quickstart.rst
blob: edca8af5e0ae4f62647abf14890ad83baf032c3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Development Quickstart
----------------------

This quickstart guide gets your environment set up with searx. Furthermore, it gives a
short introduction to the new manage.sh script.

How to setup your development environment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

First, clone the source code of searx to the desired folder. In this case the source
is cloned to ~/myprojects/searx. Then create and activate the searx-ve
virtualenv and install the required packages using manage.sh.

.. code:: sh

    cd ~/myprojects
    git clone https://github.com/asciimoo/searx.git
    cd searx
    virtualenv searx-ve
    . ./searx-ve/bin/activate
    ./manage.sh update_dev_packages


How to run tests
~~~~~~~~~~~~~~~~

Tests can be run using the manage.sh script.

Following tests and checks are available:

- Unit tests

- Selenium tests

- PEP8 validation

- Unit test coverage check

For example unit tests are run with the command below:

.. code:: sh

    ./manage.sh unit_tests

For further test options, please consult the help of the manage.sh script.


How to compile styles and javascript
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

How to build styles
^^^^^^^^^^^^^^^^^^^

Less is required to build the styles of searx. Less can be installed using either NodeJS or Apt.

.. code:: sh

    sudo apt-get install nodejs
    sudo npm install -g less


OR

.. code:: sh

    sudo apt-get install node-less

After satisfying the requirements styles can be build using manage.sh

.. code:: sh

    ./manage.sh styles


How to build the source of the oscar theme
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Grunt must be installed in order to build the javascript sources. It depends on NodeJS, so first
Node has to be installed.

.. code:: sh

    sudo apt-get install nodejs
    sudo npm install -g grunt-cli

After installing grunt, the files can be built using the following command: 

.. code:: sh

    ./manage.sh build_grunt