Skip to content

Repository files navigation

citation

Docker Build CI Coverage Status

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 uv via pyproject.toml (with optional uv.lock for fully locked installs)

Documentation

Documentation is available at Read the Docs

Local development

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

Dependency management (uv)

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.

Publish to PyPI

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=comses
  • PYPI_REPOSITORY=pypi

Create schema or data migrations

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.

About

Citation Management and Deduplication for Django

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages