Skip to main content

Moodle App Release Process

Six weeks before (Code freeze)

#TaskResponsible
1.Force an update of the local_moodlemobileapp plugin (as release candidate) with new strings in moodle.org/plugins (only for Moodle version 3.5).Developer
2.Ask someone from sites or community team to review the new English strings.Community or Sites team
3.Announce in the moodle translation forums the new strings available. This will allow translators to add the new strings during the days prior to the release.Developer
4.Add the release notes in the release issue created (search for the release_notes tag). Ask someone from the documentation team to review the release notes.Developer
5.Contact the marketing team announcing the new release and highlights.Team Lead
6.Add new QA tests to the apps_test site. New QA tests should be labeled with qa_test_required, remove that label once they are added to the site.Tester
7.Complete all TODOs related with the upcoming release, which are marked in code with a comment starting with @todo {version-number} (for example, before releasing 4.1 we'd search for comments starting with @todo 4.1)Developer
8.Update npm dependencies in the main branch, both in the root folder and in cordova-plugin-moodleapp, and run npm audit to ensure all the dependencies are OK. Also check github vulnerabilities report.Developer
9.Freeze npm dependencies to avoid being updated during QA. For the root package.json, this can be done running npx gulp freeze-dependencies (make sure no error appears in console). cordova-plugin-moodleapp dependencies need to be frozen manually.Developer
10.Start testingTester

The release day

#TaskResponsible
1.Set the right version number for the new Moodle LMS major release in the authenticated-site.ts constant MOODLE_RELEASES.Developer
2.Launch the internal release github workflow.Developer
3.Do some testing with the production builds before sending the application to the stores (overall testing to see that nothing is broken):
  • Correct definitive version name displayed (and commit)
  • AOT compiling worked
  • Language strings synchronised from lang.moodle.net
  • New language packs added
All the team
4.Launch behat tests (latest branch).Developer
5.Send the applications to the stores for review.Team Lead
6.Check TAG/Release have been created in github (moodlehq/moodleapp) with the version number.Developer
7.Update the ci branch in the behat tests plugin (moodlehq/moodle-local_moodleappbehat) with the latest behat code and features.Developer
8.Update upgrade guides.Developer
9.Open PR with release documentation updates (from moodlemobile/devdocs:app-docs to moodle/devdocs).Developer
10.Mark the issue and the version as released in the tracker.Team Lead
11.Update release notes.Team Lead

The following days

#TaskResponsible
1.Create an issue in the tracker for the next release, like: MOBILE-4270Developer
2.Social media announcements (Forum and Twitter).All the team & Marketing team
3.Post in moodle.org/news.Team Lead
4.Review the users and developers documentation (check that everything is in order). Review the docs_required and dev_docs_required_tags. Review the Mobile features wiki documentation.All the team
5.Update branches and tags in all repositories (moodleapp, local_moodlemobileapp, local_moodleappbehat, etc.). Update github parse workflow on local_moodlemobileapp to add the new dev version.Developer
6.Prepare the repository for the next release:
  • Bump version numbers in the following files: config.xml, package.json, package-lock.json, and moodle.config.json.
  • Set the version number for the next Moodle LMS major release in the authenticated-site.ts constant MOODLE_RELEASES
You can see an example of doing all of that in this PR: 4.3.0 version update
Developer
7.Check that the Docker image for the new version was successfully built.Developer
8.Update of the local_moodlemobileapp plugin (as final release) in moodle.org/plugins.Developer
9.Update of the local_moodleappbehat plugin (as final release) in moodle.org/plugins.Developer
10.Check if the Android API level should be increased or not to use a recent one.Developer
11.Review the new features/improvements specs/shaping documents to ensure that they clearly reflect the actual implementation of the feature.All the team
12.Review that all the minor issues found during the QA testing have a related and triaged MOBILE issue in the tracker.All the team
13.Make sure that tests are passing with all the supported versions in ci.moodle.org.Developer
14.Update APK in download.moodle.org/mobile.Team Lead
15.Unfreeze the dependencies in the root package.json and in cordova-plugin-moodleapp.Developer

See also