Compilation des extensions

Bonjour à tous,
J’ai rencontré des problèmes lors de la compilation d’extensions (.extdef) avec SCENARIbuilder. J’ai réussi à m’en sortir, mais je voudrais vous faire part de mon expérience car je ne pense pas que le comportement du logiciel soit souhaitable.
Version de SCENARIbuilder : 5.0.0.07 RC
Version des sources du conducteur pédagogique Opale : 3.8.11 (je n’en suis plus certain, enfin la dernière quoi).
Ce que j’ai fait : j’ai modifié quelques fichiers dans aurora/pres pour changer un peu l’affichage des images (voir mon topic précédent). J’ai généré le pack pour mon OpalePerso, puis celui pour l’extension du conducteur pédagogique.
Je vois déjà un premier (petit) problème : pourquoi dois-je générer une extension perso alors que tout ce que j’ai fait dans celle-ci, c’est changer le nom, le code et le numéro de version pour qu’elle soit repérée comme compatible par mon modèle documentaire perso ? Ne pourrait-on pas envisager, en plus de ce système, un principe de déclaration explicite d’extensions compatibles dans le .wspdef du modèle, à l’aide des codes et des numéros de version ? (Pardon si c’est déjà le cas, je n’ai pas trouvé comment faire) Cela éviterait de devoir recompiler toutes les extensions derrière.
Ensuite, et c’est là le principal problème que j’ai rencontré, j’ai eu beaucoup de mal à compiler avec succès le .extdef de l’extension Aurora Print. En fait, si j’ai bien compris, il faut fermer l’atelier et SCENARIbuilder entre chaque compilation d’un .extdef Exemple : compilation de extEmeraude.extdef > Succès, compilation de opaleExtScenario dans la foulée > échec. L’inverse est vrai également.
Donc, puisque pour compiler genAuroraPrint.extdef il faut déjà avoir compilé extEmeraude.extdef, pour réussir il faut compiler d’abord ce dernier, fermer l’atelier puis SCENARIbuilder, tout rouvrir et compiler le genAuroraPrint.extdef Ça ne me paraît pas tip-top. J’imagine que ça vient peut-être de ma configuration spécifique, sinon je pense que plusieurs personnes auraient déjà remonté le problème.
Le message d’erreur (c’est toujours le même, modulo le nom de l’extension) :

Traces de 'Test du modèle' pour l'item '/scenario/dist/opaleExtScenario.extdef'

--- User details ---
Générateur: gen_testModel - Test du modèle
Item racine: /scenario/dist/opaleExtScenario.extdef


--- Admin details ---
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/locale/intl.css" type="text/css"?>
<parsererror xmlns="http://www.mozilla.org/newlayout/xml/parsererror.xml">Erreur d'analyse XML : aucun élément trouvé
Emplacement : http://127.0.0.1:8165/s/u/pub/ConducteurPerso/scenario/dist/opaleExtScenario.extdef/testModel/meta/~Traces.xml
Numéro de ligne 1, Colonne 1 :<sourcetext>
^</sourcetext></parsererror>

--- Js stack ---
cbLoadLog@chrome://scenariwsp/content/widgets/genBox/genBox.xbl.xml:815:11
CallbackWrapper.prototype.handleEvent@chrome://scenariwsp/content/commons/servers/HttpDataProvider.jsm:445:27


--- App context ---
timestamp: 2/9/2020 10:42:29
userAgent: Mozilla/5.0 (X11; Linux x86_64; rv:42.0) Gecko/20100101 bd.5.0/5.0.007
coreVersion: 5.0.007
brandShortName: SCENARIbuilder
appVersion: 5.0.007
appBuildId: 202007201349
appDevelopmentStage: rc

Merci d’avance pour vos réponses.

Bonjour,

Pour le premier point, en général deux modèles documentaires sont très différents au niveau structure, allant jusqu’aux namespaces et donc avoir une extension compatible avec deux modèles est presque impossible au niveau conceptuel, vous êtes dans un cas particulier.

Vous avez modifié le générateur « Diaporama Aurora » qui est pointé (et donc utilisé) par :

  1. le modèle « Opale »
  2. l’extension « Opale - Conducteur pédagogique »

Actuellement une extension n’est pas capable se savoir qu’un générateur qu’il utilise est déjà présent dans le modèle parent, il est donc dupliqué est intégré dans l’extension. Il est donc hélas nécessaire dans votre contexte de compiler des nouvelles versions du modèle et de l’extension.

