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
(42 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== 4-7 days before (when possible) ==
== 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 (only for Moodle version 2.6). Use the moodlemobile-scripts/json-to-string2.php to convert the build lang file to a valid string file.
| Force an update of the 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
|-
| 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
| Integration Lead
|-
|-
| 3.
| 6.
| Announce in the moodletranslation forums the new strings available: https://lang.moodle.org/mod/forum/view.php?id=5
| Contact the marketing team announcing the new release and highlights.
| Integration Lead
| 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.
| Freeze Cordova plugins and Javascript libraries versions (node modules) in both the Cordova project and PhoneGap Build (integration branch).
| Developer
|-
| 9.
| '''Start testing'''
| Tester
|}
|}


== 3 days before ==
== 1 day before ==


{| class="table table-striped table-bordered"
{| class="table table-striped table-bordered"
Line 31: Line 54:
| 1.
| 1.
| Backport to local_mobile (all branches) all the new required Web Services by new features.
| Backport to local_mobile (all branches) all the new required Web Services by new features.
Check if existing Web Services should be added to the local_mobile service (because they were added to the Mobile app service)
Check if existing Web Services should be added to the local_mobile service (because they were added to the Mobile app service).


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.
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
|-
| 2.
| 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
|-
| 3.
| Contact the marketing announcing the new release and highlights .
| Integration Lead
| Integration Lead
|}
|}


== 1 day before (testing day) ==
== The release day ==


