Skip to content

Commit

Permalink
Merge pull request #1176 from moodlemobile/app-docs
Browse files Browse the repository at this point in the history
Moodle App 4.5.0 doc updates
  • Loading branch information
jleyva authored Nov 5, 2024
2 parents b2b8a2b + 39360c8 commit 68ac3b8
Show file tree
Hide file tree
Showing 6 changed files with 111 additions and 13 deletions.
5 changes: 5 additions & 0 deletions general/app/customisation/remote-themes.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,11 @@ html {
}
```

#### Moodle site theme

Starting on Moodle App 4.4 you can restrict CSS rules to a specific site theme. So, when accessing to your site, the app will retrieve the name of the site theme and will add a class to HTML tag following the next pattern:
`theme-site-MYTHEME` and you can use this selector to filter your rules.

#### Application theme

The application uses a light theme by default, but it adds the `dark` class to the `html` element when it is using a dark theme:
Expand Down
4 changes: 4 additions & 0 deletions general/app/upgrading/plugins-upgrade-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ Depending on which version of the app you're upgrading from, you'll need to go t

Other than the changes outlined in this document, there may be smaller API changes that aren't highlighted here. Make sure to check the [upgrade.txt](https://github.com/moodlehq/moodleapp/blob/latest/upgrade.txt) file for an exhaustive list with all the changes.

## 4.4 to 4.5

The Ionic version has been upgraded to v8 (from v7), make sure to check the relevant upgrade guides for [v8](https://ionicframework.com/docs/updating/8-0). In particular, the legacy syntax to declare input labels that was deprecated on Ionic7 now has been removed.

## 4.3 to 4.4

Starting with this release, the changes listed in [upgrade.txt](https://github.com/moodlehq/moodleapp/blob/latest/upgrade.txt) will only document breaking changes for APIs exposed to site plugins. Internal changes will no longer be documented. Make sure to check out the file to learn about the changes in this version.
Expand Down
6 changes: 5 additions & 1 deletion general/app/upgrading/remote-themes-upgrade-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ body.moodle-app-4-0 {
}
```

You can use these classes to target specific major and patch versions as well, so for example version 4.1.0 ships with `moodleapp-4`, `moodleapp-4-1`, and `moodleapp-4-1-0` classes. You can also use ionic versions to filter styles, such as `ionic3` or `ionic5`.
You can use these classes to target specific major and patch versions as well, so for example version 4.1.0 ships with `moodleapp-4`, `moodleapp-4-1`, and `moodleapp-4-1-0` classes. You can also use ionic versions to filter styles, such as `ionic5` or `ionic8`.

