Files
2026-03-02 20:02:10 -05:00
..
2024-11-05 10:44:02 -05:00
2026-03-02 20:02:10 -05:00

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 <https://github.com/openedx/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

.. _Python changelog: https://docs.python.org/3.11/whatsnew/changelog.html
.. _SciPy changelog: https://docs.scipy.org/doc/scipy/release.html
.. _NumPy changelog: https://numpy.org/doc/stable/release.html

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

.. _SciPy changelog: https://docs.scipy.org/doc/scipy/release.html

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

.. _SciPy changelog: https://docs.scipy.org/doc/scipy/release.html