Si vous êtes en train de créer votre propre Opale et que vous avez besoin systématiquement de plusieurs extensions vous pouvez aussi soit :

  • les ajouter tous à un seul packmake pour génrer un wsppack unique contenant tout ce dont vous avez besoin (ce qui vous permet ensuite d’activer ou pas une extension au cas par cas, atelier par atelier).
  • modifier directement votre wspdef pour y inclure 100% des éléments apportés par les différentes extensions pour produire un seul gros modèle consolidé.

En ce qui concerne votre 2nd problème lors de la compilation de packMakes, je ne comprends pas exactement comment vous arrivez à ce bug, jamais encore rencontré.

  • « il faut fermer l’atelier et SCENARIbuilder entre chaque compilation d’un .extdef » => certainement pas, ce serait insupportable !
  • « puisque pour compiler genAuroraPrint.extdef il faut déjà avoir compilé extEmeraude.extdef » => pas compris pourquoi vous affirmer cela

Vous êtes manifestement sous Linux, Vous utilisez quelle distribution ? Comment avez-vous installé SCENARIbuilder ?
Si vous êtes sous Debian / Ubuntu et que SCENARIbuilder est installé en deb depuis le repos de l’asso SCENARI, pouvez-vous retester en lancant préalablement SCENARIbuilder en ligne de commande ? Ceci permet d’avoir directement les logs et exceptions Java éventuels dans le terminal, car le message d’erreur que vous avez remonté n’est pas suffisant pour comprendre.

Bonjour,
Merci pour ces précisions concernant mon premier point. Je pense que je vais m’orienter vers la solution du packmake unique, qui me semble a priori la plus simple à mettre en œuvre. Je ne pense pas réaliser mon « propre Opale » : il s’agira de modifier un ou deux comportements qui ne me conviennent pas.
Concernant mon deuxième point, lorsque je dis « si j’ai bien compris », je veux dire, si j’ai bien compris comment (dys)fonctionnait SCENARIbuilder sur ma machine. :slight_smile: Je me doute bien que ce n’est pas le comportement attendu. Si j’affirme (ou plutôt suppose) qu’il faut compiler extEmeraude.extdef avant de compiler genAuroraPrint.extdef, c’est d’abord parce que la compilation de ce dernier échoue (même juste après le lancement de SCENARIbuilder) sauf si extEmeraude.extdef a été compilé avec le même numéro de version (en tout cas, j’ai donné le même numéro de version à tout ce que je compilais, mais je ne suis pas certain que ce soit ce qui rend mes extensions compatibles avec mon modèle) et parce que extEmeraude.extdef est appelé dans genAuroraPrint.extdef par un sm:applyOnExtDef

Vous êtes manifestement sous Linux, Vous utilisez quelle distribution ? Comment avez-vous installé SCENARIbuilder ?

Tout à fait. Je suis sous Kubuntu 19.10 J’ai installé SCENARIbuilder par les dépôts de Scenari, ajoutés à mon sources.list, comme vous le supposez.

J’ai fait ce que vous m’avez demandé : j’ai lancé SCENARIbuilder en ligne de commande. Puis, j’ai lancé successivement la compilation de extEmeraude.extdef (ok) puis celle de genAuroraPrint.extdef (échec). Pour être sûr, je vous copie l’ensemble du log depuis le lancement de l’application.

melchi@bureau:~$ scenaribuilder5.0 

(bd.5.0:7482): Gtk-WARNING **: 22:49:44.998: Impossible de trouver le moteur de thème dans module_path : « adwaita »

(bd.5.0:7482): Gtk-WARNING **: 22:49:45.003: Impossible de trouver le moteur de thème dans module_path : « adwaita »
2020-09-03 22:49:45.900:INFO::main: Logging initialized @264ms to eu.scenari.jetty.util.log.StdErrLog
2020-09-03 22:49:46.083:INFO:esjs.Server:main: jetty-9.4.z-SNAPSHOT; built: unknown; git: unknown; jvm 11.0.7+10-post-Ubuntu-2ubuntu219.10
1--- Info : Thu Sep 03 22:49:46 CEST 2020[293] (main) ---
OpenDocument editor found by env. var. 'PATH' in: /usr/lib/libreoffice/program


