Skip to content

#1843 [Index] feat: ne pas mettre à jour un module qui demande un Saturne plus récent - #1845

Merged
nicolas-eoxia merged 1 commit into
Evarisk:developfrom
nicolas-eoxia:feat/1843-need-saturne-version
Nov 2, 2026
Merged

nicolas-eoxia merged 1 commit into
Evarisk:developfrom
nicolas-eoxia:feat/1843-need-saturne-version

Conversation

@nicolas-eoxia

@nicolas-eoxia nicolas-eoxia commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Changement

C'est le pendant de #1796 pour Saturne. La page d'accueil d'un module relance remove() puis init() quand la version du module a changé. Désormais, si le module déclare un need_saturne_version plus récent que le Saturne en place, elle ne fait ni l'un ni l'autre : elle affiche un avis, et le module reste dans son état actuel. Sans ce contrôle, init() refuserait après remove(), et le module serait désactivé dans l'entité.

La version de Saturne est lue dans son descripteur, pas dans SATURNE_VERSION, qui n'est réécrite qu'à la réactivation de Saturne. Un module qui ne déclare pas need_saturne_version n'est pas concerné.

Mécanisme complet

Les modules portent leur propre garde, car elle doit marcher justement sur un Saturne trop ancien pour connaître ce code. Chacun déclare need_saturne_version = [23, 6], et son init() refuse avant toute écriture, avec le message du cœur activateModuleDependNotSatisfied. Les PR, une par module :

Evarisk/digiboard#124, Evarisk/digiquali#2718, Evarisk/Digirisk#5667, Evarisk/dolicar#559, Eoxia/doliletter#591, Evarisk/dolimeet#985, Evarisk/DoliSIRH#766, Eoxia/DoliUP#11, Eoxia/EasyURL#212, Evarisk/gmao#74, Eoxia/priseo#91, Eoxia/reedcrm#1203

Le refus reste sûr quel que soit le Saturne. Avec un Saturne antérieur à cette PR, la page d'accueil fait encore remove() avant le refus : le module est désactivé au lieu de planter, et admin/modules.php explique ensuite pourquoi il ne se réactive pas.

Vérification

Bac à sable Dolibarr 23.0.3, avec Saturne sur cette branche et les douze modules sur leur branche :

Test Résultat
init() réel des 12 modules sur Saturne 23.2.1 les 12 refusent, avec « dépend du module « modSaturne >= 23.6 (23.2.1) » » ; CHECKSUM de llx_const, llx_menu, llx_rights_def, llx_boxes_def et llx_extrafields identiques avant et après
admin/modules.php, DoliCar sur Saturne 23.2.1 activation refusée, message affiché, module inactif
Réactivation de DoliCar et DigiBoard sur Saturne 23.6.0 OK, autant de menus qu'avant
Accueil DoliCar, version de code changée et need_saturne_version = [99, 0] avis « la version 23.1.98 demande Saturne 99.0 ou plus (version actuelle : 23.6.0) » ; version, activation, 13 menus et 6 droits inchangés

Aucune ligne dans php_error.log.

À suivre

Il faudra relever need_saturne_version à chaque release qui appelle une fonction plus récente de Saturne. Le plus sûr serait que le script de release (dev-tools) l'aligne sur la version de Saturne publiée.

Closes #1843

🤖 Generated with Claude Code

… un Saturne plus recent

Comme pour need_dolibarr_version (Evarisk#1796) : quand la version du module a
change mais que le Saturne en place est plus ancien que son
need_saturne_version, la page d'accueil n'appelle ni remove() ni init()
et affiche un avis. Sinon init() refuserait apres remove(), et le module
serait desactive dans l'entite.

La version de Saturne est lue dans son descripteur, pas dans
SATURNE_VERSION qui n'est reecrite qu'a sa reactivation. Un module qui ne
declare pas need_saturne_version n'est pas concerne.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nicolas-eoxia
nicolas-eoxia merged commit 22dc65c into Evarisk:develop Nov 2, 2026
5 checks passed
@nicolas-eoxia
nicolas-eoxia deleted the feat/1843-need-saturne-version branch November 2, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Index] Version minimale de Saturne : ne pas mettre à jour un module qui demande un Saturne plus récent

1 participant