Node 18 - edx-platform Retro

Theard that most of the timeline came from: https://openedx.slack.com/archives/C02QN50TYMD/p1711998235104289

Timeline

Retrospective

  • Going from Webpack 2 → Webpack 5 was the most complicated part of the “Node 18” upgrade.

  • Many dependencies did not get upgraded for 7 years exactly.

    • Would automation help? We were looking at major version upgrades which renovate wouldn’t help us with.

  • We don’t test the prod webpack build in CI.

  • We didn’t have a good way to test rendering of XBlocks

  • We don’t have any way of testing the proctoring via CI or Tutor.

  • Knowledge about the state of the node18 upgrade which had been attempted before.

Learnings

  • If you start and don’t finish an upgrade, please, please, please, document how far you got and what prevented you from making further progress to help the next person who may take up the task.

    • You didn’t fail. You learned. Please share what you learned!

  • We should use this process for landing big changes made by the community.

    • Flag to arch-bom in #cc-edx-platform

    • Coordinate a time to pause the pipeline and have edx eng do testing on stage.

    • What constitutes a big change?

      • Major Node or Python Version Update

      • React Major Version Update

      • Webpack Major Version Update

      • Django major version update

      • Major version update of djangorestframework

      • react-router major version update

Action Items

@Brian Smith Look into whether we can have renovate at-least make PRs for major edx-platform node package updates.
@Feanil Patel Create an issue to see if we can we setup an e2e test suite in CI for edx-platform that does the bare minimum of testing login, enroll, and submit an answer to a problem.
@Zach Hancock (Deactivated) Update mockprock docs/config to help improve the manual proctoring testing story.
@Diana Huang socialize the process for landing big changes.