2020-09-03 22:49:46.477:INFO:esjs.Server:main: jetty-9.4.z-SNAPSHOT; built: unknown; git: unknown; jvm 11.0.7+10-post-Ubuntu-2ubuntu219.10
2020-09-03 22:49:46.493:INFO:esjs.AbstractConnector:main: Started ServerConnector@4f9a2c08{HTTP/1.1,[http/1.1]}{127.0.0.1:8166}
2020-09-03 22:49:46.494:INFO:esjs.Server:main: Started @870ms
2020-09-03 22:49:46.561:INFO:esjsh.ContextHandler:main: Started e.s.j.s.ServletContextHandler@6f0b0a5e{/,null,AVAILABLE}
2020-09-03 22:49:46.563:INFO:esjs.AbstractConnector:main: Started ServerConnector@1e6d1014{HTTP/1.1,[http/1.1]}{127.0.0.1:8165}
2020-09-03 22:49:46.563:INFO:esjs.Server:main: Started @939ms

** (bd.5.0:7482): WARNING **: 22:50:07.457: Invalid borders specified for theme pixmap:
        /usr/share/themes/Breeze/gtk-2.0/../assets/line-h.png,
borders don't fit within the image
1--- Info : Thu Sep 03 22:50:45 CEST 2020[235] - chain/ (ForkJoinPool-1-worker-3) ---
Build parentWspDef forced


1--- Info : Thu Sep 03 22:50:59 CEST 2020[786] - chain/ (ForkJoinPool-1-worker-3) ---
dev-core files provider : scbd


SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
2020-09-03 22:51:01.256:INFO:esjs.session:ForkJoinPool-1-worker-3: DefaultSessionIdManager workerName=node0
2020-09-03 22:51:01.256:INFO:esjs.session:ForkJoinPool-1-worker-3: No SessionScavenger set, using defaults
2020-09-03 22:51:01.257:INFO:esjs.session:ForkJoinPool-1-worker-3: node0 Scavenging every 600000ms
2020-09-03 22:51:01.266:INFO:esjsh.ContextHandler:ForkJoinPool-1-worker-3: Started e.s.j.w.WebAppContext@5a591012{/ConducteurPerso/OpaleExtEmeraudePerso/coreSrv,file:///home/melchi/SCbuilder5.0/ConducteurPerso/~gen/emeraude/extEmeraude.extdef/testModel/portal/servers/coreSrv/,AVAILABLE}{/home/melchi/SCbuilder5.0/ConducteurPerso/~gen/emeraude/extEmeraude.extdef/testModel/portal/servers/coreSrv}
2020-09-03 22:51:01.275:INFO:esjsh.ContextHandler:ForkJoinPool-1-worker-3: Started e.s.j.w.WebAppContext@3dec619e{/ConducteurPerso/OpaleExtEmeraudePerso/st,file:///home/melchi/SCbuilder5.0/ConducteurPerso/~gen/emeraude/extEmeraude.extdef/testModel/portal/servers/st/,AVAILABLE}{/home/melchi/SCbuilder5.0/ConducteurPerso/~gen/emeraude/extEmeraude.extdef/testModel/portal/servers/st}
2020-09-03 22:51:01.283:INFO:esjsh.ContextHandler:ForkJoinPool-1-worker-3: Started e.s.j.w.WebAppContext@6a6c8ece{/ConducteurPerso/OpaleExtEmeraudePerso/_testing_,file:///home/melchi/SCbuilder5.0/ConducteurPerso/~gen/emeraude/extEmeraude.extdef/testModel/portal/servers/_testing_/,AVAILABLE}{/home/melchi/SCbuilder5.0/ConducteurPerso/~gen/emeraude/extEmeraude.extdef/testModel/portal/servers/_testing_}
2020-09-03 22:51:01.372:INFO:esjsh.ContextHandler:ForkJoinPool-1-worker-3: Started e.s.j.w.WebAppContext@faf2622{/ConducteurPerso/OpaleExtEmeraudePerso/xTestSrv,file:///home/melchi/SCbuilder5.0/ConducteurPerso/~gen/emeraude/extEmeraude.extdef/testModel/portal/servers/xTestSrv/,AVAILABLE}{/home/melchi/SCbuilder5.0/ConducteurPerso/~gen/emeraude/extEmeraude.extdef/testModel/portal/servers/xTestSrv}
2020-09-03 22:51:28.462:INFO:esjsh.ContextHandler:ForkJoinPool-1-worker-3: Started e.s.j.w.WebAppContext@43d037b6{/ConducteurPerso/OpaleGenAuroraPrintPerso/coreSrv,file:///home/melchi/SCbuilder5.0/ConducteurPerso/~gen/aurora/genAuroraPrint.extdef/testModel/portal/servers/coreSrv/,AVAILABLE}{/home/melchi/SCbuilder5.0/ConducteurPerso/~gen/aurora/genAuroraPrint.extdef/testModel/portal/servers/coreSrv}
2020-09-03 22:51:28.470:INFO:esjsh.ContextHandler:ForkJoinPool-1-worker-3: Started e.s.j.w.WebAppContext@52ee1980{/ConducteurPerso/OpaleGenAuroraPrintPerso/st,file:///home/melchi/SCbuilder5.0/ConducteurPerso/~gen/aurora/genAuroraPrint.extdef/testModel/portal/servers/st/,AVAILABLE}{/home/melchi/SCbuilder5.0/ConducteurPerso/~gen/aurora/genAuroraPrint.extdef/testModel/portal/servers/st}
2020-09-03 22:51:28.478:INFO:esjsh.ContextHandler:ForkJoinPool-1-worker-3: Started e.s.j.w.WebAppContext@b729d61{/ConducteurPerso/OpaleGenAuroraPrintPerso/_testing_,file:///home/melchi/SCbuilder5.0/ConducteurPerso/~gen/aurora/genAuroraPrint.extdef/testModel/portal/servers/_testing_/,AVAILABLE}{/home/melchi/SCbuilder5.0/ConducteurPerso/~gen/aurora/genAuroraPrint.extdef/testModel/portal/servers/_testing_}
2020-09-03 22:51:28.549:INFO:esjsh.ContextHandler:ForkJoinPool-1-worker-3: Started e.s.j.w.WebAppContext@6bc73abc{/ConducteurPerso/OpaleGenAuroraPrintPerso/xTestSrv,file:///home/melchi/SCbuilder5.0/ConducteurPerso/~gen/aurora/genAuroraPrint.extdef/testModel/portal/servers/xTestSrv/,AVAILABLE}{/home/melchi/SCbuilder5.0/ConducteurPerso/~gen/aurora/genAuroraPrint.extdef/testModel/portal/servers/xTestSrv}

J’espère que cela pourra vous aider. Merci encore.

Bonsoir,

Excusez-moi je n’avais pas percuté que vous êtes en train de TESTER les extdef, pas de les compiler en wsppack depuis un packmake.

Cette possibilité est nouveau en SCENARI 5 et visiblement il y a des petits problèmes. On creuse.

Bonjour,
Je n’avais pas conscience qu’il s’agissait d’un simple test, puisque je cliquais sur l’onglet Compilation puis sur le bouton Compiler. Peut-être serait-il bon de revoir ces intitulés un peu trompeurs.

Bonjour Melchisedech,
Qq éléments de réponse :

Failed lors des compilations successives des extEmeraude.extdef

Effectivement, on avait un problème qui traînait sur cette fonction, c’est corrigé. Merci de nous l’avoir signalé !
Si vous voulez tester sans attendre la prochaine release, vous pouvez utiliser une compilation automatique : https://builds.kelis.fr/view/Scenari_Main/job/SCbuilder-5.0/

Je n’avais pas conscience qu’il s’agissait d’un simple test, puisque je cliquais sur l’onglet Compilation puis sur le bouton Compiler. Peut-être serait-il bon de revoir ces intitulés un peu trompeurs.

Le titre du bloc de génération est « Test de l’atelier », dans un titre de « tab » qui est « Test ». Ça donne quand même déjà une bonne idée de ce qu’on est en train de faire :slight_smile:

image

Si j’affirme (ou plutôt suppose) qu’il faut compiler extEmeraude.extdef avant de compiler genAuroraPrint.extdef…

Juste pour préciser : chaque compilation des extdef/wspdef est complètement autonome, et ne dépend en rien des compilations réalisées ou pas sur les autres extdef/wspdef

Cdt,
Antoine
Kelis

En complément, pour optimiser les temps de compilation lorsque vous travaillez sur une extension (.extdef), vous pouvez décocher les cases « WspDef parent » et « Portail chain » tant que le modèle parent reste inchangé.

Merci à tous pour vos réponses et vos conseils. :slight_smile: