Mises à jour > OS/Package

Bonjour

Suite à un problème rencontré, je vous soumets une proposition d’amélioration :

Dans la partie « Mises à jour » section « OS/Package », il est possible de faire des mises à jour :

  • La liste complète
  • les packages OS
  • les packages Python2
  • les packages Python3

Visuel :

Pour mon cas, j’ai le module pynut3 installé dans le cadre de l’installation des dépenses du plugin officiel nut plugin-nut
Ce plugin n’est pas compatible avec les versions ultérieures :

Et suite à l’update de 12/2024, le package.json est ainsi :

{
  "pre-install": {},
  "apt": {},
  "pip3": {
    "pynut3": {
      "reinstall": true,
      "version": "1.6.2"
    }
  },
  "npm": {},
  "yarn": {},
  "plugin": {},
  "post-install": {}
}

pour limiter la version

Est-il possible / envisageable de :

  • prévoir une évolution pour que les mises à jour proposées tiennent compte de ces limites automatiquement ?
  • et/ou d’avoir une vision de ces limites indiquées dans le package.json de la totalité des plugins installés au niveau du module de mises à jour ?
  • et/ou : permettre de cocher (comme dans la partie mise à jour des plugins) des packages pour lesquels nous désactiverions la mise à jour afin de ne pas casser ?

Qu’en pensez vous ?

On conseille régulièrement de ne pas toucher à cette partie, justement car cela risque de créer plus de problème qu’autre chose.

Et les environnements virtuels permettent aussi de ne plus être lié aux packages du système principal.

Bonjour,

A mon avis, cela ne sera pas possible sans un travail énorme. En effet, c’est au niveau de l’OS qu’agit cette commande et pas au niveau des plugins (cela ne parse pas les plugins).

Ok
J’ai fait un PR permettant à minima d’ajouter la synthèse des prérequis des plugins de ce type :

Bonjour,

De ce que je constate avec Jeedom, la version prérequis d’un plugin, se met à jour avec l’installation des dépendances de celui-ci. Donc, en principe, il ne doit pas y avoir d’écart entre la version installée et la version prérequis.

Autre interrogation : une version prérequis, doit être fixée « pil poil » ou au minimum :
1.6.2 vs minimum : 1.6.2

Là, dans votre copie d’écran, cela fonctionne pour Nut, mais pas pour RFPlayer, il y a la coche dans la colonne réinstallation, mais on ne sait pas pourquoi.

On peut voir ce que cela donne avec les colonnes qui manquent ?

Bonjour Fabrice,

De ce que je constate avec Jeedom, la version prérequis d’un plugin, se met à jour avec l’installation des dépendances de celui-ci. Donc, en principe, il ne doit pas y avoir d’écart entre la version installée et la version prérequis.

De ce que j’au vu / compris : oui, la version prérequis spécifiée dans le fichier packages.json est celle installée lors de l’installation du plugin / de ses dépendances.
Donc en principe, il n’y a pas d’écart, sauf si l’utilisateur à mis à jour le paquet lors de ses opérations de maintenances, d’où le fait que je propose ce tableau : afin d’avoir une vue « de maintenance » au même endroit que là où les mises à jour sont proposées.

Autre interrogation : une version prérequis, doit être fixée « pil poil » ou au minimum :
1.6.2 vs minimum : 1.6.2

Là, dans votre copie d’écran, cela fonctionne pour Nut, mais pas pour RFPlayer, il y a la coche dans la colonne réinstallation, mais on ne sait pas pourquoi.

Dans mon exemple, le tableau a analysé tous mes plugins et traités tous les fichiers packages.json.
Cela fonctionne donc pour Nut e RFPlayer

Voici les contenus des différents packages.json :
Energy3 : le fichier existe mais est vierge - uniquement la trame :

{
  "pre-install": {
  },
  "apt": {
  },
  "pip3": {
  },
  "npm": {
  },
  "yarn": {
  },
  "plugin": {
  },
  "post-install": {
  }
}

Networks : le fichier existe mais est sans paramètres spécifiques :

{
	"apt": {
		"wakeonlan": {},
		"etherwake": {},
		"arping": {}
	}
}

RFPlayer2 : le fichier existe et contient uniquement l’information de réinstallation à true :

{
  "pip3": {
    "requests": {},
    "pyserial": {
      "reinstall": true
    },
    "pyudev": {}
  }
}

D’où la coche dans mon tableau : cela indique que le paquet est réinstallé à la mise à jour je suppose

GSH : le fichier existe mais est sans paramètres spécifiques :

{
  "apt" : {
    "nodejs" : {}
  },
  "npm" : {
    "plugins/gsh/resources/gshd" : {}
  }
}

Openvpn : le fichier existe mais est sans paramètres spécifiques :

{
  "apt" : {
    "openvpn" : {}
  }
}

Nut : le fichier existe avec les paramètres reinstall et version

{
  "pre-install": {},
  "apt": {},
  "pip3": {
    "pynut3": {
      "reinstall": true,
      "version": "1.6.2"
    }
  },
  "npm": {},
  "yarn": {},
  "plugin": {},
  "post-install": {}
}

Bien à toi,