[DEPR]: django-stdimage
Proposal Date
1 July 2025
Ticket Acceptance Date
1 August 2025
Technology Removal Date
15 September 2025
First Open edX Named Release Without This Functionality
Ulmo
Rationale
django-stdimage is no longer maintained and has been archived by its author. Keeping it increases technical debt.
Removal
We propose to remove all usage of django-stdimage and its field StdImageField across the course-discovery codebase.
- References to StdImageField in models
- Any settings or code used to configure django-stdimage
Replacement
We will use django-pictures, a modern, responsive, and actively maintained image field library.
It supports:
- Async image processing via Celery/Dramatiq
- AVIF/WEBP and multi-size image generation
- Placeholder and fallbacks
Deprecation
No response
Migration
We'll create a Django data migration using AlterPictureField from django-pictures to convert the field. The migration will retain existing image files and regenerate responsive variations. No data loss is expected. Migration instructions for django-stdimage github. Celery will be used to process images asynchronously after migration.
Additional Info
- Upstream deprecation: https://github.com/xarg/django-stdimage
- Recommended replacement: https://github.com/codingjoe/django-pictures
- We have successfully tested this migration in a local project and confirmed auto-generation of image variations post-migration using Celery.