| 
									
										
										
										
											2016-04-21 13:15:04 +02:00
										 |  |  | .. _devquickstart:
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-12 19:20:56 +01:00
										 |  |  | ======================
 | 
					
						
							| 
									
										
										
										
											2016-02-01 21:28:13 +01:00
										 |  |  | Development Quickstart
 | 
					
						
							| 
									
										
										
										
											2019-12-12 19:20:56 +01:00
										 |  |  | ======================
 | 
					
						
							| 
									
										
										
										
											2016-02-01 21:28:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-12 20:31:49 +01:00
										 |  |  | .. _npm: https://www.npmjs.com/
 | 
					
						
							| 
									
										
										
										
											2021-11-14 18:10:14 +01:00
										 |  |  | .. _Node.js: https://nodejs.org/
 | 
					
						
							| 
									
										
										
										
											2019-12-18 16:11:05 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-12 08:36:56 +02:00
										 |  |  | SearXNG loves developers, just clone and start hacking.  All the rest is done for
 | 
					
						
							| 
									
										
										
										
											2020-12-12 20:31:49 +01:00
										 |  |  | you simply by using :ref:`make <makefile>`.
 | 
					
						
							| 
									
										
										
										
											2016-02-01 21:28:13 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. code:: sh
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-18 18:27:26 +01:00
										 |  |  |     git clone https://github.com/searxng/searxng.git searxng
 | 
					
						
							| 
									
										
										
										
											2016-02-01 21:28:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-12 20:31:49 +01:00
										 |  |  | Here is how a minimal workflow looks like:
 | 
					
						
							| 
									
										
										
										
											2019-12-12 19:20:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-12 20:31:49 +01:00
										 |  |  | 1. *start* hacking
 | 
					
						
							|  |  |  | 2. *run* your code: :ref:`make run`
 | 
					
						
							|  |  |  | 3. *test* your code: :ref:`make test`
 | 
					
						
							| 
									
										
										
										
											2016-02-01 21:28:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-12 20:31:49 +01:00
										 |  |  | If you think at some point something fails, go back to *start*.  Otherwise,
 | 
					
						
							|  |  |  | choose a meaningful commit message and we are happy to receive your pull
 | 
					
						
							|  |  |  | request. To not end in *wild west* we have some directives, please pay attention
 | 
					
						
							|  |  |  | to our ":ref:`how to contribute`" guideline.
 | 
					
						
							| 
									
										
										
										
											2016-02-01 21:28:13 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-14 18:10:14 +01:00
										 |  |  | If you implement themes, you will need to setup a :ref:`make node.env` once:
 | 
					
						
							| 
									
										
										
										
											2016-02-01 21:28:13 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. code:: sh
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-14 18:10:14 +01:00
										 |  |  |    make node.env
 | 
					
						
							| 
									
										
										
										
											2016-04-21 13:15:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-14 18:10:14 +01:00
										 |  |  | Before you call *make run* (2.), you need to compile the modified styles and
 | 
					
						
							|  |  |  | JavaScript:
 | 
					
						
							| 
									
										
										
										
											2016-04-21 13:15:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-14 18:10:14 +01:00
										 |  |  | .. code:: sh
 | 
					
						
							| 
									
										
										
										
											2019-12-18 16:11:05 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-14 18:10:14 +01:00
										 |  |  |    make themes.all
 | 
					
						
							| 
									
										
										
										
											2019-12-12 19:20:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-14 18:10:14 +01:00
										 |  |  | Alternatively you can also compile selective the theme you have modified,
 | 
					
						
							|  |  |  | e.g. the *simple* theme.
 | 
					
						
							|  |  |  | .. code:: sh
 | 
					
						
							| 
									
										
										
										
											2019-12-18 16:11:05 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-14 18:10:14 +01:00
										 |  |  |    make themes.simple
 | 
					
						
							| 
									
										
										
										
											2019-12-18 16:11:05 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-26 13:10:56 +02:00
										 |  |  | If you finished your *tests* you can start to commit your changes.  To separate
 | 
					
						
							| 
									
										
										
										
											2021-11-14 18:10:14 +01:00
										 |  |  | the modified source code from the build products first run:
 | 
					
						
							| 
									
										
										
										
											2021-06-26 13:10:56 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. code:: sh
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    make static.build.restore
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This will restore the old build products and only your changes of the code
 | 
					
						
							|  |  |  | remain in the working tree which can now be added & commited.  When all sources
 | 
					
						
							|  |  |  | are commited, you can commit the build products simply by:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. code:: sh
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    make static.build.commit
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Commiting the build products should be the last step, just before you send us
 | 
					
						
							|  |  |  | your PR.  There is also a make target to rewind this last build commit:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. code:: sh
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    make static.build.drop
 |