Skip to content

Commit

Permalink
feat!: expose per-release edx-sandbox dependency pins
Browse files Browse the repository at this point in the history
See requirements/edx-sandbox/README.rst for more info

BREAKING CHANGE: edx-sandbox/py38.txt will not longer
be updated. Please install from either edx-sandbox/base.txt or
edx-sandbox/releases/*.txt instead.
  • Loading branch information
kdmccormick committed Apr 18, 2024
1 parent a17e2c0 commit 7e96b32
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 13 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ shell: ## launch a bash shell in a Docker container with all edx-platform depend
REQ_FILES = \
requirements/edx/coverage \
requirements/edx/paver \
requirements/edx-sandbox/py38 \
requirements/edx-sandbox/base \
requirements/edx/base \
requirements/edx/doc \
requirements/edx/testing \
Expand Down
59 changes: 59 additions & 0 deletions requirements/edx-sandbox/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
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.

We do not recommend installing from this file directly, 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.

Install from this file if you wish to always run the latest edx-sandbox
environment. Take note that there will periodically be breaking changes to
``base.txt``. For example, we may update the Python version used to generate
the pins, which may break edx-sandbox environments running older Python
versions.

releases/(RELEASE_NAME).txt
===========================

*e.g. releases/redwood.txt, releases/sumac.txt, etc.*

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.

Install from one of these files if you want to run a stable edx-sandbox
environment without breaking changes.

Support windows
***************

Only ``base.txt`` and the latest ``release/*.txt`` from the latest named
release are supported by the Open edX community. However, we will leave
old ``release/*.txt`` files in the repository to assist:

* operators who want to stagger their edx-sandbox upgrade from their general
edx-platform upgrade
* operators who need to temporarily roll back their edx-sandbox environments
so that instructors can fix their loncapa Python code.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@
cffi==1.16.0
# via cryptography
chem==1.2.0
# via -r requirements/edx-sandbox/py38.in
# via -r requirements/edx-sandbox/base.in
click==8.1.6
# via
# -c requirements/edx-sandbox/../constraints.txt
# nltk
codejail-includes==1.0.0
# via -r requirements/edx-sandbox/py38.in
# via -r requirements/edx-sandbox/base.in
contourpy==1.1.1
# via matplotlib
cryptography==38.0.4
# via
# -c requirements/edx-sandbox/../constraints.txt
# -r requirements/edx-sandbox/py38.in
# -r requirements/edx-sandbox/base.in
cycler==0.12.1
# via matplotlib
fonttools==4.49.0
Expand All @@ -33,21 +33,21 @@ kiwisolver==1.4.5
lxml==4.9.4
# via
# -c requirements/edx-sandbox/../constraints.txt
# -r requirements/edx-sandbox/py38.in
# -r requirements/edx-sandbox/base.in
# openedx-calc
markupsafe==2.1.5
# via
# chem
# openedx-calc
matplotlib==3.7.5
# via -r requirements/edx-sandbox/py38.in
# via -r requirements/edx-sandbox/base.in
mpmath==1.3.0
# via sympy
networkx==3.1
# via -r requirements/edx-sandbox/py38.in
# via -r requirements/edx-sandbox/base.in
nltk==3.8.1
# via
# -r requirements/edx-sandbox/py38.in
# -r requirements/edx-sandbox/base.in
# chem
numpy==1.22.4
# via
Expand All @@ -57,7 +57,7 @@ numpy==1.22.4
# openedx-calc
# scipy
openedx-calc==3.1.0
# via -r requirements/edx-sandbox/py38.in
# via -r requirements/edx-sandbox/base.in
packaging==23.2
# via matplotlib
pillow==10.2.0
Expand All @@ -66,20 +66,20 @@ pycparser==2.21
# via cffi
pyparsing==3.1.1
# via
# -r requirements/edx-sandbox/py38.in
# -r requirements/edx-sandbox/base.in
# chem
# matplotlib
# openedx-calc
python-dateutil==2.8.2
# via matplotlib
random2==1.0.2
# via -r requirements/edx-sandbox/py38.in
# via -r requirements/edx-sandbox/base.in
regex==2023.12.25
# via nltk
scipy==1.7.3
# via
# -c requirements/edx-sandbox/../constraints.txt
# -r requirements/edx-sandbox/py38.in
# -r requirements/edx-sandbox/base.in
# chem
# openedx-calc
six==1.16.0
Expand All @@ -89,7 +89,7 @@ six==1.16.0
# python-dateutil
sympy==1.12
# via
# -r requirements/edx-sandbox/py38.in
# -r requirements/edx-sandbox/base.in
# openedx-calc
tqdm==4.66.2
# via nltk
Expand Down
Empty file.

0 comments on commit 7e96b32

Please sign in to comment.