Registry / database / edx-milestones

edx-milestones

JSON →
library2.0.0pypypiunverified

Provides models and utilities for tracking significant events (milestones) in Open edX courses, such as completion or certification eligibility. Current version 2.0.0, maintained under the Open edX organization. Release cadence is sporadic, with major version bumps tied to Python/Django support drops.

pip install edx-milestones
INSTALL
IMPORT
SIG · EDX-MILESTONES
E
edx-milestones
databasepythonv2.0.0
Install
5.0s avg
Import
—
Disk
81MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v2.0.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 76.4MB
glibc
py 3.10–3.95 runs
installs and imports cleanly · install 5.0s · import 0.000s · 79MB
81MB installed
● package 81MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Milestone
✓ from milestones import Milestone
✗ from milestones.models import Milestone

Minimal Django setup to create a milestone record.

import django from django.conf import settings settings.configure( DATABASES={'default': {'ENGINE': 'django.db.backends.sqlite3', 'NAME': ':memory:'}}, INSTALLED_APPS=['milestones'], USE_TZ=True, ) django.setup() from milestones.models import Milestone m = Milestone.objects.create( namespace='test', name='middle_section', display_name='Middle Section', description='Complete the middle section of the course' ) print(f'Created milestone: {m.id}')
Debug
Known issues
breakingDropped Python 3.11 support in v2.0.0. If your environment uses Python 3.11, do not upgrade beyond v1.1.0.
fix
Pin edx-milestones==1.1.0 in your requirements, or upgrade Python to 3.12+.
affects: >=2.0.0
deprecatedThe milestone 'active' field is deprecated in favor of using queries based on literal values (True/False) instead of boolean field lookups to avoid table scans on Django 3.2+.
fix
Use Milestone.objects.filter(active=True) instead of .filter(active=1) or .filter(active__exact=True).
affects: >=0.3.3
gotchaMilestone names are not unique by namespace: you can have multiple milestones with the same name in different namespaces. Always filter by both namespace and name to avoid unexpected duplicates.
fix
Use Milestone.objects.get(namespace='my_ns', name='milestone_name') instead of just name.
affects: All versions
Upgrade
Version history
2.0.0latest on PyPI · released Apr 7, 2026
Audit
Dependencies
djangorequiredCore dependency for model definitions and migrations.
edx-django-utilsrequiredUsed for caching and request utilities in milestone queries.
Agent activity
8 hits · last 30 days
node
8
Resources
edx-milestones — pip install edx-milestones · libregistry