| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | How to contribute
 | 
					
						
							|  |  |  | -----------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Prime directives: Privacy, Hackability
 | 
					
						
							|  |  |  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | Searx has two prime directives, privacy-by-design and hackability. The
 | 
					
						
							|  |  |  | hackability comes in three levels:
 | 
					
						
							| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | -  support of search engines
 | 
					
						
							|  |  |  | -  plugins to alter search behaviour
 | 
					
						
							|  |  |  | -  hacking searx itself
 | 
					
						
							| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | Note the lack of "world domination" among the directives.
 | 
					
						
							|  |  |  | Searx has no intention of wide mass-adoption, rounded
 | 
					
						
							|  |  |  | corners, etc. The prime directive "privacy" deserves a separate
 | 
					
						
							|  |  |  | chapter, as it's quite uncommon unfortunately.
 | 
					
						
							| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | Privacy-by-design
 | 
					
						
							|  |  |  | ^^^^^^^^^^^^^^^^^
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | Searx was born out of the need for a privacy-respecting search tool
 | 
					
						
							|  |  |  | which can be extended easily to maximize both its search and its
 | 
					
						
							|  |  |  | privacy protecting capabilities.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | A few widely used features work differently or turned off by default or not implemented
 | 
					
						
							|  |  |  | at all as a consequence of privacy-by-design.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If a feature reduces the privacy preserving aspects of searx, it
 | 
					
						
							|  |  |  | should be switched off by default or should not implemented at all.
 | 
					
						
							|  |  |  | There are plenty of search engines already providing such features.
 | 
					
						
							|  |  |  | If a feature reduces the protection of searx, users must be
 | 
					
						
							|  |  |  | informed about the effect of choosing to enable it. Features
 | 
					
						
							|  |  |  | that protect privacy but differ from the expectations of the
 | 
					
						
							|  |  |  | user should also be explained.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Also, if you think that something works weird with searx,
 | 
					
						
							|  |  |  | it's might be because of the tool you use is designed in a way to interfere with
 | 
					
						
							|  |  |  | the privacy respect. Submitting a bugreport to the vendor of the tool that
 | 
					
						
							|  |  |  | misbehaves might be a good feedback to reconsider the disrespect to
 | 
					
						
							|  |  |  | its customers (e.g. GET vs POST requests in various browsers).
 | 
					
						
							| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | Remember the other prime directive of searx is to be hackable, so if the
 | 
					
						
							|  |  |  | above privacy concerns do not fancy you, simply fork it.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | Happy hacking.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | Code
 | 
					
						
							|  |  |  | ~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | In order to submit a patch, please follow the steps below:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Follow coding conventions.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   - PEP8 standards apply, except the convention of line length
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   - Maximum line length is 120 characters
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - Check if your code breaks existing tests. If so, update the tests or fix your code.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - If your code can be unit-tested, add unit tests.
 | 
					
						
							| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | - Add yourself to the AUTHORS file.
 | 
					
						
							| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | - Create a pull request.
 | 
					
						
							| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Translation
 | 
					
						
							|  |  |  | ~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | Translation currently takes place on
 | 
					
						
							|  |  |  | `transifex <https://transifex.com/projects/p/searx>`__.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | **Please, do not update translation files in the repo.**
 | 
					
						
							| 
									
										
										
										
											2015-11-17 23:13:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | Documentation
 | 
					
						
							|  |  |  | ~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 21:40:22 +01:00
										 |  |  | The documentation is built using Sphinx. So in order to be able to generate the required
 | 
					
						
							|  |  |  | files, you have to install it on your system. (It can be installed easily using pip.)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 1. Checkout the gh-pages branch.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 2. Edit the rst file you wish to update. Or create a new rst file and place it under the appropriate folder.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 3. Build the documentation using Sphinx.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 4. Add the updated and created files of these extension:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    - .rst
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    - .html
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    - .txt
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 6. Create a pull request.
 |