2024-07-14 21:14:07 +00:00
# data.coop member system
2019-08-31 22:25:25 +00:00
2024-07-14 21:14:07 +00:00
## Development setup
2023-10-02 18:10:24 +00:00
2024-07-14 21:14:07 +00:00
There are two ways to setup the development environment.
2023-10-02 18:10:24 +00:00
2024-07-14 21:14:07 +00:00
- Using the Docker Compose setup provided in this repository.
- Using [hatch ](https://hatch.pypa.io/ ) in your host OS.
2023-10-02 18:10:24 +00:00
2024-07-14 21:14:07 +00:00
### Using Docker Compose
2023-10-02 18:10:24 +00:00
2024-07-14 21:14:07 +00:00
Working with the Docker Compose setup is made easy with the `Makefile` provided in the repository.
2023-10-02 18:10:24 +00:00
#### Requirements
2019-08-31 22:25:25 +00:00
2021-02-28 23:15:01 +00:00
- Docker
2024-07-14 21:14:07 +00:00
- docker compose plugin
2019-08-31 22:25:25 +00:00
2023-10-02 18:10:24 +00:00
#### Setup
2019-08-31 22:25:25 +00:00
2024-07-14 21:14:07 +00:00
1. Setup .env file
2019-08-31 22:25:25 +00:00
2024-07-20 20:24:41 +00:00
An example .env file is provided in the repository. You can copy it to .env file using the following command:
2019-08-31 22:25:25 +00:00
2024-07-20 20:24:41 +00:00
```bash
cp .env.example .env
```
2019-08-31 22:25:25 +00:00
2024-07-20 20:24:41 +00:00
The default values in the .env file are suitable for the docker-compose setup.
2019-08-31 22:25:25 +00:00
2024-07-14 21:14:07 +00:00
2. Migrate
2019-08-31 22:25:25 +00:00
2024-07-20 20:24:41 +00:00
```bash
make migrate
```
2019-08-31 22:25:25 +00:00
2024-07-14 21:14:07 +00:00
3. Run the development server
2021-02-28 23:15:01 +00:00
2024-07-20 20:24:41 +00:00
```bash
make run
```
2021-02-28 23:15:01 +00:00
2024-07-20 20:33:30 +00:00
#### Building and running other things
```bash
# Build the containers
make build
# Create a superuser
make createsuperuser
# Create Django migrations (after this, maybe you need to change file permissions in volume)
make makemigrations
```
2024-07-14 21:14:07 +00:00
### Using hatch
2021-02-28 23:15:01 +00:00
2024-07-14 21:14:07 +00:00
#### Requirements
2023-10-02 18:10:24 +00:00
2024-07-14 21:14:07 +00:00
- Python 3.12 or higher
- [hatch ](https://hatch.pypa.io/ ) (Recommended way to install is using `pipx install hatch` )
- A running PostgreSQL server
2023-10-02 18:10:24 +00:00
2024-07-14 21:14:07 +00:00
#### Setup
2023-10-02 18:10:24 +00:00
2024-07-14 21:14:07 +00:00
1. Setup .env file
2023-10-02 18:10:24 +00:00
2024-07-20 20:24:41 +00:00
An example .env file is provided in the repository. You can copy it to .env file using the following command:
2023-10-02 18:10:24 +00:00
2024-07-20 20:24:41 +00:00
```bash
cp .env.example .env
```
2023-10-02 18:10:24 +00:00
2024-07-20 20:24:41 +00:00
Edit the .env file and set the values for the environment variables, especially the database variables.
2023-10-02 18:10:24 +00:00
2024-07-14 21:14:07 +00:00
2. Run migrate
2023-10-02 18:10:24 +00:00
2024-07-20 20:24:41 +00:00
```bash
hatch run dev:migrate
```
2023-10-02 18:10:24 +00:00
2024-07-14 21:14:07 +00:00
3. Run the development server
2023-10-02 18:10:24 +00:00
2024-07-20 20:24:41 +00:00
```bash
hatch run dev:server
```
2024-07-21 17:07:59 +00:00
2024-08-01 10:57:28 +00:00
### Updating requirements
2024-07-21 17:07:59 +00:00
2024-08-01 10:57:28 +00:00
We use hatch-pip-compile. That means we have a set of loosely defined `dependencies` in `pyproject.toml` and then we can keep the exactly pinned version in our `requirements.txt` (auto-generated).
To generate `requirements.txt` and `requirements/requirements-dev.txt` , run the following command:
2024-07-21 17:07:59 +00:00
```bash
2024-08-01 10:57:28 +00:00
# Build requirements.txt etc
make requirements
# Build Docker image with new Python requirements
make build
2024-07-21 17:07:59 +00:00
```