Guide d'utilisation

Qui peut utiliser ce rapport

Ce rapport est principalement destiné à des développeurs ou intégrateurs de Moodle. Il n'a aucune utilité pour l'usage pédagogique.

Procédure typique de gestion des patchs

si votre intégration nécessite des patchs, Alors vous avez tout intérêt à les cataloguer. Ce rapport permet de le faire automatiquement, à partir du moment où vous maintenez une notation formelle stricte du début et de la fin d'un patch.

Dans ce qui suit, nous supposons une définition courante des motifs de début et de fin de patch, comme suit :

// PATCH : <raison>

// /PATCH

A ce moment, voici par exemple une séquence non patchée :

if ($hassiteconfig && moodle_needs_upgrading()) {
redirect($CFG->wwwroot .'/'. $CFG->admin .'/index.php');
}
if (get_home_page() != HOMEPAGE_SITE) {
// Redirect logged-in users to My Moodle overview if required
if (optional_param('setdefaulthome', false, PARAM_BOOL)) {
set_user_preference('user_home_page_preference', HOMEPAGE_SITE);

Cette séquence provient de la page d'acceuil principale. Nous souhaitons insérer entre les deux groupes d'instruction un insert permettant d'activer un déroutage vers une page “My” non standard.

if ($hassiteconfig && moodle_needs_upgrading()) {
redirect($CFG->wwwroot .'/'. $CFG->admin .'/index.php');
}
// PATCH : Special hooking for customized My dashboard
if (file_exists($CFG->dirroot.'/local/my/frontpagehook.php')) {
include($CFG->dirroot.'/local/my/frontpagehook.php');
}
// /PATCH
if (get_home_page() != HOMEPAGE_SITE) {
// Redirect logged-in users to My Moodle overview if required
if (optional_param('setdefaulthome', false, PARAM_BOOL)) {
set_user_preference('user_home_page_preference', HOMEPAGE_SITE);

Processus de réintégration

Lorsque votrez base de code contient de tels patchs marqués une mise à jour du code s'effectue suivant ce processus :

Récupérez une base de code à jour dans un répertoire à part

Scannez et listez les patchs de votre version

Un par un, ouvrez les fichiers concernés et reportez vos patchs. Dans 90% des cas, ce sera facile.

Réglez les cas particuliers

Backupez votre code original.

Remplacez par le nouveau code patché et faites les vérification de non régression.

Les cas possibles

Dans 90% des cas, le report des patchs est trivial. Moodle n'évolue pas énormément notamment entre version mineures. Il peut arriver par contre en effet que à certains moment, des tranformations plus importantes bouleversent les structures du code. Vous serez alors dans l'un des cas suivants :

Le code standard régle le problème corrigé par le patch : le patch devient obsolete et peut être résorbé.

Le code standard est fortement modifié, mais le problème est toujours là : Vous devez alors réexaminer l'intégration de votre patch.

Retour à l'index du composant