Skip to content

Conversation

@Cup0fCoffee
Copy link
Member

@Cup0fCoffee Cup0fCoffee commented Oct 12, 2025

Description

This PR ports all of the code drift from opencraft-release/sumac.1 to opencraft/teak. The commits have been determined by comparing open-release/sumac.master and opencraft-release/sumac.1, and checking the code drift board.

Supporting information

Comparison of open-release/sumac.master and opencraft-release/sumac.1.

Code Drift board.

Auxiliary spreadsheet.

Testing instructions

Setup

  1. Use local tutor devstack; make sure tutor is on version >=20.0.0,<21.0.0.
  2. Clone edx-platform and checkout maxim/bb-10049-port-code-drift branch.
  3. Run:
tutor mounts add <path to the cloned edx-platform repo>
tutor images build openedx-dev
tutor dev launch

Test commits

Follow the testing instructions from the following PRs to test that all changes are still working after porting the code drift:

  1. feat: add feature flag to enable legacy md5 hash for anonymous user id openedx/openedx-platform#30832
  2. temp: Add configuration option to redirect to external site when TPA account is unlinked #540
  3. feat: eSHE Instructor role [BB-7489] #561
  4. fix: eSHE instructors should see their courses [BB-7489] #572
  5. feat: add a feature flag to disable dates tab for all courses openedx/openedx-platform#34511
  6. feat: tpa automatic logout with a single redirect openedx/openedx-platform#37048
  7. fix: prevent redirects to /undefined after saml auth #669
  8. fix: unhide discussion tab when enabling it (#677) openedx/openedx-platform#35431
  9. fix: unhide discussion tab when enabling it #677
  10. feat: User agreements API for generic agreement records openedx/openedx-platform#35895
  11. fix: use a single 'provider_type' key for storing discussion provider type in course openedx/openedx-platform#36039
  12. feat: add ability to override middlewares for recurring nudges #790
  13. fix: prevent null start date in course details openedx/openedx-platform#37299

Deadline

None

Other information

N/A

Private-ref: https://tasks.opencraft.com/browse/BB-10049

kaustavb12 and others added 10 commits October 12, 2025 19:10
…to md5

The hashing algorithm has been changed in cd60646. However, there are Open edX
operators who maintain backward compatibility of anonymous user IDs after past
rotations of their Django secret key. For them, altering the hashing algorithm
was a breaking change that made their analytics inconsistent.

(cherry picked from commit 746e4fe)
(cherry picked from commit ff6d92f)
(cherry picked from commit 7245bdc)
(cherry picked from commit 6da7f58)
(cherry picked from commit ee3aa4a)
(cherry picked from commit 5641d8e)
…account is unlinked

(cherry picked from commit e83a8c8f82849644cf95534cde3fe149e4f11916)
(cherry picked from commit 0c831dc)
(cherry picked from commit c596bf3)
(cherry picked from commit 64f5dea)
(cherry picked from commit 7b12b00)
fix: give superusers all studio permissions

(cherry picked from commit 8ef55754f4a529cc6b784298320fcdb8b415bd83)
(cherry picked from commit 8e281a9)
(cherry picked from commit f552973)
(cherry picked from commit 6de7b64)

feat: eSHE Instructor role

Adds the eSHE Instructor role, which inherits Course Staff permissions,
but isn't able to enroll / un-enroll students and can't assing course
team roles unless in combination with Course Staff / Instructor /
Discussion admin roles.

(cherry picked from commit 5d160c2)
(cherry picked from commit a21b4f0)

feat: Teaching Assistant role

(cherry picked from commit 176de06)
(cherry picked from commit 7ef00c0)
(cherry picked from commit a0d8806)
(cherry picked from commit 45f6593)
(cherry picked from commit 88bb2a4)
(cherry picked from commit d10faab)
(cherry picked from commit e8c942c)
(cherry picked from commit 622d891)
(cherry picked from commit ed284dd)
When a user authenticates using SAML, but their accounts aren't linked,
they land on the login page with the message to link their accounts. If the
`OC_REDIRECT_ON_TPA_UNLINKED_ACCOUNT` value is not set, they are redirected to
`/undefined`. This commit checks that the `redirectURL` is a valid non-empty
string before performing the redirect.

The bug was introduced in 91f8d36, so this can be safely dropped once that
temporary commit is removed from our branches. For Redwood, the relevant
commit hash is 64f5dea.

Internal-ref: https://tasks.opencraft.com/browse/BB-9010
(cherry picked from commit 9ade4ea)
(cherry picked from commit b801f99)
(cherry picked from commit 21787b7)
(cherry picked from commit 11ddc19)
(cherry picked from commit 15d56f6)
(cherry picked from commit 80e27f6)
(cherry picked from commit 02d95cd)
(cherry picked from commit 3ba4ab1)
(cherry picked from commit 35b0d4b)
This change adds a new kind of generic user agreement that allows plugins or
even the core platform to record a user's acknowledgement of an agreement.

(cherry picked from commit dc0383f)
(cherry picked from commit 2481c0e)
(cherry picked from commit 924ae00)
@Cup0fCoffee Cup0fCoffee changed the title [BB-10049] feat: prepare teak branch feat: prepare teak branch Oct 12, 2025
@Cup0fCoffee Cup0fCoffee force-pushed the maxim/bb-10049-port-code-drift branch from 06ed5f2 to 22dda08 Compare October 12, 2025 22:29
Copy link
Member

@samuelallan72 samuelallan72 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

  • I tested this: reviewed the process for picking the commits, spot checked some cases.
  • I read through the code
  • I checked for accessibility issues
  • Includes documentation
  • [N/A] Added to the Code Drift project board (for backports)

xitij2000 and others added 4 commits October 14, 2025 22:24
… type in course

Both 'provider' and 'provider_type' have been used for storing the discussion provider type in course 'discussions_settings' field, there are some places in the code checking for 'provider' and others checking for 'provider_type', in some cases this can cause a bug where it doesn't detect the correct provider which causes discussion settings not being copied correctly when a course is cloned.

This change prioritises the `provider_type` setting over `provider` and reads `provider` only as a fallback. The `provider` setting is now made read-only just for backwards-compatibility, to avoid confusion.

(cherry picked from commit 9ee4afa)
* feat: add ability to override middlewares for recurring nudges

* feat: add ability to run command for all sites

(cherry picked from commit 759e8f0)
This PR fixes the user not being created when accessing the discussion xblock as the course_key was missing in some of the api calls and that lead to the forum backend not being fetched correctly.

(cherry picked from commit 7e80061)
@Cup0fCoffee Cup0fCoffee force-pushed the maxim/bb-10049-port-code-drift branch from 22dda08 to d2248ef Compare October 14, 2025 18:25
@Cup0fCoffee Cup0fCoffee merged commit 85cddee into opencraft/teak Oct 14, 2025
47 checks passed
@Cup0fCoffee Cup0fCoffee deleted the maxim/bb-10049-port-code-drift branch October 14, 2025 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants