Core 4.3 : Test ready!

Hello,

l’alpha v4.3 vient d’être publiée !

Cette v4.3 se veut plus orientée sur l’optimisation du code, et devrait avoir un cycle plus court.

L’objectif global est de ne pas avoir de régression, et de ne pas générer de modification coté plugins.

Un gros travail a été fait coté font-end, non pas sur l’UI cette fois ci mais sous le capot :

  • Presque toutes les variables et fonctions des pages du Core ont été isolées dans un namespace : ça permet de ne pas recréer toutes les fonctions si on revient sur la page, d’isoler les variables et fonctions par page donc pas de collision possible, çà rend le code beaucoup plus lisible puisqu’on sait quelle fonction ou variable vient et va où, et çà aide énormément le debuggage (un console du namespace et on voit tout).

  • Le risque ? Aller trop loin avec certaines variables du Core (jeedom_langage devient jeeFrontEnd.language, etc) potentiellement utilisée par les plugins. Les fonctions des pages du Core, elles, ne devraient pas être utilisées par des plugins donc çà ne devrait pas avoir d’impact.

Les premiers tests portent sur ces variables:

jeeFrontEnd = {
  __description: 'Global object where each Core page register its own functions and variable in its sub-object name.',
  jeedom_firstUse: '',
  language: '',
  userProfils: {},
  planEditOption: {state: false, snap: false, grid: false, gridSize: false, highlight: true},
  //loadPage history:
  PREVIOUS_PAGE: null,
  PREVIOUS_LOCATION: null,
  NO_POPSTAT: false,
  modifyWithoutSave: false,
  //@index.php
  serverDatetime: null,
  clientServerDiffDatetime: null,
  serverDatetime: null,
  serverTZoffsetMin: null,
}

On aura donc besoin des devs de plugins pour s’assurer que tout se comporte bien.

La 4.2 introduit déjà le namespace jeedomUtils{} mais on a du conserver les anciennes fonctions pour le support des plugins : https://github.com/jeedom/core/blob/alpha/desktop/common/js/utils.js#L1424

Donc on essaye d’améliorer le code mais sans tout casser :eyes:

  • Coté bêta-testeurs, on va avoir besoin de vous. En effet, l’isolation des js du Core a pu casser n’importe quelle fonction derrière n’importe quel bouton de l’interface. L’impact sur le fonctionnement de Jeedom est négligeable puisqu’il ne s’agit que de l’interface, mais testez un maximum de choses et remontez les soucis avec un maximum d’information (page, bouton, devrait faire … mais fait …) dans un message par soucis avec le tag v4_3.

  • Il y a autre chose en préparation et qu’il faudra tester ensuite, on communiquera dessus quand ce sera prêt.

  • Le changelog

7 « J'aime »

Hello, donc pour l’instant il n’y a que les variables ? Ça serait bien de lister au fur et à mesure exactement ce qui est migré dans le namespace pour que les dev puissent vérifier via recherche s’ils utilisent ceux ci et les modifier.

Comment est-il prévu qu’un plugin fonctionne sur le 4.0 et sur la 4.3 en même temps du coup ?

Comme dit concernant les variables elles sont listées dans le message.

Pour les fonctions, toutes ont été migrées. Mais attention on parle des fonctions du front-end, celles définit sur les pages du Core, pas les fonctions jeedom. utils etc.

Exemple ici : https://github.com/jeedom/core/blob/alpha/desktop/js/dashboard.js#L20

Comme les plugins ne sont pas sensés loader les js dans desktop/js çà ne devrait pas poser de problème.

Concernant les 4.0/4.1 pour l’instant çà ne devrait rien changer, çà passera deprecated puis obsolete progressivement, comme les fonctions migré dans jeedomUtils en 4.2.

Dans l’absolu un dev de plugin ne devrait rien avoir à modifier avec cette 4.3. Donc si soucis, remontez le et on adaptera.

1 « J'aime »

Je pose ça là car je ne pense pas faire de sujet Teasing 4.3, pas grand chose coté interface.

ca date du dev en Janvier, donc pas de trad etc, mais c’est deux nouveautés de la 4.3 coté user.

sc_contextMenuProps

object_contextMenuProps

:beers:

7 « J'aime »

Merci c’est dans ma VM alpha :wink:

1 « J'aime »

Hello,

ça en est où du coup @kiboost ? c’est pas que je n’ai pas envie mais il va falloir me motiver parce que c’est déja compliqué pour le profane de passer de 4.1.28 à 4.2 sur la prod … jeelink inclus sur 4 jeedom en prod

Nouvel outil en alpha 4.3, à tester !

:warning: Y’a certainement des bugs donc BACKUP avant vos tests !

replacer

:upside_down_face:

3 « J'aime »

Hello @kiboost, j’ai une erreur 500 pour ma part, tu veut que je détail ici ou sur v4.3 Discord ?

Crée un message dans ce salon, genre mass replace erreur blabla, tag 4.3 :pray:t3:

Avec un max d’info log etc …

1 « J'aime »

@kiboost putain mais cet outil est magnifique ! bravo et super vraiment

1 « J'aime »

Merci. Je pense que ça va servir en effet :grinning_face_with_smiling_eyes:
N’hésite pas à tester, a priori on est pas mal !
Migrer openzwave vers zwavejs va être bcp plus simple et rapide :beers:

J’avais zappé ça en Février, çà risque de passer inaperçu. Je viens de l’ajouter au changelog :sneezing_face:

155760161-43bc7ac6-004e-4c9b-b9f3-12bdff26d83e

Ctrl+Click sur les champs éditables des blocs/actions

9 « J'aime »