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. |
