-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Django 5 updates; restructure for package installs #27
base: master
Are you sure you want to change the base?
Conversation
…into django-package
Make the requirements.txt more flexible, so other applications can more easily incorporate Catchpy.
3.12 was failing to install (pointing at old beta). Could move to a GHA matrix strategy instead of tox.
Update requirements
Replacing pytz with ZoneInfo from Python's standard library as Django 5.0 deprecates pytz.
prime_profile should be parent_profile Improves error handling of the receiver handler. The old handler was simpler but made some assumptions about the existence and state of the prime_consumer attribute.
3.8 is EOL in October but easy enough to support it until then.
Instead of using tox, use a build argument to control the Python Docker base image to take advantage of GHA parallel / matrix strategy. We end up with multiple containers but they should build faster and be easier to debug than having to manage multiple versions of Python and PATH in one image.
uv / hatch failing to build in uv MCH with an empty license (`ValueError: Error parsing field `project.license` - Invalid license expression: ''`)
Some questions that can help guide next steps on this PR:
As Naomi mentioned in the meeting, semantic versioning definitely makes sense here. We had some separate tags in our fork but happy to adjust to use a different version number for the upstream release. I think since this repo is in a personal account there are no teams configured (e.g. |
python version postgres version catchpy deploy for hx semantic version personal git acct |
Great, we can update the Dockerfiles / Compose files to reflect these.
Let us know if you hear anything about this. On our fork, we've just been building the wheels as part of the releases: https://github.com/artshumrc/catchpy/releases. We then include this in project
Let me know if you have issues here - I've had good experiences with this recently. I moved the |
See also: artshumrc#4
Change Summary
This PR restructures Catchpy so that it can continue to be run as a standalone Django app but makes it possible to install Catchpy into an existing Django application. This greatly facilitates research applications as they can reference annotation data directly from the same database. It also upgrades Catchpy to work with Django 5.x applications.
anno
andconsumer
into the project directory:catchpy
. This makes is easier to package Catchpy into a Python wheel.consumer.Profile
toconsumer.CatchpyProfile
to avoid clashes with existing projects.local.txt
is default, butdocker-compose.yml
specifiesdev.txt
, which enables running tests directly in the dev container.setup.py
topyproject.toml
packaged a distribution with hatchurlpatterns
so that the admin URLs are only included when running as a standalone app and the others can be included in an existing project.token
detailsCatchpyProfile
one to one relationship exists before attempting to access it.Checklist