membersystem/README.md
2024-08-13 09:50:07 +02:00

106 lines
2.5 KiB
Markdown

# data.coop member system
## Development setup
There are two ways to setup the development environment.
- Using the Docker Compose setup provided in this repository.
- Using [hatch](https://hatch.pypa.io/) in your host OS.
### Using Docker Compose
Working with the Docker Compose setup is made easy with the `Makefile` provided in the repository.
#### Requirements
- Docker
- docker compose plugin
#### Setup
1. Setup .env file
An example .env file is provided in the repository. You can copy it to .env file using the following command:
```bash
cp .env.example .env
```
The default values in the .env file are suitable for the docker-compose setup.
2. Migrate
```bash
make migrate
```
3. Run the development server
```bash
make run
```
#### 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
```
### Using hatch
#### Requirements
- Python 3.12 or higher
- [hatch](https://hatch.pypa.io/) (Recommended way to install is using `pipx install hatch`)
- A running PostgreSQL server
#### Setup
1. Setup .env file
An example .env file is provided in the repository. You can copy it to .env file using the following command:
```bash
cp .env.example .env
```
Edit the .env file and set the values for the environment variables, especially the database variables.
2. Run migrate
```bash
hatch run dev:migrate
```
3. Run the development server
```bash
hatch run dev:server
```
### Updating requirements
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:
```bash
# Build requirements.txt etc
make requirements
# Build Docker image with new Python requirements
make build
```
## Important notes
* This project uses [django-zen-queries](https://github.com/dabapps/django-zen-queries), which will sometimes raise a `QueriesDisabledError` in your templates. You can find a difference of opinion about that, but you can find a difference of opinion about many things, right?
* If a linting error annoys you, please feel free to strike back by adding a `noqa` to the line that has displeased the linter and move on with life.