diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 97836a5..81b0c1b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: ["3.10", "3.11", "3.12", "3.13"]
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- name: Checkout repository
uses: actions/checkout@v6
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a29d5a0..076b3f3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,13 @@ See the fragment files in the [changelog.d/ directory](./changelog.d).
+
+## 22.0.0 — 2026-05-19
+
+### Added
+
+- Support for the verawood release
+
## 21.2.0 — 2026-04-24
diff --git a/pyproject.toml b/pyproject.toml
index c84d12a..c1b4af1 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "tutor-contrib-drydock"
-version = "21.2.0"
+version = "22.0.0"
description = "A Tutor plugin to manage our opinionated Open edX operations"
readme = "README.md"
requires-python = ">=3.10"
@@ -11,15 +11,17 @@ authors = [
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
+ "License :: OSI Approved :: GNU Affero General Public License v3",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
]
dependencies = [
- "tutor~=21.0"
+ "tutor~=22.0"
]
[project.urls]
@@ -57,11 +59,18 @@ entry_title_template = "file: changelog.d/scriv/entry_title.md.j2"
module-root = "."
module-name = "drydock"
+# TODO: remove before merging
[tool.uv.sources]
-tutor-contrib-s3 = { git = "https://github.com/cleura/tutor-contrib-s3", tag = "v2.5.0" }
+tutor = {git = "https://github.com/overhangio/tutor", rev = "f7e7a4c6316bc6e42ce68f8e916a72a7ca15811e"} # Verawood
+tutor-contrib-s3 = {git = "https://github.com/eduNEXT/tutor-contrib-s3", rev = "5dc1c06d96b337109f7ca96eda41529a7f22e0e0"} # Verawood
+tutor-mfe = {git = "https://github.com/overhangio/tutor-mfe", rev = "1547ec2787535f9b340ba87909fef2ec32a806c9"} # Verawood
+tutor-minio = {git = "https://github.com/overhangio/tutor-minio", rev = "b05d1f37875789ec6abe9641a05fda1139fd45ed"} # Verawood
+tutor-notes = {git = "https://github.com/overhangio/tutor-notes", rev = "2cfe80f82dde6e794782d0484a7b1bf6af9296f2"} # Verawood
+tutor-forum = {git = "https://github.com/overhangio/tutor-forum", rev = "3ecb05cc6aa525554995d37be1077c53d7833ac4"} # Verawood
+
[build-system]
-requires = ["uv_build>=0.11.0,<0.12.0"]
+requires = ["uv_build>=0.9.5,<0.10.0"]
build-backend = "uv_build"
[dependency-groups]
@@ -71,10 +80,10 @@ dev = [
"ty>=0.0.1a29",
]
test = [
- "tutor-contrib-s3",
- "tutor-forum~=21.0",
- "tutor-mfe~=21.0",
- "tutor-minio~=21.0",
- "tutor-notes~=21.0",
+ "tutor-contrib-s3~=22.0",
+ "tutor-mfe~=22.0",
+ "tutor-minio~=22.0",
+ "tutor-notes~=22.0",
+ "tutor-forum~=22.0",
]
diff --git a/uv.lock b/uv.lock
index ee9e106..c8d18f4 100644
--- a/uv.lock
+++ b/uv.lock
@@ -814,8 +814,8 @@ wheels = [
[[package]]
name = "tutor"
-version = "21.0.6"
-source = { registry = "https://pypi.org/simple" }
+version = "22.0.0"
+source = { git = "https://github.com/overhangio/tutor?rev=59264ca9f9c6a8e67622ae72080684ffc6ec7e2a#59264ca9f9c6a8e67622ae72080684ffc6ec7e2a" }
dependencies = [
{ name = "appdirs" },
{ name = "click" },
@@ -829,11 +829,10 @@ dependencies = [
{ name = "pyyaml" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/26/d8/3d93bc551ba2e5035e4fc107a0d89d0e6b70addc1a7134c5d4c5b92ff406/tutor-21.0.6.tar.gz", hash = "sha256:36655840644289becdbad642d1b70677475f03eebf9925ebcd394f686f9ed25f", size = 112956, upload-time = "2026-05-06T12:07:53.473Z" }
[[package]]
name = "tutor-contrib-drydock"
-version = "21.2.0"
+version = "22.0.0"
source = { editable = "." }
dependencies = [
{ name = "tutor" },
@@ -854,7 +853,7 @@ test = [
]
[package.metadata]
-requires-dist = [{ name = "tutor", specifier = "~=21.0" }]
+requires-dist = [{ name = "tutor", git = "https://github.com/overhangio/tutor?rev=59264ca9f9c6a8e67622ae72080684ffc6ec7e2a" }]
[package.metadata.requires-dev]
dev = [
@@ -863,56 +862,52 @@ dev = [
{ name = "ty", specifier = ">=0.0.1a29" },
]
test = [
- { name = "tutor-contrib-s3", git = "https://github.com/cleura/tutor-contrib-s3?tag=v2.5.0" },
- { name = "tutor-forum", specifier = "~=21.0" },
- { name = "tutor-mfe", specifier = "~=21.0" },
- { name = "tutor-minio", specifier = "~=21.0" },
- { name = "tutor-notes", specifier = "~=21.0" },
+ { name = "tutor-contrib-s3", git = "https://github.com/eduNEXT/tutor-contrib-s3?rev=5dc1c06d96b337109f7ca96eda41529a7f22e0e0" },
+ { name = "tutor-forum", git = "https://github.com/overhangio/tutor-forum?rev=3ecb05cc6aa525554995d37be1077c53d7833ac4" },
+ { name = "tutor-mfe", git = "https://github.com/overhangio/tutor-mfe?rev=d0804c2590431780d3a0ed6d24701c20eef5a86d" },
+ { name = "tutor-minio", git = "https://github.com/overhangio/tutor-minio?rev=b05d1f37875789ec6abe9641a05fda1139fd45ed" },
+ { name = "tutor-notes", git = "https://github.com/overhangio/tutor-notes?rev=2cfe80f82dde6e794782d0484a7b1bf6af9296f2" },
]
[[package]]
name = "tutor-contrib-s3"
-version = "2.5.0"
-source = { git = "https://github.com/cleura/tutor-contrib-s3?tag=v2.5.0#6138badaaadea4099f0176dca311523e55d018bd" }
+version = "0.1.dev92+g5dc1c06d9"
+source = { git = "https://github.com/eduNEXT/tutor-contrib-s3?rev=5dc1c06d96b337109f7ca96eda41529a7f22e0e0#5dc1c06d96b337109f7ca96eda41529a7f22e0e0" }
dependencies = [
{ name = "tutor" },
]
[[package]]
name = "tutor-forum"
-version = "21.0.0"
-source = { registry = "https://pypi.org/simple" }
+version = "22.0.0"
+source = { git = "https://github.com/overhangio/tutor-forum?rev=3ecb05cc6aa525554995d37be1077c53d7833ac4#3ecb05cc6aa525554995d37be1077c53d7833ac4" }
dependencies = [
{ name = "tutor" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/98/7c/9098960807812deafe6f9b95a06f3790a7a6e47f4a1f1215da69dc2bfe57/tutor_forum-21.0.0.tar.gz", hash = "sha256:00aa7c31b1d1563ae99ef567c34900f0b9fb859a6d2dd6a33d6e03d0fbefe758", size = 16746, upload-time = "2026-01-16T13:36:08.109Z" }
[[package]]
name = "tutor-mfe"
-version = "21.0.0"
-source = { registry = "https://pypi.org/simple" }
+version = "22.0.0"
+source = { git = "https://github.com/overhangio/tutor-mfe?rev=d0804c2590431780d3a0ed6d24701c20eef5a86d#d0804c2590431780d3a0ed6d24701c20eef5a86d" }
dependencies = [
{ name = "tutor" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/29/51/591e2608026176c10a4b01fdd6e637324d1158e35f3b54aabe3214cb9d33/tutor_mfe-21.0.0.tar.gz", hash = "sha256:2a266d9554cbeeb2ac01391071308c14cd5a78b39f9407f088e28373a3870b17", size = 44352, upload-time = "2026-01-16T11:55:17.916Z" }
[[package]]
name = "tutor-minio"
-version = "21.0.0"
-source = { registry = "https://pypi.org/simple" }
+version = "22.0.0"
+source = { git = "https://github.com/overhangio/tutor-minio?rev=b05d1f37875789ec6abe9641a05fda1139fd45ed#b05d1f37875789ec6abe9641a05fda1139fd45ed" }
dependencies = [
{ name = "tutor" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/99/44/e9ba846ecb82fad051aac19d886a6de1823d61f47b2147aeb3ce8f7942ad/tutor_minio-21.0.0.tar.gz", hash = "sha256:ef2f68c9efbf58b06b1e0e0c27b8ceba5638a1e44ee09c06cf4823291a9133c0", size = 18692, upload-time = "2026-01-16T13:47:52.994Z" }
[[package]]
name = "tutor-notes"
-version = "21.0.0"
-source = { registry = "https://pypi.org/simple" }
+version = "22.0.0"
+source = { git = "https://github.com/overhangio/tutor-notes?rev=2cfe80f82dde6e794782d0484a7b1bf6af9296f2#2cfe80f82dde6e794782d0484a7b1bf6af9296f2" }
dependencies = [
{ name = "tutor" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/1a/c6/8762e7cba916c8e8172d354e4b3474675e6b265fc62f5fa9ab8b13ac6ae5/tutor_notes-21.0.0.tar.gz", hash = "sha256:7db288c4a2d54db8564a947be6bac251feea193078851ccd405c945695e2ad0a", size = 18886, upload-time = "2026-01-16T13:24:04.004Z" }
[[package]]
name = "ty"