diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fc23a92..5808620 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,6 +4,7 @@ variables: TUTOR_PYPI_PACKAGE: tutor-credentials GITHUB_REPO: overhangio/tutor-credentials TUTOR_EXTRA_ENABLED_PLUGINS: discovery mfe + IMAGES_BUILD_PLATFORM: "linux/amd64" include: - project: 'community/tutor-ci' diff --git a/CHANGELOG.md b/CHANGELOG.md index 14d25b6..d3e1f9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,17 @@ instructions, because git commits are used to generate release notes: + +## v18.0.0 (2024-06-07) + +- 💥[Feature] Upgrade to Redwood. (by @Faraz32123) +- [Feature] Add `atlas pull` at build-time. (by @omarithawi) +- [Bugfix] Make plugin compatible with Python 3.12 by removing dependency on `pkg_resources`. (by @regisb) +- [Feature] Make it possible to use mounts for a local development. (by @cmltawt0) +- [BugFix] Fix award program certificates error. (by @rohan-saeed) +- 💥[Feature] Upgrade Python version to 3.11.9. (by @Faraz32123) +- [BugFix] Fix custom image pull/push. (by @dyudyunov) + ## v17.0.1 (2024-01-23) diff --git a/changelog.d/20240212_115536_regis_pkg_resources.md b/changelog.d/20240212_115536_regis_pkg_resources.md deleted file mode 100644 index 35b6d20..0000000 --- a/changelog.d/20240212_115536_regis_pkg_resources.md +++ /dev/null @@ -1 +0,0 @@ -- [Bugfix] Make plugin compatible with Python 3.12 by removing dependency on `pkg_resources`. (by @regisb) diff --git a/changelog.d/20240220_124357_cmltawt0_mounts.md b/changelog.d/20240220_124357_cmltawt0_mounts.md deleted file mode 100644 index 0dd64b2..0000000 --- a/changelog.d/20240220_124357_cmltawt0_mounts.md +++ /dev/null @@ -1 +0,0 @@ -- [Feature] Make it possible to use mounts for a local development. (by @cmltawt0) diff --git a/changelog.d/20240507_165604_rohansaeed.md b/changelog.d/20240507_165604_rohansaeed.md deleted file mode 100644 index 518c424..0000000 --- a/changelog.d/20240507_165604_rohansaeed.md +++ /dev/null @@ -1 +0,0 @@ -- [BugFix] Fix award program certificates error. (by @rohan-saeed) diff --git a/setup.py b/setup.py index 39f8be8..9cdead3 100644 --- a/setup.py +++ b/setup.py @@ -43,8 +43,8 @@ def load_about(): packages=find_packages(exclude=["tests*"]), include_package_data=True, python_requires=">=3.8", - install_requires=["tutor>=17.0.0,<18.0.0", "tutor-discovery>=17.0.0,<18.0.0", "tutor-mfe>=17.0.0,<18.0.0"], - extras_require={"dev": ["tutor[dev]>=17.0.0,<18.0.0"]}, + install_requires=["tutor>=18.0.0,<19.0.0", "tutor-discovery>=18.0.0,<19.0.0", "tutor-mfe>=18.0.0,<19.0.0"], + extras_require={"dev": ["tutor[dev]>=18.0.0,<19.0.0"]}, entry_points={"tutor.plugin.v1": ["credentials = tutorcredentials.plugin"]}, classifiers=[ "Development Status :: 5 - Production/Stable", diff --git a/tutorcredentials/__about__.py b/tutorcredentials/__about__.py index dba3a77..c6a8b8e 100644 --- a/tutorcredentials/__about__.py +++ b/tutorcredentials/__about__.py @@ -1 +1 @@ -__version__ = "17.0.1" +__version__ = "18.0.0" diff --git a/tutorcredentials/plugin.py b/tutorcredentials/plugin.py index b1bdca3..9a97d07 100644 --- a/tutorcredentials/plugin.py +++ b/tutorcredentials/plugin.py @@ -167,6 +167,18 @@ def _mount_credentials_on_build( (), ) ) +tutor_hooks.Filters.IMAGES_PULL.add_item( + ( + "credentials", + "{{ CREDENTIALS_DOCKER_IMAGE }}", + ) +) +tutor_hooks.Filters.IMAGES_PUSH.add_item( + ( + "credentials", + "{{ CREDENTIALS_DOCKER_IMAGE }}", + ) +) ######################################## diff --git a/tutorcredentials/templates/credentials/build/credentials/Dockerfile b/tutorcredentials/templates/credentials/build/credentials/Dockerfile index 34c5a4d..6f15c15 100644 --- a/tutorcredentials/templates/credentials/build/credentials/Dockerfile +++ b/tutorcredentials/templates/credentials/build/credentials/Dockerfile @@ -1,13 +1,12 @@ # syntax=docker/dockerfile:1 ###### Minimal image with base system requirements for most stages FROM docker.io/ubuntu:20.04 as minimal -LABEL maintainer="Lawrence McDaniel " ENV DEBIAN_FRONTEND=noninteractive RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \ apt update && \ - apt install -y build-essential curl git language-pack-en + apt install -y build-essential curl git language-pack-en gettext ENV LC_ALL en_US.UTF-8 {{ patch("credentials-dockerfile-minimal") }} @@ -25,9 +24,9 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ # Install pyenv # https://www.python.org/downloads/ # https://github.com/pyenv/pyenv/releases -ARG PYTHON_VERSION=3.8.18 +ARG PYTHON_VERSION=3.11.9 ENV PYENV_ROOT /opt/pyenv -RUN git clone https://github.com/pyenv/pyenv $PYENV_ROOT --branch v2.3.29 --depth 1 +RUN git clone https://github.com/pyenv/pyenv $PYENV_ROOT --branch v2.4.0 --depth 1 # Install Python RUN $PYENV_ROOT/bin/pyenv install $PYTHON_VERSION @@ -39,8 +38,8 @@ RUN $PYENV_ROOT/versions/$PYTHON_VERSION/bin/python -m venv /openedx/venv FROM minimal as code ARG CREDENTIALS_REPOSITORY="{{ CREDENTIALS_REPOSITORY }}" ARG CREDENTIALS_VERSION="{{ CREDENTIALS_REPOSITORY_VERSION }}" -RUN mkdir -p /openedx/credentials -ADD --keep-git-dir=true $CREDENTIALS_REPOSITORY#$CREDENTIALS_VERSION /openedx/credentials +RUN mkdir -p /openedx/credentials && \ + git clone $CREDENTIALS_REPOSITORY --branch $CREDENTIALS_VERSION --depth 1 /openedx/credentials WORKDIR /openedx/credentials {{ patch("credentials-dockerfile-post-git-checkout") }} @@ -65,7 +64,7 @@ RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared pip install \ # https://pypi.org/project/setuptools/ # https://pypi.org/project/pip/ # https://pypi.org/project/wheel/ - setuptools==68.2.2 pip==23.2.1. wheel==0.41.2 + setuptools==69.1.1 pip==24.0 wheel==0.43.0 # Install base requirements RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared pip install -r requirements/production.txt @@ -75,7 +74,7 @@ RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared pip install \ # Use redis as a django cache https://pypi.org/project/django-redis/ django-redis==5.4.0 \ # uwsgi server https://pypi.org/project/uWSGI/ - uwsgi==2.0.22 + uwsgi==2.0.24 {{ patch("credentials-dockerfile-post-python-requirements") }} @@ -89,7 +88,7 @@ ENV PATH /openedx/nodeenv/bin:/openedx/venv/bin:${PATH} # Install nodeenv with the version provided by credentials # https://github.com/ekalinin/nodeenv/releases RUN pip install nodeenv==1.8.0 -RUN nodeenv /openedx/nodeenv --node=16.14.0 --prebuilt +RUN nodeenv /openedx/nodeenv --node=16.14.2 --prebuilt # Install nodejs requirements ARG NPM_REGISTRY='{{ NPM_REGISTRY }}' @@ -125,6 +124,9 @@ ENV PATH /openedx/venv/bin:./node_modules/.bin:/openedx/nodeenv/bin:${PATH} ENV VIRTUAL_ENV /openedx/venv/ WORKDIR /openedx/credentials +RUN atlas pull --repository="{{ ATLAS_REPOSITORY }}" --branch="{{ ATLAS_REVISION }}" {{ ATLAS_OPTIONS }} translations/credentials/credentials/conf/locale:credentials/conf/locale +RUN python manage.py compilemessages + # Setup minimal yml config file, which is required by production settings RUN echo "{}" > /openedx/config.yml ENV CREDENTIALS_CFG /openedx/config.yml