Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Moodle App Release Process: Difference between revisions

From MoodleDocs
(Update migration status and path)
 
(91 intermediate revisions by 8 users not shown)
Line 1: Line 1:
== 7 days before ==
{{Template:Migrated|newDocId=/general/app/development/release-process}}
 
== Two weeks before (Code freeze) ==
{| class="table table-striped table-bordered"
{| class="table table-striped table-bordered"
|-
|-
Line 12: Line 12:
|-
|-
| 2.
| 2.
| Update the local_moodlemobileapp plugin with new strings in moodle.org/plugins. Use the moodlemobile-scripts/json-to-string.sh to convert the build lang file to a valid string file.
| Force an update of the [https://moodle.org/plugins/view.php?id=997 local_moodlemobileapp] plugin (as release candidate) with new strings in moodle.org/plugins (only for Moodle version 2.6).
This will allow translators to add the new strings during the days prior to the release.
| Dev
|-
| 3.
| Ask someone from sites or community team to review the new English strings.
| Community or Sites team
|-
| 4.
| Announce in the moodletranslation forums the new strings available: https://lang.moodle.org/mod/forum/view.php?id=5. This will allow translators to add the new strings during the days prior to the release.
| Integration Lead
| Integration Lead
|-
| 5.
| Add the release notes in the release issue created (search for the [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE%20AND%20labels%20%3D%20release_notes release_notes tag]). Ask someone from the documentation team or Martin to review the release notes.
| Integration Lead
|-
| 6.
| Contact the marketing team announcing the new release and highlights.
| Integration Lead
|-
| 7.
| Add new QA tests to the “Testing cases” document. New QA tests should be labeled with [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE%20AND%20resolution%20in%20(Unresolved%2C%20Fixed)%20AND%20labels%20%3D%20qa_test_required%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC qa_test_required]. Remove that label once are added to the document.
| Tester
|-
| 8.
| Run npm audit to ensure all the dependencies are OK.
| Developer
|-
| 9.
| Freeze Cordova plugins and Javascript libraries versions (node modules) in the integration branch.
| Developer
|-
| 10.
| '''Start testing'''
| Tester
|}
|}
 
== The release day ==
== 3 days before ==
 
{| class="table table-striped table-bordered"
{| class="table table-striped table-bordered"
|-
|-
Line 25: Line 54:
! style="width:12%" | Responsibility
! style="width:12%" | Responsibility
|-
|-
| 1.
| 1.  
| Backport to local_mobile (all branches) all the new required Web Services by new features.
| Fix the version name in integration/config.xml, integration/package.json and integration:src/config.json (remove the -dev).
Once all the Web Services are backported and tested, publish a new version in the plugins database (via TAGS) so admin can updates their sites.
| Integration Lead
| Integration Lead
|-
|-
| 2.
| 2.
| Add the release notes in the release issue created. Ask someone from the documentation team or Martin to review the release notes.
| Integrate the [https://github.com/moodlehq/moodleapp/compare/master...integration integration branch onto the master one].
| Integration Lead
|-
| 3.
| Do some testing with the production builds before sending the application to the stores (overall testing to see that nothing is broken because of the branch merge done in step 2):
* 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.
| Send the applications to the stores for review.
| Integration Lead
|-
| 5.
| Create a TAG/Release in github ([https://github.com/moodlehq/moodleapp/releases moodlehq/moodleapp]) with the version number.
| Integration Lead
|-
| 6.
| Mark the issue and the [https://tracker.moodle.org/projects/MOBILE?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page version] as released in the tracker.
| Integration Lead
|-
| 7.
| Update release notes [[Moodle_Mobile_Release_Notes]] .
| Integration Lead
| Integration Lead
|}
|}
 
== The following days ==
== 1 day before (testing day) ==
 
{| class="table table-striped table-bordered"
{| class="table table-striped table-bordered"
|-
|-
Line 44: Line 94:
|-
|-
| 1.
| 1.
| Review that upgrade.txt is updated and that there are not issues with the dev_docs_required tag
| Social media announcements (Forum and Twitter).
| Integration Lead
| All the team & Marketing team
|-
|-
| 2.
| 2.
| Auto translate strings with the script auto-translate2.php
| Post in moodle.org/news.
| Integration Lead
| Team Lead
|-
|-
| 3.
| 3.
| Update language strings from AMOS using the fetch-langpacks2.sh script
| Review the users and developers documentation (check that everything is in order). Review the [https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE%20AND%20labels%20in%20%28docs_required%2C%20dev_docs_required%29 docs_required and dev_docs_required_tags]. Review the [https://docs.moodle.org/en/Moodle_Mobile_features Mobile features wiki documentation].
| Integration Lead
| All the team
|-
|-
| 4.
| 4.
| Bump version numbers in config.xml and in errorreport.js (is hardcoded there).
| Delete the integration and desktop branches and create it again based on master.
Push all this changes using the release issue number.
| Team Lead
| Integration Lead
|-
|-
| 5.
| 5.
| Update from master (git fetch moodlehq; git merge moodlehq/master master)
| Bump version numbers in the following files in the integration branch: config.xml (version), package.json (version), moodle.config.json (versionname) appending a -dev to indicate that is a development version).
Execute gulp to build all the files
| Integration Lead
| Integration Lead
|-
|-
| 6.
| 6.
| Copy the code of the latest version to the moodlemobile-phonegapbuild repo
| Unfreeze Cordova plugins and Javascript libraries versions (node modules).
Execute gulp to build all the files
| Developer
| Integration Lead
|-
|-
| 7.
| 7.
| Bump version numbers in /config.xml
| Check that the [https://cloud.docker.com/u/moodlehq/repository/docker/moodlehq/moodleapp/general Docker image] for the new version was successfully built.
| Integration Lead
| Integration Lead
|-
|-
| 8.
| 8.
| Rebase for iOs and Android (all the commits that apply the specific styles, includes the errorreport.js library etc.. will be applied)
| Update of the [https://moodle.org/plugins/view.php?id=997 local_moodlemobileapp] plugin (as final release) in moodle.org/plugins.
| Integration Lead
| Developer
|-
| 9.
| Create two different builds (one for ios and another one for android branch) in Phonegap Build using the Development certificate for iOs and not using any certificate for Android
And '''Start testing'''
| All the team
|}
|}


== The release day ==
== See also ==
* [[Moodle App Release Notes]]
[[Category:Processes]]
[[Category:Mobile]]
{{DISPLAYTITLE:Moodle app release process}}

Latest revision as of 13:03, 14 July 2022

Important:

This content of this page has been updated and migrated to the new Moodle Developer Resources. The information contained on the page should no longer be seen up-to-date.

Why not view this page on the new site and help us to migrate more content to the new site!

Two weeks before (Code freeze)

# Task Responsibility
1. Create an issue in the tracker for the release, like: MOBILE-1248 Integration Lead
2. Force an update of the local_moodlemobileapp plugin (as release candidate) with new strings in moodle.org/plugins (only for Moodle version 2.6). Dev
3. Ask someone from sites or community team to review the new English strings. Community or Sites team
4. Announce in the moodletranslation forums the new strings available: https://lang.moodle.org/mod/forum/view.php?id=5. This will allow translators to add the new strings during the days prior to the release. Integration Lead
5. Add the release notes in the release issue created (search for the release_notes tag). Ask someone from the documentation team or Martin to review the release notes. Integration Lead
6. Contact the marketing team announcing the new release and highlights. Integration Lead
7. Add new QA tests to the “Testing cases” document. New QA tests should be labeled with qa_test_required. Remove that label once are added to the document. Tester
8. Run npm audit to ensure all the dependencies are OK. Developer
9. Freeze Cordova plugins and Javascript libraries versions (node modules) in the integration branch. Developer
10. Start testing Tester

The release day

# Task Responsibility
1. Fix the version name in integration/config.xml, integration/package.json and integration:src/config.json (remove the -dev). Integration Lead
2. Integrate the integration branch onto the master one. Integration Lead
3. Do some testing with the production builds before sending the application to the stores (overall testing to see that nothing is broken because of the branch merge done in step 2):
  • 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. Send the applications to the stores for review. Integration Lead
5. Create a TAG/Release in github (moodlehq/moodleapp) with the version number. Integration Lead
6. Mark the issue and the version as released in the tracker. Integration Lead
7. Update release notes Moodle_Mobile_Release_Notes . Integration Lead

The following days

# Task Responsibility
1. Social media announcements (Forum and Twitter). All the team & Marketing team
2. Post in moodle.org/news. Team Lead
3. 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
4. Delete the integration and desktop branches and create it again based on master. Team Lead
5. Bump version numbers in the following files in the integration branch: config.xml (version), package.json (version), moodle.config.json (versionname) appending a -dev to indicate that is a development version). Integration Lead
6. Unfreeze Cordova plugins and Javascript libraries versions (node modules). Developer
7. Check that the Docker image for the new version was successfully built. Integration Lead
8. Update of the local_moodlemobileapp plugin (as final release) in moodle.org/plugins. Developer

See also