{| class="table table-striped table-bordered"
{| class="table table-striped table-bordered"
Line 53: Line 68:
! style="width:12%" | Responsibility
! style="width:12%" | Responsibility
|-
|-
| 1.
| 1.  
| Create a new branch with the release tracker issue number for integrating all the version and string changes.
| Replace the master config.xml file with the integration one in the moodlemobile-phonegapbuild repository.  
| Integration Lead
| Integration Lead
|-
|-
| 2.
| 2.
| Run gulp and then auto-translate strings with the script auto-translate2.php, commiting the results
| Fix the version name in integration:src/config.json (remove the -dev) and integrate the [https://github.com/moodlehq/moodlemobile2/compare/master...integration integration branch onto the master one].
| Integration Lead
| Integration Lead
|-
|-
| 3.
| 3.
| Update language strings from AMOS using the fetch-langpacks2.sh script, commit the result
| Do some testing before sending the application to the stores (overall testing to see that nothing is broken because of the branch merge done in step 2):
| Integration Lead
* Correct definitive version name displayed
* AOT compiling worked
* Language strings synchronised from lang.moodle.net
| All the team
|-
|-
| 4.
| 4.
| Bump version numbers in config.xml, www/config.json and in www/errorreport.js (is hardcoded there).
| Send the applications to the stores for review.  
Push all this changes using the release issue number.
Then integrate the changes into the master branch.
| Integration Lead
| Integration Lead
|-
|-
| 5.
| 5.
| Switch to the master branch and update from master (git fetch moodlehq; git merge moodlehq/master master)
| Update the [https://moodle.org/plugins/view/local_mobile local mobile plugin] short description to indicate which is the latest Moodle Mobile version supported and date.
Execute gulp to build all the files (and bower install if necessary to update javascript libraries)
| Integration Lead
| Integration Lead
|-
|-
| 6.
| 6.
| Copy the code of master (after doing gulp) to the moodlemobile-phonegapbuild repo
| Create a TAG/Release in github ([https://github.com/moodlehq/moodlemobile2/releases moodlehq/moodlemobile2]) with the version number.
| Integration Lead
| Integration Lead
|-
|-
| 7.
| 7.
| Bump version numbers in /config.xml
| 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
| 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 release notes [[Moodle_Mobile_Release_Notes]] .
| Integration Lead
| Integration Lead
|-
| 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
|-
| 10.
| 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]
| All the team
|}
|}


== The release day ==
== The following days ==


{| class="table table-striped table-bordered"
{| class="table table-striped table-bordered"
Line 107: Line 113:
|-
|-
| 1.
| 1.
| Build the app for Android and iOs using the Distribution certificate. Remember to do two different builds (pointing to the ios and android branches)
| Social media announcements (Forum and Twitter).
| Integration Lead
| All the team & Marketing team
|-
|-
| 2.
| 2.
| Send the applications to the stores for review.
| Post in moodle.org/news.
| Integration Lead
| Team Lead
|-
|-
| 3.
| 3.
| Update release notes [[Moodle_Mobile_Release_Notes]] with the notes reviewed in the issue.
| 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.
| Create a TAG/Release in github ([https://github.com/moodlehq/moodlemobile2/releases moodlehq/moodlemobile2]) with the version number.
| Delete the integration and desktop branches and create it again based on master.
| Integration Lead
| Team Lead
|-
|-
| 5.
| 5.
| Update the [https://moodle.org/plugins/view/local_mobile local mobile plugin] short description to indicate which is the latest Moodle Mobile version supported and date.
| Bump version numbers in the following files in the integration branch: config.xml, src/config.json (appending a -dev to the versionname field to indicate that is a development version), package.json (including mac->bundleVersion) and desktop/assets/windows/AppXManifest.xml.
| Integration Lead
| Integration Lead
|-
|-
| 6.
| 6.
| Remove the official tag in the android and ios branches (from the [https://github.com/moodlehq/moodlemobile-phonegapbuild phonegapbuild repository])
| Bump version numbers in moodlehq/moodlemobile-phonegapbuild:integration/config.xml and push the changes.
| Integration Lead
| Integration Lead
|-
|-
| 7.
| 7.
| 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
| Unfreeze Cordova plugins and Javascript libraries versions (node modules) in both the Cordova project and PhoneGap Build (integration branch for both).
| Integration Lead
| Developer
|-
|-
| 8.
| 8.
| Social media announcements (Forum and Twitter)
| Execute the combine CSS gulp task to generate a new CSS file for the BMA designer.
| All the team & Marketing team
| Developer
|-
| 9.
| Check that the [https://cloud.docker.com/u/moodlehq/repository/docker/moodlehq/moodlemobile2/general Docker image] for the new version was successfully built.
| Integration Lead
|}
|}
[[Category:Processes]]
[[Category:Mobile]]
{{DISPLAYTITLE:Moodle app release process}}

Revision as of 09:56, 18 July 2019

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. Freeze Cordova plugins and Javascript libraries versions (node modules) in both the Cordova project and PhoneGap Build (integration branch). Developer
9. Start testing Tester

1 day before

# Task Responsibility
1. Backport to local_mobile (all branches) all the new required Web Services by new features.

Check if existing Web Services should be added to the local_mobile service (because they were added to the Mobile app service).

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

The release day

# Task Responsibility
1. Replace the master config.xml file with the integration one in the moodlemobile-phonegapbuild repository. Integration Lead
2. Fix the version name in integration:src/config.json (remove the -dev) and integrate the integration branch onto the master one. Integration Lead
3. Do some testing 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
  • AOT compiling worked
  • Language strings synchronised from lang.moodle.net
All the team
4. Send the applications to the stores for review. Integration Lead
5. Update the local mobile plugin short description to indicate which is the latest Moodle Mobile version supported and date. Integration Lead
6. Create a TAG/Release in github (moodlehq/moodlemobile2) with the version number. Integration Lead
7. Mark the issue and the version as released in the tracker. Integration Lead
8. 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, src/config.json (appending a -dev to the versionname field to indicate that is a development version), package.json (including mac->bundleVersion) and desktop/assets/windows/AppXManifest.xml. Integration Lead
6. Bump version numbers in moodlehq/moodlemobile-phonegapbuild:integration/config.xml and push the changes. Integration Lead
7. Unfreeze Cordova plugins and Javascript libraries versions (node modules) in both the Cordova project and PhoneGap Build (integration branch for both). Developer
8. Execute the combine CSS gulp task to generate a new CSS file for the BMA designer. Developer
9. Check that the Docker image for the new version was successfully built. Integration Lead