Skip to content

Modernize Kolibri Python Support and Simplify Server Deployment #141

@rtibbles

Description

@rtibbles

Overview

This tracking issue aims to modernize Kolibri's Python version support while maintaining backward compatibility with older operating systems, and to simplify the high-performance server deployment experience.

Problem

Python Version Constraints: Kolibri currently supports Python 3.6-3.13 to maintain compatibility with older OS versions (Windows 7, Ubuntu 18.04), preventing use of modern Python features and creating maintenance overhead for EOL Python versions.

Complex Server Deployment: High-performance server mode requires installing a separate kolibri-server package, creating confusion and complexity for users who want to scale their deployments.

Distribution Challenges: Need to support both online installations (via PPA) and offline installations (direct .deb downloads) for educational deployments in low-connectivity environments.

Solution

Ensure a modern Python version (3.10+) with Kolibri packages when the target system doesn't have a suitable Python version.

Lightweight PPA packages that can download Python at install time if needed
Self-contained offline packages with pre-bundled Python

In order to allow easier use of high performance mode, and to leverage the bundled or additionally installed Python easily, merge kolibri-server into main package - making high-performance server mode an optional configuration rather than a separate package.

Requirements

  • Installation-time choices: Let users choose deployment mode during package installation
  • Post-installation management: Provide clear CLI commands to change configuration later
  • Automatic migration: Handle existing kolibri-server installations transparently
  • Kolibri can use Python 3.10+ features while still installing on Ubuntu 16.04
  • Single unified package replaces the current kolibri + kolibri-server split
  • Existing kolibri-server users can upgrade seamlessly without reconfiguration
  • Both online (PPA) and offline (direct download) installation methods work reliably
  • Users can easily switch between standard and high-performance modes post-installation

N.B. This issue was written with assistance from Claude Sonnet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Tracking Issue.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions