Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redwood sandbox preparation #1054

Closed
46 of 49 tasks
DawoudSheraz opened this issue Apr 30, 2024 · 14 comments
Closed
46 of 49 tasks

Redwood sandbox preparation #1054

DawoudSheraz opened this issue Apr 30, 2024 · 14 comments
Assignees

Comments

@DawoudSheraz
Copy link
Contributor

DawoudSheraz commented Apr 30, 2024

This issue is for tracking the items to prepare https://github.com/overhangio/openedx-release-demo for Redwood cutoff.

Redwood branches are expected to be available on May 9th. Once the branches are out, the community will be eagerly looking forward to sandbox provided by Edly to test out redwood cutoff. But before the sandbox can be built, tutor and its plugins need to have redwood branches with appropriate changes. The necessary information is already present on https://edlyio.atlassian.net/wiki/spaces/openedx/pages/3013148726/Building+Open+edX+major+releases. A note: once the branches are created, any changes to nightly would need to be manually added to the redwood branch. Therefore, a rebase on nightly whenever nightly changes would be required to ensure the redwood branch is always up-to-date

This issue is just a todo list to ensure that tutor and its plugins have redwood branches created from nightly before the cutoff date (even though there will be potential failures on CI against it) and have a PR against master. For sanity checks, make sure to run image build and init task on local tutor <local/dev> do init --limit=pluginnname. Additionally, the sandbox repo https://github.com/overhangio/openedx-release-demo would also need updates to build on redwood.

Tutor & Plugins Todo List

Available on launch

Available within a week

Delay expected

Sandbox Repo Todo List

Context

Every six months, Tutor maintainers sync up with the Build/Test/Release working group to create the next version, both of Open edX and Tutor.

In the scenario below, we are upgrading Open edX from fictional “Delta” to “Epsilon”. Tutor will upgrade from v4 to v5 (“d”=4, “e”=5).

(these instructions are pulled and adapted from this old discussion topic)

Create release branches

In Tutor core and all plugins, we must create “epsilon” branches off of the nightly branches. For each repo, this looks like the following:

git checkout nightly

git pull

git checkout -b epsilon

Push the created “epsilon” branch to the upstream repo: git push

Upgrade Tutor core and plugins

  • Modify about.py:
    • bump the version number to 5.0.0.
  • in Tutor core, set the version_suffix to an empty string.
  • In plugins’ setup.py, bump the version of the “tutor” package that the plugin depends on:
install_requires=["tutor>=5.0.0,<6.0.0"],
extras_require={"dev": ["tutor[dev]>=5.0.0,<6.0.0"]},
  • Create a changelog entry with make changelog-entry: "💥[Feature] Upgrade to Epsilon. (by @YourGithubUsername)"
  • Replace all instances of “[dD]elta” that make sense (i.e: not in the CHANGELOG.md!)
  • Go through the Dockerfile templates and manually upgrade all the 3rd-party requirements that you can find (dockerize, ipdb, etc.). Sometimes it’s not desirable to upgrade some pieces of software: for instance node and python are expected to run a specific version. Those required version numbers are specified in the edx/configuration 5 repo. (look for SERVICENAME_VERSION variables)
  • Make sure that the plugin images (if any) are built correctly: tutor images build all.
  • Make sure that the plugin can be correctly initialized: tutor local do init --limit=pluginnname.
  • If you need to make some changes to the docker-compose*.yml files and patches, make sure to backport these changes to the k8s-* patches, for compatibility with Kubernetes.
  • Make sure that the plugins work correctly by doing some basic usage testing. Pay close attention to any log (warning or error) that come out of the plugin containers as well as the lms container.
  • git commit -a -m v5.0.0
  • Push the created “epsilon” branch to the upstream repo: git push

The release branches should be updated regularly to take into account the latest changes from the nightly branch. During the release process, it is frequent that changes are pushed to the master and nightly branches, and the latest “espilon” branch must have those changes as well. Be prepared to push --force the “espsilon” branches frequently.

⚠️ Plugin tests will fail in the release branches, because the plugins can’t find tutor>=5.0.0 on pypi. To resolve that, we should update the test scripts to install tutor from source (pip install -e --config-settings editable_mode=compat https://github.com/overhangio/tutor@epsilon#egg=tutor). But it’s inconvenient to do that for each and every plugin. So maybe we should consider migrating to a centralized “tutor-test-plugin” GitHub action. This action would be versioned according to the Tutor major version (@5).

@DawoudSheraz DawoudSheraz self-assigned this Apr 30, 2024
@DawoudSheraz
Copy link
Contributor Author

@ghassanmas Hi, can you take care of tutor-forum branch/PR?
@jfavellar90 Hi, can you take care of tutor-xqueue and tutor-notes PRs/branches?
Please let me know if you can't view https://edlyio.atlassian.net/wiki/spaces/openedx/pages/3013148726/Building+Open+edX+major+releases. I will copy-paste the steps here if the doc is not accessible after creating the account. Thank you

@FahadKhalid210
Copy link

@DawoudSheraz
Minio PR
Cairn PR

@hinakhadim
Copy link
Contributor

hinakhadim commented May 7, 2024

Tutor Indigo PR: overhangio/tutor-indigo#79

  • Is nightly local image build working?
  • Is init working?

@DawoudSheraz
Copy link
Contributor Author

@DawoudSheraz Minio PR Cairn PR

Thanks. Are builds and init working as expected?

@Faraz32123
Copy link
Contributor

PR for tutor-discovery
PR for tutor-ecommerce

  • Is nightly local image build working?
  • Is init working?

@FahadKhalid210
Copy link

@DawoudSheraz Minio PR Cairn PR

Thanks. Are builds and init working as expected?

Yes

@hinakhadim
Copy link
Contributor

Tutor MFE:

  • Is nightly local image build working?
  • Is init working?

@jfavellar90
Copy link

@DawoudSheraz I'm not able to see https://edlyio.atlassian.net/wiki/spaces/openedx/pages/3013148726/Building+Open+edX+major+releases. I already sent an access request from my account. You can copy-paste the info here if you prefer. I've checked the already existing PRs so I think I can start, anyways I'll check your document once is ready

@jfavellar90
Copy link

jfavellar90 commented May 10, 2024

Tutor Notes PR

  • Is nightly local image build working?
  • Is init working?

Tutor Xqueue PR

  • Is nightly local image build working?
  • Is init working?

@DawoudSheraz
Copy link
Contributor Author

@jfavellar90 I have updated the issue's description. It's more or less similar to what you already did in the PRs. Thanks

@MoisesGSalas
Copy link
Contributor

MoisesGSalas commented May 10, 2024

Hi @DawoudSheraz, I'm working on the codjail plugin. I tested against the latest nightly.

One thing to keep in mind Is that the openedx image must include this commit if running (openedx/edx-platform@351e360) on open-relelease/redwood.master or (openedx/edx-platform@8ff52ce) if running on master.

Tutor contrib codejail: eduNEXT/tutor-contrib-codejail#54

  • Is nightly local image build working?
  • Is init working?

@Abdul-Muqadim-Arbisoft
Copy link
Contributor

Abdul-Muqadim-Arbisoft commented May 13, 2024

PR for tutor-webui

  • Is nightly local image build working?
  • Is init working?

@Faraz32123
Copy link
Contributor

PR for tutor credentials.

  • Is nightly local image build working?
  • Is init working?

Thanks @Danyal-Faheem, for your collaboration and thorough testing of this plugin. Much appreciated!

@DawoudSheraz
Copy link
Contributor Author

Apart from Android & Cairn(disabled in favor of aspects), the rest of the plugins are active and enabled. Closing this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

7 participants