From 339c4599a6fe034a5a764825d22f0d243290f55a Mon Sep 17 00:00:00 2001 From: Taimoor Ahmed Date: Thu, 4 Jun 2026 14:12:36 +0500 Subject: [PATCH] fix: backport openedx-forum 0.4.1 to ulmo for thread sort bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the `openedx-forum` pin from 0.3.8 to 0.4.1 on `release/ulmo` to pull in the fix for the "pinned"-NULL sort bug (openedx/forum#270, commit 78b36e4) where discussion threads were not ordering correctly when users selected "recent first" — old threads with NULL `pinned` values floated above newer threads. Reported in: https://discuss.openedx.org/t/discuss-forum-messages-order-not-organized-as-expected-in-teak/18665 The 0.3.8 -> 0.4.1 delta brings in: * 0.3.9 — five small bug fixes (Mongo content_type, timestamps, MySQL read_states lookup, Forum V2 author field, build). * 0.4.0 — MySQL backend query optimizations (N+1 fixes, prefetch/select_related); backwards compatible. * 0.4.1 — the `pinned` NULL sort fix (commit 78b36e4) plus the optional Typesense search backend (additive, off by default). Caps openedx-forum at <=0.4.1 in constraints.txt to avoid: * 0.4.2 — drops Python 3.11 support. * 0.4.3 — removes the MongoDB backend (Ulmo deployments may rely on it). The constraint should be removed on master / post-Ulmo release lines. Co-Authored-By: Claude Opus 4.7 --- requirements/constraints.txt | 11 +++++++++++ requirements/edx/base.txt | 13 ++++++++++--- requirements/edx/development.txt | 10 +++++++++- requirements/edx/doc.txt | 12 ++++++++++-- requirements/edx/testing.txt | 12 ++++++++++-- 5 files changed, 50 insertions(+), 8 deletions(-) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index dd80bc9c72c1..d25f0099da96 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -68,6 +68,17 @@ openedx-learning==0.30.2 # Issue for unpinning: https://github.com/openedx/edx-platform/issues/35268 openai<=0.28.1 +# Date: 2026-06-04 +# Cap openedx-forum to 0.4.1 on the Ulmo release line: +# * 0.4.1 contains the fix for the "pinned" NULL sort bug +# (https://github.com/openedx/forum/pull/270 — discussion threads were not +# ordering correctly when sorted by "recent first"). See user report: +# https://discuss.openedx.org/t/discuss-forum-messages-order-not-organized-as-expected-in-teak/18665 +# * 0.4.2 drops Python 3.11 support. +# * 0.4.3 removes the MongoDB backend, which Ulmo deployments may still rely on. +# Remove this cap on master / post-Ulmo release lines. +openedx-forum<=0.4.1 + # Date: 2024-04-26 # path==16.12.0 breaks the unit test collections check # needs to be investigated and fixed separately diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 6b1596a06543..2112b43dab11 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -661,7 +661,9 @@ html5lib==1.1 httpcore==1.0.9 # via httpx httpx[http2]==0.28.1 - # via firebase-admin + # via + # firebase-admin + # typesense hyperframe==6.1.0 # via h2 icalendar==6.3.1 @@ -852,8 +854,10 @@ openedx-filters==2.1.0 # -r requirements/edx/kernel.in # lti-consumer-xblock # ora2 -openedx-forum==0.3.8 - # via -r requirements/edx/kernel.in +openedx-forum==0.4.1 + # via + # -c requirements/constraints.txt + # -r requirements/edx/kernel.in openedx-learning==0.30.2 # via # -c requirements/constraints.txt @@ -1189,6 +1193,8 @@ tqdm==4.67.1 # via # nltk # openai +typesense==2.0.0 + # via openedx-forum typing-extensions==4.15.0 # via # aiosignal @@ -1204,6 +1210,7 @@ typing-extensions==4.15.0 # pyopenssl # referencing # snowflake-connector-python + # typesense # typing-inspection typing-inspection==0.4.2 # via pydantic diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index c16e2117053f..b1953f6c6849 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -1077,6 +1077,7 @@ httpx[http2]==0.28.1 # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt # firebase-admin + # typesense hyperframe==6.1.0 # via # -r requirements/edx/doc.txt @@ -1411,8 +1412,9 @@ openedx-filters==2.1.0 # -r requirements/edx/testing.txt # lti-consumer-xblock # ora2 -openedx-forum==0.3.8 +openedx-forum==0.4.1 # via + # -c requirements/constraints.txt # -r requirements/edx/doc.txt # -r requirements/edx/testing.txt openedx-learning==0.30.2 @@ -2129,6 +2131,11 @@ types-pyyaml==6.0.12.20250915 # djangorestframework-stubs types-requests==2.32.4.20250913 # via djangorestframework-stubs +typesense==2.0.0 + # via + # -r requirements/edx/doc.txt + # -r requirements/edx/testing.txt + # openedx-forum typing-extensions==4.15.0 # via # -r requirements/edx/doc.txt @@ -2155,6 +2162,7 @@ typing-extensions==4.15.0 # referencing # snowflake-connector-python # starlette + # typesense # typing-inspection typing-inspection==0.4.2 # via diff --git a/requirements/edx/doc.txt b/requirements/edx/doc.txt index 0cb0bf334d13..90fcb2081903 100644 --- a/requirements/edx/doc.txt +++ b/requirements/edx/doc.txt @@ -790,6 +790,7 @@ httpx[http2]==0.28.1 # via # -r requirements/edx/base.txt # firebase-admin + # typesense hyperframe==6.1.0 # via # -r requirements/edx/base.txt @@ -1028,8 +1029,10 @@ openedx-filters==2.1.0 # -r requirements/edx/base.txt # lti-consumer-xblock # ora2 -openedx-forum==0.3.8 - # via -r requirements/edx/base.txt +openedx-forum==0.4.1 + # via + # -c requirements/constraints.txt + # -r requirements/edx/base.txt openedx-learning==0.30.2 # via # -c requirements/constraints.txt @@ -1503,6 +1506,10 @@ tqdm==4.67.1 # -r requirements/edx/base.txt # nltk # openai +typesense==2.0.0 + # via + # -r requirements/edx/base.txt + # openedx-forum typing-extensions==4.15.0 # via # -r requirements/edx/base.txt @@ -1520,6 +1527,7 @@ typing-extensions==4.15.0 # pyopenssl # referencing # snowflake-connector-python + # typesense # typing-inspection typing-inspection==0.4.2 # via diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 0d87636f6689..c60f91688343 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -827,6 +827,7 @@ httpx[http2]==0.28.1 # via # -r requirements/edx/base.txt # firebase-admin + # typesense hyperframe==6.1.0 # via # -r requirements/edx/base.txt @@ -1074,8 +1075,10 @@ openedx-filters==2.1.0 # -r requirements/edx/base.txt # lti-consumer-xblock # ora2 -openedx-forum==0.3.8 - # via -r requirements/edx/base.txt +openedx-forum==0.4.1 + # via + # -c requirements/constraints.txt + # -r requirements/edx/base.txt openedx-learning==0.30.2 # via # -c requirements/constraints.txt @@ -1578,6 +1581,10 @@ tqdm==4.67.1 # -r requirements/edx/base.txt # nltk # openai +typesense==2.0.0 + # via + # -r requirements/edx/base.txt + # openedx-forum typing-extensions==4.15.0 # via # -r requirements/edx/base.txt @@ -1598,6 +1605,7 @@ typing-extensions==4.15.0 # referencing # snowflake-connector-python # starlette + # typesense # typing-inspection typing-inspection==0.4.2 # via