Blame
edc220 | Ralph Thesen | 2024-02-12 20:09:01 | 1 | # Development |
2 | ||||
3 | ## Contributing |
|||
4 | ||||
5 | Thank you for considering contributing to An Otter Wiki! If you ran into a problem or want to request a feature, please check the existing [issues](https://github.com/redimp/otterwiki/issues) in case someone else had a similar request and support their case or open a new issue. If you want to contribute code, design or documentation directly, please [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) the [repository](https://github.com/redimp/otterwiki) on <i class="fab fa-github"></i> github. Please make sure all tests pass and submit your changes as a pull request. |
|||
6 | ||||
7 | ## Setting up a development environment |
|||
8 | ||||
9 | 1. Install the prerequisites |
|||
10 | - Debian / Ubuntu |
|||
11 | ```bash |
|||
12 | apt install git build-essential python3-dev python3-venv |
|||
13 | ``` |
|||
14 | - RHEL8 / Fedora / Centos8 / Rocky Linux 8 |
|||
15 | ```bash |
|||
16 | yum install make python3-devel |
|||
17 | ``` |
|||
18 | - MacOS |
|||
19 | ```bash |
|||
20 | brew install python3 |
|||
21 | ``` |
|||
22 | 2. Clone the repository (in case you've created a fork, replace the url with your repository) and enter the directory |
|||
23 | ```bash |
|||
24 | git clone https://github.com/redimp/otterwiki.git && cd otterwiki |
|||
25 | ``` |
|||
26 | 3. Create and initialize the repository where the data is stored |
|||
27 | ```bash |
|||
28 | mkdir -p app-data/repository |
|||
29 | # initialize the empty repository |
|||
30 | git init app-data/repository |
|||
31 | ``` |
|||
32 | 4. Create a minimal configuration file |
|||
33 | ```bash |
|||
34 | echo "REPOSITORY='${PWD}/app-data/repository'" >> settings.cfg |
|||
35 | echo "SQLALCHEMY_DATABASE_URI='sqlite:///${PWD}/app-data/db.sqlite'" >> settings.cfg |
|||
36 | echo "SECRET_KEY='$(echo $RANDOM | md5sum | head -c 16)'" >> settings.cfg |
|||
37 | ``` |
|||
38 | 5. Run `make` to setup a virtual environemnt and run a local server on port 8080 |
|||
39 | ```bash |
|||
40 | make debug |
|||
41 | ``` |
|||
42 | 6. Open the wiki in your browser <http://127.0.0.1:8080>. You can create and edit pages as anonymous user without any further configuration. Please note: This setup is not for production use! |
|||
43 | 7. While you edit the code, flask will automatically reload the server. |
|||
44 | 8. Run tests |
|||
45 | ```bash |
|||
46 | make test |
|||
47 | ``` |
|||
48 | 9. Run coverage tests |
|||
49 | ```bash |
|||
50 | make coverage |
|||
51 | ``` |
|||
52 | and check `coverage_html/index.html` for detailed information. |