summaryrefslogtreecommitdiff
path: root/docs/dev/quickstart.rst
blob: e7d4baf464c9613cbebc354db98c7c57d794eb28 (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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.. _devquickstart:

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 grunt_build



Tips for debugging/development
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. Turn on debug logging
    Whether you are working on a new engine or trying to eliminate a bug, it is always a good idea
    to turn on debug logging. When debug logging is enabled a stack trace appears,
    instead of the cryptic ``Internal Server Error`` message. It can be turned on by setting
    ``debug: False`` to ``debug: True`` in settings.yml.

2. Run ``./manage.sh tests`` before creating a PR.
    Failing build on Travis is common because of PEP8 checks. So a new commit must be created
    containing these format fixes. This phase can be skipped if ``./manage.sh tests`` is run
    locally before creating a PR.