Contributing
Development Setup
Development is done on a dedicated Digital Ocean droplet. Local Docker setup on Mac is not currently viable due to known permission issues with the container entrypoint scripts.
Git Workflow
- Create a branch off
main - Make changes and test on the dev droplet
- Commit and push
- Open a pull request or merge directly to
mainwhen stable
Rebuilding After Code Changes
For nginx/docs changes only:
Adding a New Data Source
To add a new source (e.g., GBIF, Dryad):
- Create a new mapper file in
src/ckanext-doi-import/ckanext/doi_import/mappers/(e.g.,gbif.py) - Implement a
fetch_metadata(doi)function that returns a dict matching the CKAN schema - Add detection logic in
mappers/base.py→detect_source() - The mapper is plain Python — testable without running CKAN