From ca8e1ff2ff52978834a0a7a15a60dc0842f26221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mois=C3=A9s=20Gonz=C3=A1lez?= Date: Tue, 7 May 2024 14:30:21 -0400 Subject: [PATCH] feat: redwood support Add two new variables to enable the use of custom versions/forks of `edunext/codejailservice`. BREAKING CHANGE: the default Python version of the sandbox environment has been bumped to 3.11. This change alongside the upgrade of the SciPy and NumPy dependencies may cause some instructor code to fail. --- .gitignore | 2 +- CHANGELOG.rst | 15 +++++++++++++++ setup.py | 4 +++- tutorcodejail/__about__.py | 2 +- tutorcodejail/plugin.py | 4 +++- .../templates/codejail/build/codejail/Dockerfile | 14 +++++++------- 6 files changed, 30 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 2fbd1c4..450cb9c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ __pycache__/ TODO # Distribution / packaging .Python -build/ +/build/ develop-eggs/ dist/ downloads/ diff --git a/CHANGELOG.rst b/CHANGELOG.rst index cfdf2ae..fafc226 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,21 @@ Change Log Unreleased ~~~~~~~~~~ +[18.0.0] - 2024-06-26 +~~~~~~~~~~~~~~~~~~~~~ +* feat: redwood support + + Add two new variables to enable the use of custom versions/forks of + `edunext/codejailservice`. + + BREAKING CHANGE: the default Python version of the sandbox environment + has been bumped to 3.11. This change alongside the upgrade of the SciPy + and NumPy dependencies may cause some instructor code to fail. + +[17.0.2] - 2024-05-24 +~~~~~~~~~~~~~~~~~~~~~ +* fix: use tutor config on codejail service and add patches to edit it DS-894 (#55) + [17.0.1] - 2023-11-20 ~~~~~~~~~~~~~~~~~~~~~ diff --git a/setup.py b/setup.py index 222bcc5..83b0d0c 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,7 @@ def load_about(): packages=find_packages(exclude=["tests*"]), include_package_data=True, python_requires=">=3.8", - install_requires=["tutor>=17.0.2, <18"], + install_requires=["tutor>=18.0.0, <19"], entry_points={"tutor.plugin.v1": ["codejail = tutorcodejail.plugin"]}, classifiers=[ "Development Status :: 3 - Alpha", @@ -55,5 +55,7 @@ def load_about(): "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", ], ) diff --git a/tutorcodejail/__about__.py b/tutorcodejail/__about__.py index ca658f8..f80932a 100644 --- a/tutorcodejail/__about__.py +++ b/tutorcodejail/__about__.py @@ -1,2 +1,2 @@ """Helps you keep your cool when creating dozens of open edX and eduNEXT environments.""" -__version__ = "17.0.2" +__version__ = "18.0.0" diff --git a/tutorcodejail/plugin.py b/tutorcodejail/plugin.py index e6714b8..724825a 100644 --- a/tutorcodejail/plugin.py +++ b/tutorcodejail/plugin.py @@ -20,7 +20,7 @@ "ENABLE_K8S_DAEMONSET": False, "ENFORCE_APPARMOR": True, "HOST": "codejailservice", - "SANDBOX_PYTHON_VERSION": "3.8.6", + "SANDBOX_PYTHON_VERSION": "3.11.9", "SKIP_INIT": False, "LIMIT_CPU": "1", "LIMIT_MEMORY": "1Gi", @@ -30,6 +30,8 @@ "MIN_REPLICAS": 1, "MAX_REPLICAS": 4, "AVG_CPU": 65, + "SERVICE_VERSION": "release/redwood.1", + "SERVICE_REPOSITORY": "https://github.com/edunext/codejailservice.git", }, "overrides": {}, } diff --git a/tutorcodejail/templates/codejail/build/codejail/Dockerfile b/tutorcodejail/templates/codejail/build/codejail/Dockerfile index 9c847eb..654089c 100644 --- a/tutorcodejail/templates/codejail/build/codejail/Dockerfile +++ b/tutorcodejail/templates/codejail/build/codejail/Dockerfile @@ -14,21 +14,21 @@ RUN apt update && \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git subversion ENV PYENV_ROOT /opt/pyenv -RUN git clone https://github.com/pyenv/pyenv $PYENV_ROOT --branch v2.3.5 --depth 1 +RUN git clone https://github.com/pyenv/pyenv $PYENV_ROOT --branch v2.4.0 --depth 1 -ARG CODEJAILSERVICE_PYTHON_VERSION=3.8.6 +ARG CODEJAILSERVICE_PYTHON_VERSION=3.11.9 RUN $PYENV_ROOT/bin/pyenv install $CODEJAILSERVICE_PYTHON_VERSION ARG SANDBOX_PYTHON_VERSION={{ CODEJAIL_SANDBOX_PYTHON_VERSION }} -RUN git clone https://github.com/s1341/pyenv-alias.git $PYENV_ROOT/plugins/pyenv-alias -RUN VERSION_ALIAS={{ CODEJAIL_SANDBOX_PYTHON_VERSION }}_sandbox $PYENV_ROOT/bin/pyenv install $SANDBOX_PYTHON_VERSION +RUN git clone https://github.com/esinker/pyenv-version-alias $PYENV_ROOT/plugins/pyenv-alias +RUN VERSION_ALIAS={{ CODEJAIL_SANDBOX_PYTHON_VERSION }}_sandbox $PYENV_ROOT/bin/pyenv install -f $SANDBOX_PYTHON_VERSION RUN $PYENV_ROOT/versions/$CODEJAILSERVICE_PYTHON_VERSION/bin/python -m venv /openedx/venv RUN $PYENV_ROOT/versions/"$SANDBOX_PYTHON_VERSION"_sandbox/bin/python -m venv --copies /sandbox/venv ###### Codejail service code FROM minimal as code -RUN git clone https://github.com/eduNEXT/codejailservice.git --branch {{ CODEJAIL_VERSION }} --depth 1 /openedx/codejailservice +RUN git clone {{ CODEJAIL_SERVICE_REPOSITORY }} --branch {{ CODEJAIL_SERVICE_VERSION }} --depth 1 /openedx/codejailservice WORKDIR /openedx/codejailservice ###### Install python requirements in virtualenv @@ -51,8 +51,8 @@ ENV VIRTUAL_ENV /sandbox/venv/ WORKDIR /var/tmp RUN mkdir -p common/lib/ -COPY --from={{ DOCKER_IMAGE_OPENEDX }} /openedx/edx-platform/requirements/edx-sandbox/py38.txt py38.txt -RUN pip3 install -r py38.txt +COPY --from={{ DOCKER_IMAGE_OPENEDX }} /openedx/edx-platform/requirements/edx-sandbox/releases/redwood.txt redwood.txt +RUN pip3 install -r redwood.txt # Allows you to add extra pip requirements to your codejail sandbox. {% if CODEJAIL_EXTRA_PIP_REQUIREMENTS is defined %}