Skip to content

Conversation

@nucleogenesis
Copy link
Member

Summary

Changes performed by Claude, reviewed & guided by me.

  • Bumps Kolibri's support matrix et al to support Python 3.14
  • Eagerly updates deprecated datetime uses (this is unnecessary now)

⚠️ Remaining issues to hash out

Claude noted that Python 3.14 requires new versions of two dependencies django-filter and pytest where the major version we use currently is incompatible with 3.14.

Claude's solution was to make multiple entries for these where it indicated which Python version should install which library version -- however, this would result in our needing to maintain code in a way that jives with all Python versions.

I've not included a couple of commits that performed some monkey patches while making the two-line dependencies.

TODO

  • Create a PR

References

#13823

Reviewer guidance

Draft for now - will return to this in Planned Patch 2!

nucleogenesis and others added 2 commits January 8, 2026 11:34
- Update python_requires to allow Python 3.14 (<3.15)
- Add Python 3.14 classifier to setup.py
- Add py3.14 to tox envlist and basepython mapping
- Add Python 3.14 to GitHub Actions test matrix

Refs: learningequality#13823

Co-Authored-By: Claude Opus 4.5 <[email protected]>
These methods are deprecated in Python 3.12+ and will be removed in
a future version. Replace with timezone-aware alternatives:

- datetime.utcnow() -> datetime.now(tz=timezone.utc)
- datetime.utcfromtimestamp() -> datetime.fromtimestamp(ts, tz=timezone.utc)

For database operations that require naive datetimes, use
.replace(tzinfo=None) to strip the timezone after getting the
current UTC time.

Files modified:
- kolibri/utils/version.py
- kolibri/core/tasks/storage.py
- kolibri/core/tasks/test/taskrunner/test_scheduler.py
- kolibri/core/auth/api.py
- kolibri/plugins/facility/views.py

Refs: learningequality#13823

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@github-actions github-actions bot added DEV: dev-ops Continuous integration & deployment DEV: backend Python, databases, networking, filesystem... APP: Facility Re: Facility App (user/class management, facility settings, csv import/export, etc.) SIZE: small labels Jan 8, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Jan 8, 2026

@nucleogenesis nucleogenesis self-assigned this Jan 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

APP: Facility Re: Facility App (user/class management, facility settings, csv import/export, etc.) DEV: backend Python, databases, networking, filesystem... DEV: dev-ops Continuous integration & deployment SIZE: small

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant