OpenSlides/DEVELOPMENT.rst

94 lines
2.2 KiB
ReStructuredText

========================
OpenSlides Development
========================
Check requirements
''''''''''''''''''
- ``docker``
- ``docker-compose``
- ``git``
- ``make``
**Note about migrating from development setups before version 3.4**: You must set the
``OPENSLIDES_USER_DATA_DIR`` variable in your ``server/personal_data/var/settings.py``
to ``'/app/personal_data/var'``. Another way is to just delete this file. It is
recreated with the right paths afterwards.
Get OpenSlides source code
''''''''''''''''''''''''''
Clone current master version from `OpenSlides GitHub repository
<https://github.com/OpenSlides/OpenSlides/>`_::
git clone https://github.com/OpenSlides/OpenSlides.git --recurse-submodules
cd OpenSlides
When updating the repository, submodules must be updated explicitly, too::
git submodule update
Start the development setup
'''''''''''''''''''''''''''
Use `make` to start the setup::
make run-dev
All your data (database, config, mediafiles) is stored in ``server/personal_data/var``.
To stop the setup press Ctrl+C. To clean up the docker containers run::
make stop-dev
Running the test cases
''''''''''''''''''''''
For all services in submodules check out the documentation there.
Server tests and scripts
------------------------
You need to have python (>=3.8) and python-venv installed. Change your workdirectory to the server::
cd server
Setup an python virtual environment. If you have already done it, you can skip this step::
python3 -m venv .venv
source .venv/bin/activate
pip install -U -r requirements.txt
Make sure you are using the correct python version (e.g. try with explicit minor version: ``python3.8``). Activate it::
source .venv/bin/activate
To deactivate it type ``deactivate``. Running all tests and linters::
black openslides/ tests/
flake8 openslides/ tests/
mypy openslides/ tests/
isort -rc openslides/ tests/
pytest tests/
Client tests
------------
You need `node` and `npm` installed. Change to the client's directory. For the first time, install all dependencies::
cd client/
npm install
Run client tests::
npm test
Fix the code format and lint it with::
npm run cleanup
To extract translations run::
npm run extract