56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
## Development environment
|
|
We begin by installing UV (very nice utility for managing packages and Python version):
|
|
|
|
```bash
|
|
# On MacOS and Linux.
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
```
|
|
```bash
|
|
# On Windows.
|
|
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
```
|
|
|
|
Using UV, installing the packages and virtual environment is as simple as typing the following (inside the root directory of this repository):
|
|
|
|
```bash
|
|
uv sync
|
|
```
|
|
|
|
## Running
|
|
To run the project (development server), execute the following command (while inside the root repository):
|
|
|
|
```bash
|
|
uv run fastapi dev src/control_backend/main.py
|
|
```
|
|
|
|
## Testing
|
|
Testing happens automatically when opening a merge request to any branch. If you want to manually run the test suite, you can do so by running the following for unit tests:
|
|
|
|
```bash
|
|
uv run --only-group test pytest test/unit
|
|
```
|
|
|
|
Or for integration tests:
|
|
|
|
```bash
|
|
uv run --only-group integration-test pytest test/integration
|
|
```
|
|
|
|
## GitHooks
|
|
|
|
To activate automatic commits/branch name checks run:
|
|
|
|
```shell
|
|
git config --local core.hooksPath .githooks
|
|
```
|
|
|
|
If your commit fails its either:
|
|
branch name != <type>/description-of-branch ,
|
|
commit name != <type>: description of the commit.
|
|
<ref>: N25B-Num's
|
|
|
|
To add automatic linting and formatting, run:
|
|
|
|
```shell
|
|
uv run pre-commit install
|
|
``` |