diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5d69e491..6d133ad7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,7 +3,7 @@ variables: TUTOR_IMAGES: ecommerce ecommerce-worker orders-dev payment-dev TUTOR_PYPI_PACKAGE: tutor-ecommerce TUTOR_EXTRA_ENABLED_PLUGINS: discovery mfe - OPENEDX_RELEASE: palm + OPENEDX_RELEASE: quince GITHUB_REPO: overhangio/tutor-ecommerce include: diff --git a/CHANGELOG.md b/CHANGELOG.md index e18493f9..6b4cf36b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,11 @@ instructions, because git commits are used to generate release notes: + +## v17.0.0 (2023-12-09) + +- 💥 [Feature] Upgrade to Quince. (by @ziafazal) + ## v16.0.4 (2023-12-11) diff --git a/setup.py b/setup.py index 5d8abd2c..0748f33a 100644 --- a/setup.py +++ b/setup.py @@ -34,9 +34,9 @@ include_package_data=True, python_requires=">=3.8", install_requires=[ - "tutor>=16.0.0,<17.0.0", - "tutor-discovery>=16.0.0,<17.0.0", - "tutor-mfe>=16.0.0,<17.0.0", + "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]>=16.0.0,<17.0.0"]}, entry_points={"tutor.plugin.v1": ["ecommerce = tutorecommerce.plugin"]}, diff --git a/tutorecommerce/__about__.py b/tutorecommerce/__about__.py index 08d1d510..a08b09c5 100644 --- a/tutorecommerce/__about__.py +++ b/tutorecommerce/__about__.py @@ -1 +1 @@ -__version__ = "16.0.4" +__version__ = "17.0.0" diff --git a/tutorecommerce/templates/ecommerce/build/ecommerce-worker/Dockerfile b/tutorecommerce/templates/ecommerce/build/ecommerce-worker/Dockerfile index 0c764a97..7cc825e7 100644 --- a/tutorecommerce/templates/ecommerce/build/ecommerce-worker/Dockerfile +++ b/tutorecommerce/templates/ecommerce/build/ecommerce-worker/Dockerfile @@ -1,9 +1,9 @@ -{% if is_buildkit_enabled() %}# syntax=docker/dockerfile:1.4{% endif %} +# syntax=docker/dockerfile:1.4 ###### Minimal image with base system requirements for most stages FROM docker.io/ubuntu:20.04 as minimal -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/var/cache/apt,sharing=locked \ - --mount=type=cache,target=/var/lib/apt,sharing=locked{% endif %} \ +RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ + --mount=type=cache,target=/var/lib/apt,sharing=locked \ apt update && \ apt install -y git-core language-pack-en python3 python3-pip python3-venv @@ -18,12 +18,12 @@ WORKDIR /openedx/ecommerce_worker # Install python venv RUN python3 -m venv ../venv/ ENV PATH "/openedx/venv/bin:$PATH" -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/openedx/.cache/pip,sharing=shared {% endif %}pip install \ +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==67.7.2 pip==23.1.2. wheel==0.40.0 -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/openedx/.cache/pip,sharing=shared {% endif %}pip install -r requirements/production.txt +RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared pip install -r requirements/production.txt ENV WORKER_CONFIGURATION_MODULE ecommerce_worker.settings.production CMD celery worker --app=ecommerce_worker.celery_app:app --loglevel=info --maxtasksperchild 100 --queue=fulfillment,email_marketing diff --git a/tutorecommerce/templates/ecommerce/build/ecommerce/Dockerfile b/tutorecommerce/templates/ecommerce/build/ecommerce/Dockerfile index 4399be0e..b4f56b92 100644 --- a/tutorecommerce/templates/ecommerce/build/ecommerce/Dockerfile +++ b/tutorecommerce/templates/ecommerce/build/ecommerce/Dockerfile @@ -1,9 +1,9 @@ -{% if is_buildkit_enabled() %}# syntax=docker/dockerfile:1.4{% endif %} +# syntax=docker/dockerfile:1.4 ###### Minimal image with base system requirements for most stages FROM docker.io/ubuntu:20.04 as minimal -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/var/cache/apt,sharing=locked \ - --mount=type=cache,target=/var/lib/apt,sharing=locked{% endif %} \ +RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ + --mount=type=cache,target=/var/lib/apt,sharing=locked \ apt update && \ apt install -y curl git-core language-pack-en @@ -28,8 +28,8 @@ COPY --from=checkout /openedx/ecommerce / ###### Install python and virtual environment FROM minimal as python -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/var/cache/apt,sharing=locked \ - --mount=type=cache,target=/var/lib/apt,sharing=locked{% endif %} \ +RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ + --mount=type=cache,target=/var/lib/apt,sharing=locked \ apt update && \ apt install -y libmysqlclient-dev libssl-dev python3 python3-pip python3-venv @@ -44,15 +44,15 @@ RUN mkdir /openedx/.cache # Create python venv RUN python3 -m venv /openedx/venv/ ENV PATH "/openedx/venv/bin:$PATH" -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/openedx/.cache/pip,sharing=shared,uid=${APP_USER_ID} {% endif %}pip install \ +RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared,uid=${APP_USER_ID} pip install \ # https://pypi.org/project/setuptools/ # https://pypi.org/project/pip/ # https://pypi.org/project/wheel/ - setuptools==67.7.2 pip==23.1.2. wheel==0.40.0 + setuptools==68.2.2 pip==23.2.1 wheel==0.41.2 # Install a recent version of nodejs # https://pypi.org/project/nodeenv -RUN pip install nodeenv==1.7.0 +RUN pip install nodeenv==1.8.0 RUN nodeenv /openedx/nodeenv --node=16.20.0 --prebuilt ENV PATH /openedx/nodeenv/bin:${PATH} @@ -62,13 +62,13 @@ WORKDIR /openedx/ecommerce # Install npm, bower requirements ARG NPM_REGISTRY='{{ NPM_REGISTRY }}' -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/openedx/.npm/,sharing=shared,uid=${APP_USER_ID} {% endif %}npm clean-install --verbose --no-audit --registry=$NPM_REGISTRY -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/openedx/.cache/bower,sharing=shared,uid=${APP_USER_ID} {% endif %}./node_modules/.bin/bower install --allow-root +RUN --mount=type=cache,target=/openedx/.npm/,sharing=shared,uid=${APP_USER_ID} npm clean-install --verbose --no-audit --registry=$NPM_REGISTRY +RUN --mount=type=cache,target=/openedx/.cache/bower,sharing=shared,uid=${APP_USER_ID} node_modules/.bin/bower install --allow-root # python requirements -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/openedx/.cache/pip,sharing=shared,uid=${APP_USER_ID} {% endif %}pip install -r requirements.txt +RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared,uid=${APP_USER_ID} pip install -r requirements.txt # https://pypi.org/project/uWSGI/ -RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/openedx/.cache/pip,sharing=shared,uid=${APP_USER_ID} {% endif %}pip install uwsgi==2.0.21 +RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared,uid=${APP_USER_ID} pip install uwsgi==2.0.21 # Install private requirements: this is useful for installing custom payment processors. COPY --chown=app:app ./requirements/ /openedx/requirements @@ -76,7 +76,7 @@ RUN cd /openedx/requirements/ \ && touch ./private.txt \ && pip install -r ./private.txt -{% for extra_requirement in ECOMMERCE_EXTRA_PIP_REQUIREMENTS %}RUN {% if is_buildkit_enabled() %}--mount=type=cache,target=/openedx/.cache/pip,sharing=shared,uid=${APP_USER_ID} {% endif %}pip install '{{ extra_requirement }}' +{% for extra_requirement in ECOMMERCE_EXTRA_PIP_REQUIREMENTS %}RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared,uid=${APP_USER_ID} pip install '{{ extra_requirement }}' {% endfor %} {{ patch("ecommerce-dockerfile-pre-assets") }}