:::caution
Notice that mode and version classes moved from the `body` tag to the `html` tag in version 4.1. Learn more about this when [upgrading from 4.0 to 4.1](#40-to-41).
Expand All @@ -42,6 +42,10 @@ You can follow the same process that is documented in the [Moodle App Remote The

Make sure to read it in order to understand how to style your application for newer versions of the app. If you're upgrading your styles, it is likely that the documentation has been updated since you read it. So we recommend taking a look even if you're already familiar with Remote Themes.

## 4.4 to 4.5

Ionic version has been upgraded to v8 (from v7). This shouldn't have any direct impact on remote themes, but please verify that they continue to function correctly.

## 4.3 to 4.4

Ionic version has been upgraded to v7 (from v5). This shouldn't have any direct impact in remote themes; but make sure that they are still working properly.
Expand Down
2 changes: 2 additions & 0 deletions general/app_releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ tags:

| **Version name** | **Date** |
|---|---|
| [Moodle App 4.5.0](./app_releases/v4/v4.5.0) | 31 October 2024 |
| [Moodle App 4.4.1](./app_releases/v4/v4.4.1) | 9 July 2024 |
| [Moodle App 4.4.0](./app_releases/v4/v4.4.0) | 28 June 2024 |
| [Moodle App 4.3.0](./app_releases/v4/v4.3.0) | 10 November 2023 |
Expand All @@ -22,6 +23,7 @@ tags:

- From 4.0.0 to 4.3.0 it was based on Ionic 5 version.
- On 4.4.0 the app was based on Ionic 7 version.
- On 4.5.0 the app was based on Ionic 8 version.

## Moodle App 3.x

Expand Down
80 changes: 80 additions & 0 deletions general/app_releases/v4/v4.5.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: Moodle App 4.5.0 release notes
sidebar_label: Moodle App 4.5.0
tags:
- Moodle App
- Release notes
---

Release date: 31 October 2024

## New features and improvements

- Enhanced course page design and navigation
- Added support for course sub-sections
- Offline blog entry management is now supported
- Added ability to manage user private files

## For developers

- The app now uses Ionic 8

## Complete list of issues

### Task

- [MOBILE-4594](https://tracker.moodle.org/browse/MOBILE-4594) - Upgrade to Ionic 8

### New feature

- [MOBILE-4598](https://tracker.moodle.org/browse/MOBILE-4598) - Support some of the features included in the Bootstrap 5 bridge
- [MOBILE-4641](https://tracker.moodle.org/browse/MOBILE-4641) - Support custom site default home pages

### Improvement

- [MOBILE-2256](https://tracker.moodle.org/browse/MOBILE-2256) - Delete files in private files area
- [MOBILE-4070](https://tracker.moodle.org/browse/MOBILE-4070) - Add file looks not very good when the info for allowing submission file types is enabled
- [MOBILE-4337](https://tracker.moodle.org/browse/MOBILE-4337) - Decide whether to ignore editor libraries in H5P
- [MOBILE-4389](https://tracker.moodle.org/browse/MOBILE-4389) - Improve how course navigation works for users after re-accessing a course
- [MOBILE-4442](https://tracker.moodle.org/browse/MOBILE-4442) - Course hierarchy re-design
- [MOBILE-4482](https://tracker.moodle.org/browse/MOBILE-4482) - App should avoid downloading and re-uploading files when editing forum post and glossary entries
- [MOBILE-4547](https://tracker.moodle.org/browse/MOBILE-4547) - Blog offline support (create, edit and delete)
- [MOBILE-4574](https://tracker.moodle.org/browse/MOBILE-4574) - Support links to badges by hash
- [MOBILE-4581](https://tracker.moodle.org/browse/MOBILE-4581) - Outgoing links to particular pages of the site should enforce the current app language
- [MOBILE-4587](https://tracker.moodle.org/browse/MOBILE-4587) - Drag-drop questions: Allow answer to have filtered content (Mathjax, Multilang ...)
- [MOBILE-4597](https://tracker.moodle.org/browse/MOBILE-4597) - Send PullRequests to plugins to adapt their HTML to Ionic 7
- [MOBILE-4612](https://tracker.moodle.org/browse/MOBILE-4612) - Analyze and apply Angular 11-17 new features to the app
- [MOBILE-4627](https://tracker.moodle.org/browse/MOBILE-4627) - Download files for mod_page and mod_book in background
- [MOBILE-4628](https://tracker.moodle.org/browse/MOBILE-4628) - Accessibility: download button alt text
- [MOBILE-4631](https://tracker.moodle.org/browse/MOBILE-4631) - Hide the login form in the app when is hidden in LMS
- [MOBILE-4632](https://tracker.moodle.org/browse/MOBILE-4632) - Load styles on angular fake component
- [MOBILE-4636](https://tracker.moodle.org/browse/MOBILE-4636) - Adapt course page, sections area, design to LMS 4.5
- [MOBILE-4638](https://tracker.moodle.org/browse/MOBILE-4638) - Review Font Awesome 6 icons to ensure LMS and app matches
- [MOBILE-4639](https://tracker.moodle.org/browse/MOBILE-4639) - Support links to badge class page
- [MOBILE-4640](https://tracker.moodle.org/browse/MOBILE-4640) - Reduce re-download files when we don't know the time modified (embedded files)
- [MOBILE-4660](https://tracker.moodle.org/browse/MOBILE-4660) - Add subsection support on download manager

### Bug

- [MOBILE-3893](https://tracker.moodle.org/browse/MOBILE-3893) - Assignment: student can't remove submissions in app
- [MOBILE-4359](https://tracker.moodle.org/browse/MOBILE-4359) - App killed: push notifications open the app but not the expected page
- [MOBILE-4475](https://tracker.moodle.org/browse/MOBILE-4475) - Ipad full screen of Youtube Video does not function
- [MOBILE-4505](https://tracker.moodle.org/browse/MOBILE-4505) - Two information icons for single activity course format courses
- [MOBILE-4580](https://tracker.moodle.org/browse/MOBILE-4580) - Use the new section id parameter in core_course_get_courses_by_field to detect the course when handling links to course/section.php
- [MOBILE-4591](https://tracker.moodle.org/browse/MOBILE-4591) - Changing language leaves strings from the previous language (Object.assign)
- [MOBILE-4601](https://tracker.moodle.org/browse/MOBILE-4601) - iOS: Playing a local big video file reloads the app
- [MOBILE-4602](https://tracker.moodle.org/browse/MOBILE-4602) - Custom URL scheme links and mailto/tel/etc links don't work in InAppBrowser in IOS
- [MOBILE-4606](https://tracker.moodle.org/browse/MOBILE-4606) - Remote themes are not loaded in reconnect when loading a logged out site in offline
- [MOBILE-4608](https://tracker.moodle.org/browse/MOBILE-4608) - Download errors generated by the Cordova FileTransfer plugin might content full Moodle LMS pages breaking the UI
- [MOBILE-4619](https://tracker.moodle.org/browse/MOBILE-4619) - Site styles during login are not reset when back
- [MOBILE-4623](https://tracker.moodle.org/browse/MOBILE-4623) - IMSCP and glossary don't open new pages when using single activity course format
- [MOBILE-4630](https://tracker.moodle.org/browse/MOBILE-4630) - Some course contents like pages and books are always downloaded in the language indicated in the LMS profile instead of the one selected in the app
- [MOBILE-4633](https://tracker.moodle.org/browse/MOBILE-4633) - Exception displayed when accessing messaging or notification preferences with disabled capability
- [MOBILE-4642](https://tracker.moodle.org/browse/MOBILE-4642) - Downloading H5P activities fails with NOT_FOUND_ERR message
- [MOBILE-4649](https://tracker.moodle.org/browse/MOBILE-4649) - User menu stays loading forever if all user handlers are disabled
- [MOBILE-4650](https://tracker.moodle.org/browse/MOBILE-4650) - iOS: Push ID is only retrieved the first time the app starts
- [MOBILE-4657](https://tracker.moodle.org/browse/MOBILE-4657) - Navbar buttons are not removed when using several course option site plugins
- [MOBILE-4664](https://tracker.moodle.org/browse/MOBILE-4664) - Update H5P library to 1.27
- [MOBILE-4666](https://tracker.moodle.org/browse/MOBILE-4666) - Add spinner to lesson index while the lesson is downloading
- [MOBILE-4672](https://tracker.moodle.org/browse/MOBILE-4672) - Some MathJax equations render a "!" instead of the equation in quiz
- [MOBILE-4673](https://tracker.moodle.org/browse/MOBILE-4673) - iOS: Iframe links not treated when the app name contains a space
27 changes: 15 additions & 12 deletions general/development/process-moodleapp/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,25 @@ tags:
| 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](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), 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, and run `npm audit` to ensure all the dependencies are OK. Also check github vulnerabilities report. | Developer |
| 9. | **Start testing** | Tester |
| 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 testing** | Tester |

## The release day

| **#** | **Task** | **Responsible** |
|---|---|---|
| 1. | Set the right version number for the new Moodle LMS major release in the [site.ts](https://github.com/moodlehq/moodleapp/blob/main/src/core/classes/site.ts#L102) constant `MOODLE_RELEASES`. | Developer |
| 1. | Set the right version number for the new Moodle LMS major release in the [authenticated-site.ts](https://github.com/moodlehq/moodleapp/blob/main/src/core/classes/sites/authenticated-site.ts#L63) 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): <ul><li>Correct definitive version name displayed (and commit)</li><li>AOT compiling worked</li><li>Language strings synchronised from [lang.moodle.net](https://lang.moodle.net)</li><li>New language packs added</li></ul> | All the team |
| 4. | Send the applications to the stores for review. | Team Lead |
| 5. | Check TAG/Release have been created in github ([moodlehq/moodleapp](https://github.com/moodlehq/moodleapp/releases)) with the version number. | Developer |
| 6. | Update the `ci` branch in the behat tests plugin ([moodlehq/moodle-local_moodleappbehat](https://github.com/moodlehq/moodle-local_moodleappbehat/)) with the version number. | Developer |
| 7. | Update [upgrade guides](../../app/upgrading). | Developer |
| 8. | Open PR with release documentation updates (from [moodlemobile/devdocs:app-docs](https://github.com/moodlemobile/devdocs/tree/app-docs) to [moodle/devdocs](https://github.com/moodle/devdocs)). | Developer |
| 9. | Mark the issue and the [version](https://tracker.moodle.org/projects/MOBILE?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page) as released in the tracker. | Team Lead |
| 10. | Update [release notes](../../app_releases.md). | Team Lead |
| 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](https://github.com/moodlehq/moodleapp/releases)) with the version number. | Developer |
| 7. | Update the `ci` branch in the behat tests plugin ([moodlehq/moodle-local_moodleappbehat](https://github.com/moodlehq/moodle-local_moodleappbehat/)) with the latest behat code and features. | Developer |
| 8. | Update [upgrade guides](../../app/upgrading). | Developer |
| 9. | Open PR with release documentation updates (from [moodlemobile/devdocs:app-docs](https://github.com/moodlemobile/devdocs/tree/app-docs) to [moodle/devdocs](https://github.com/moodle/devdocs)). | Developer |
| 10. | Mark the issue and the [version](https://tracker.moodle.org/projects/MOBILE?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page) as released in the tracker. | Team Lead |
| 11. | Update [release notes](../../app_releases.md). | Team Lead |

## The following days

Expand All @@ -44,8 +46,8 @@ tags:
| 2. | Social media announcements (Forum and Twitter). | All the team & Marketing team |
| 3. | Post in [moodle.org/news](https://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](https://tracker.moodle.org/issues/?jql=project%20%3D%20MOBILE%20AND%20labels%20in%20%28docs_required%2C%20dev_docs_required%29). Review the [Mobile features wiki documentation](https://docs.moodle.org/en/Moodle_Mobile_features). | All the team |
| 5. | Update branches and tags in all repositories ([moodleapp](https://github.com/moodlehq/moodleapp), [local_moodlemobileapp](https://github.com/moodlehq/moodle-local_moodlemobileapp/), [local_moodleappbehat](https://github.com/moodlehq/moodle-local_moodleappbehat), etc.). | Developer |
| 6. | Prepare the repository for the next release: <ul><li>Bump version numbers in the following files: `config.xml`, `package.json`, `package-lock.json`, and `moodle.config.json`.</li> <li>Update the `DEFAULT_LASTVERSION` variable with the new major release on [scripts/lang_functions.sh](https://github.com/moodlehq/moodleapp/blob/main/scripts/lang_functions.sh)</li> <li>Set the version number for the next Moodle LMS major release in the [site.ts](https://github.com/moodlehq/moodleapp/blob/main/src/core/classes/site.ts#L102) constant `MOODLE_RELEASES`</li> </ul> You can see an example of doing all of that in this PR: [4.3.0 version update](https://github.com/moodlehq/moodleapp/pull/3707)| Developer |
| 5. | Update branches and tags in all repositories ([moodleapp](https://github.com/moodlehq/moodleapp), [local_moodlemobileapp](https://github.com/moodlehq/moodle-local_moodlemobileapp/), [local_moodleappbehat](https://github.com/moodlehq/moodle-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: <ul><li>Bump version numbers in the following files: `config.xml`, `package.json`, `package-lock.json`, and `moodle.config.json`.</li> <li>Set the version number for the next Moodle LMS major release in the [authenticated-site.ts](https://github.com/moodlehq/moodleapp/blob/main/src/core/classes/sites/authenticated-site.ts#L63) constant `MOODLE_RELEASES`</li> </ul> You can see an example of doing all of that in this PR: [4.3.0 version update](https://github.com/moodlehq/moodleapp/pull/3707)| Developer |
| 7. | Check that the [Docker image](https://cloud.docker.com/u/moodlehq/repository/docker/moodlehq/moodleapp/) for the new version was successfully built. | Developer |
| 8. | Update of the [`local_moodlemobileapp`](https://moodle.org/plugins/view.php?id=997) plugin (as final release) in [moodle.org/plugins](https://moodle.org/plugins). | Developer |
| 9. | Update of the [`local_moodleappbehat`](https://github.com/moodlehq/moodle-local_moodleappbehat/) plugin (as final release) in [moodle.org/plugins](https://moodle.org/plugins). | Developer |
Expand All @@ -54,6 +56,7 @@ tags:
| 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](https://ci.moodle.org). | Developer |
| 14. | Update APK in [download.moodle.org/mobile](https://download.moodle.org/mobile). | Team Lead |
| 15. | Unfreeze the dependencies in the root package.json and in cordova-plugin-moodleapp. | Developer |

## See also

Expand Down

0 comments on commit 68ac3b8

Please sign in to comment.