edx-sandbox: a Python environment for sandboxed execution with CodeJail#

The requirements in this directory describe a Python environment separate from the general edx-platform environment. When correctly configured with CodeJail, edx-platform can use it to execute untrusted code, particularly instructor-authored Python code within <script type="loncapa/python"> ProblemBlock tags.

Files in this directory#

base.in#

This is the current set of requirements or the edx-sandbox environment, and it is used to generate the .txt files described below. These requirements share some constraints with the general edx-platform requirements (via ../constraints.txt), but otherwise, they are completely separate.

Installing the edx-sandbox environment from this file is unsupported and unstable, because the packages are not pinned.

base.txt#

These are the latest requirement pins for edx-sandbox. They are regularly updated with the latest compatible versions of each package.

Installing the edx-sandbox environment from this file is supported yet unstable. Breaking package upgrades and Python langugae upgrades will regularly land directly in base.txt.

releases/#

Starting with Quince, every named Open edX release adds one of these files. They contain the requirement pins corresponding to base.txt at the time of each release.

Installing the edx-sandbox environment from the latest release file is supported and stable. Installing the edx-sandbox environment from older release files is unsupported yet stable.

When migrating from one release file to a newer one, be aware of which Python versions are supported as well as breaking changes in newer packages versions. You may need to edit the instructor-authored Python code in your platform in order for it to remain compatible. The edx-platform maintenance team will do their best to make note of these changes below and in the Open edX release notes.

releases/quince.txt#

  • Frozen between the Quince and Redwood releases

  • Supports only Python 3.8

releases/redwood.txt#

  • Frozen at the time of the Redwood release

  • Supports Python 3.8 and Python 3.11

  • BREAKING CHANGE: SciPy is upgraded from 1.7.3 to 1.10.1 (SciPy changelog)

  • BREAKING CHANGE: NumPy is upgraded from 1.22.4 to 1.24.4 (NumPy changelog)

  • These upgrades prepare edx-sandbox for the Python 3.12 update in Sumac.

releases/sumac.txt#

  • Frozen at the time of the Sumac release

  • BREAKING CHANGE: Drops support for Python 3.8 (Python changelog)

  • Supports Python 3.11 and Python 3.12

releases/teak.txt#

  • Frozen at the time of the Teak release

  • Supports Python 3.11 and Python 3.12

  • SciPy is upgraded from 1.14.1 to 1.15.2

releases/ulmo.txt#

  • Frozen at the time of the Ulmo release

  • Supports Python 3.11 and Python 3.12

  • SciPy is upgraded from 1.15.2 to 1.16.3

releases/verawood.txt#

  • Frozen at the time of the Verawood release

  • BREAKING CHANGE: Drops support for Python 3.11

  • Supports Python 3.12

  • NumPy is upgraded to 1.26.4

  • SciPy is upgraded to 1.17.1

  • Several other libraries (such as matplotlib, nltk, sympy) have also been updated to newer versions. These upgrades continue improvements for Python 3.12 compatibility and include minor dependency refreshes.