Django app to track bibliometric metadata for publications that reference computational models.
Current local runtime baseline:
- Python 3.12
- Django 5.2 LTS
- PostgreSQL 18
- Docker Compose managed services with DB healthchecks
- Dependencies managed with
uvviapyproject.toml(with optionaluv.lockfor fully locked installs)
Documentation is available at Read the Docs
Standard local workflow uses the root Makefile, which wraps docker compose:
./build.sh # only needed if docker-compose.yml does not exist yet
make clean # remove containers, networks, and volumes
make build # build fresh images
make up # start services
make test # start db and run the Django test suite
For one-off commands, run them in the test container:
docker compose run --rm test python -m django check
docker compose run --rm test python -m django makemigrations --check --dry-run
docker compose run --rm test ./run_tests.py
The project uses uv with PEP 621 metadata in pyproject.toml.
When dependencies change:
uv lock
Container builds install dependencies with uv sync.
For reproducibility, generate and commit uv.lock via make lock.
Use the Make target to build and publish from the test container:
PYPI_TOKEN=<pypi-token> make publish
Optional configuration:
PYPI_TOKEN=<pypi-token> PYPI_ORG=<organization> PYPI_REPOSITORY=<index> make publish
Defaults:
PYPI_ORG=comsesPYPI_REPOSITORY=pypi
docker compose run --rm test /code/make_migrations.py -n <name-of-migration>
If you leave out the -n <name> the migration filename will be autogenerated.