Update dependency python to 3.14#128
Conversation
There was a problem hiding this comment.
📋 Résumé de la revue
Cette PR met à jour la version de Python utilisée dans les workflows GitHub Actions de 3.13 à 3.14. Bien que la modification soit simple, les logs de test révèlent des problèmes critiques liés à la compatibilité avec Python 3.14, notamment des dépendances manquantes (async_timeout) et des erreurs de chargement de bibliothèques (turbojpeg). Ces problèmes doivent être résolus avant la fusion.
🔍 Retour général
- ✅ Changement de version correct : La mise à jour de la version de Python dans le workflow est bien appliquée.
⚠️ Problèmes de compatibilité : Plusieurs erreurs critiques sont apparues lors des tests avec Python 3.14, notamment des dépendances manquantes et des erreurs de chargement de bibliothèques externes.- 🔧 Recommandation : Vérifier la compatibilité de toutes les dépendances avec Python 3.14 avant de fusionner cette PR.
There was a problem hiding this comment.
⚠️ Commentaires non positionnables automatiquement
.github/workflows/ai-review.yml:1
🔴 Problème critique : La mise à jour vers Python 3.14 a révélé des dépendances manquantes (async_timeout), ce qui bloque l'exécution des tests. Cette dépendance doit être ajoutée ou mise à jour pour être compatible avec Python 3.14 avant de fusionner cette PR.
- python-version: "3.13"
+ python-version: "3.14"
+ # Ajouter une étape pour installer async_timeout si nécessaire
+ # ou mettre à jour les dépendances dans requirements.txt
There was a problem hiding this comment.
📋 Résumé de la revue
Cette PR met à jour la version de Python de 3.13 à 3.14 dans les fichiers de configuration. Bien que les modifications soient mineures, des problèmes critiques liés à la compatibilité des dépendances et aux tests ont été identifiés, nécessitant une attention immédiate avant toute fusion.
🔍 Retour général
- Problème critique : Échec des tests avec des erreurs liées à des dépendances manquantes (
async_timeout) et à des problèmes de compatibilité avecturbojpeg. - Compatibilité : La mise à jour de Python peut introduire des incompatibilités avec des bibliothèques tierces non encore testées avec Python 3.14.
- Recommandation : Vérifier la compatibilité de toutes les dépendances avant de fusionner cette PR.
There was a problem hiding this comment.
⚠️ Commentaires non positionnables automatiquement
.github/workflows/ai-review.yml:1
🔴 Problème critique : La mise à jour de Python vers la version 3.14 a entraîné des erreurs de compatibilité avec des dépendances tierces comme async_timeout et turbojpeg. Ces erreurs bloquent l'exécution des tests et peuvent causer des dysfonctionnements en production. Solution : Vérifier la compatibilité de toutes les dépendances avec Python 3.14 avant de fusionner cette PR. Si des dépendances ne sont pas compatibles, il est nécessaire de les mettre à jour ou de trouver des alternatives.
setup.cfg:1
🔴 Problème critique : L'erreur ModuleNotFoundError: No module named 'async_timeout' indique que cette dépendance n'est pas installée ou n'est pas compatible avec Python 3.14. Solution : Ajouter async_timeout à la liste des dépendances dans setup.cfg ou requirements.txt avec une version compatible avec Python 3.14. Exemple :
async_timeout = >=4.0.0,<5.0.0
async_timeout = >=4.0.0,<5.0.0
setup.cfg:3
🔴 Problème critique : L'erreur RuntimeError: Unable to locate turbojpeg library automatically suggère que la bibliothèque turbojpeg n'est pas correctement installée ou configurée pour Python 3.14. Solution :
- Vérifier que
turbojpegest installé et compatible avec Python 3.14. - Si nécessaire, mettre à jour la version de
turbojpegdanssetup.cfgourequirements.txt. - Si le problème persiste, envisager d'utiliser une alternative comme
Pillowpour les opérations JPEG.
There was a problem hiding this comment.
📋 Aperçu de la revue
Cette PR met à jour Python de la version 3.13 à 3.14 et les dépendances Home Assistant associées. Les tests révèlent des problèmes critiques liés à la compatibilité des bibliothèques tierces (turbojpeg, async_timeout) avec Python 3.14, ce qui bloque l'exécution des tests. Une attention particulière doit être portée sur la résolution de ces dépendances avant la fusion.
🔍 Retour général
- Mise à jour de Python : La migration vers Python 3.14 est correctement appliquée dans les fichiers de configuration et workflows.
- Problèmes de compatibilité : Plusieurs erreurs critiques sont identifiées lors de l'exécution des tests avec Python 3.14, notamment des modules manquants (
async_timeout) et des problèmes de chargement de bibliothèques (turbojpeg). - Tests en échec : La collection des tests échoue en raison de dépendances incompatibles, ce qui nécessite une résolution immédiate.
| @@ -1,5 +1,5 @@ | |||
| # home assistant | |||
There was a problem hiding this comment.
🔴 Problème critique : La mise à jour vers Python 3.14 a introduit des incompatibilités avec des bibliothèques tierces essentielles. Les tests échouent en raison de l'absence du module async_timeout, qui n'est pas compatible avec Python 3.14. Ce problème doit être résolu avant la fusion de cette PR.
| @@ -1,5 +1,5 @@ | |||
| # home assistant | |||
There was a problem hiding this comment.
🔴 Problème critique : La mise à jour vers Python 3.14 a introduit des incompatibilités avec des bibliothèques tierces essentielles. Les tests échouent en raison de l'absence du module async_timeout, qui n'est pas compatible avec Python 3.14. Ce problème doit être résolu avant la fusion de cette PR.
| @@ -1,5 +1,5 @@ | |||
| # home assistant | |||
There was a problem hiding this comment.
🟠 Problème de compatibilité : La mise à jour de Home Assistant vers la version 2026.3.0 peut introduire des changements majeurs dans l'API ou les fonctionnalités. Il est recommandé de vérifier la documentation de Home Assistant pour s'assurer que cette version est compatible avec le reste du codebase et de mettre à jour les tests en conséquence.
| @@ -1,5 +1,5 @@ | |||
| # home assistant | |||
There was a problem hiding this comment.
🟠 Problème de compatibilité : La mise à jour de Home Assistant vers la version 2026.3.0 peut introduire des changements majeurs dans l'API ou les fonctionnalités. Il est recommandé de vérifier la documentation de Home Assistant pour s'assurer que cette version est compatible avec le reste du codebase et de mettre à jour les tests en conséquence.
There was a problem hiding this comment.
⚠️ Commentaires non positionnables automatiquement
.github/workflows/ai-review.yml:2
🔴 Problème critique : La bibliothèque turbojpeg ne parvient pas à localiser automatiquement sa dépendance dynamique sous Python 3.14. Cela entraîne une erreur RuntimeError lors de l'initialisation, ce qui bloque l'exécution des tests. Une solution consiste à spécifier manuellement le chemin vers la bibliothèque ou à mettre à jour la dépendance vers une version compatible.
custom_components/myfox/api/myfoxapi.py:27
🟡 Avertissement de dépréciation : L'utilisation de asyncio.DefaultEventLoopPolicy est marquée comme dépréciée et sera supprimée dans Python 3.16. Bien que cela ne bloque pas immédiatement l'exécution, il est recommandé de migrer vers une alternative plus moderne pour éviter des problèmes futurs.
There was a problem hiding this comment.
📋 Résumé de la revue
Cette PR met à jour la version de Python de 3.13 à 3.14 et les dépendances associées (homeassistant). Cependant, les tests révèlent des problèmes critiques liés à des dépendances manquantes (async_timeout) et à des incompatibilités avec des bibliothèques tierces (ex: turbojpeg). Ces problèmes doivent être résolus avant la fusion pour garantir la stabilité de l'application.
🔍 Retour général
- Mise à jour de Python : La version 3.14 est une avancée majeure, mais elle introduit des dépendances qui peuvent ne pas être compatibles avec l'écosystème actuel.
- Problèmes de dépendances : Les erreurs de test (
async_timeoutmanquant etturbojpeg) indiquent que les dépendances doivent être vérifiées et mises à jour. - Compatibilité des bibliothèques : Certaines bibliothèques tierces (comme
turbojpeg) peuvent nécessiter des ajustements ou des configurations supplémentaires pour fonctionner avec Python 3.14. - Tests en échec : Un test échoue en raison d'une erreur d'importation (
test_ci_env.py), ce qui suggère un problème de configuration ou de dépendance.
Recommandation : Corriger les problèmes de dépendances avant de fusionner cette PR.
| @@ -1,5 +1,5 @@ | |||
| # home assistant | |||
There was a problem hiding this comment.
🔴 Problème critique : La dépendance async_timeout est manquante et provoque une erreur d'importation dans les tests. Cela bloque l'exécution des tests et doit être résolu avant la fusion.
Solution proposée : Ajoutez async-timeout à la liste des dépendances dans requirements.txt ou requirements_tests.txt avec une version compatible avec Python 3.14.
| # home assistant | |
| async-timeout>=4.0.0 |
| @@ -1,5 +1,5 @@ | |||
| # home assistant | |||
There was a problem hiding this comment.
🔴 Problème critique : La dépendance async_timeout est manquante et provoque une erreur d'importation dans les tests. Cela bloque l'exécution des tests et doit être résolu avant la fusion.
Solution proposée : Ajoutez async-timeout à la liste des dépendances dans requirements_tests.txt avec une version compatible avec Python 3.14.
| # home assistant | |
| async-timeout>=4.0.0 |
There was a problem hiding this comment.
⚠️ Commentaires non positionnables automatiquement
.github/workflows/ai-review.yml:1
🟠 Problème de compatibilité : La bibliothèque turbojpeg ne parvient pas à localiser automatiquement la bibliothèque libturbojpeg, ce qui affecte les performances des caméras. Cela peut impacter les fonctionnalités liées aux caméras dans l'application.
Solution proposée :
- Vérifiez si une version plus récente de
turbojpegest disponible et compatible avec Python 3.14. - Si nécessaire, configurez manuellement le chemin vers
libturbojpegdans le code ou documentez cette étape pour les utilisateurs. - Ajoutez une dépendance ou une instruction pour installer
libturbojpegdans la documentation ou le fichier de configuration.
- name: Install libturbojpeg
run: sudo apt-get install -y libturbojpeg
There was a problem hiding this comment.
📋 Résumé de la revue
Cette PR met à jour la dépendance Python de la version 3.13 à 3.14, ainsi que les dépendances associées (Home Assistant et PyTurboJPEG). Bien que la mise à jour de Python soit correcte, des problèmes critiques liés à la compatibilité des dépendances et à l'exécution des tests ont été identifiés. Ces problèmes doivent être résolus avant la fusion pour éviter des dysfonctionnements en production.
🔍 Retour général
- Problèmes critiques détectés : La mise à jour de Python 3.14 a révélé des incompatibilités avec les dépendances
async_timeoutetPyTurboJPEG, entraînant des échecs de tests. - Recommandation : Vérifier la compatibilité des dépendances avec Python 3.14 et corriger les problèmes identifiés avant de fusionner.
- Points positifs : La mise à jour des versions des dépendances est correctement documentée dans les fichiers modifiés.
| @@ -1,5 +1,5 @@ | |||
| # home assistant | |||
There was a problem hiding this comment.
🔴 Problème critique : La dépendance async_timeout n'est pas compatible avec Python 3.14. Cela provoque une erreur ModuleNotFoundError lors de l'exécution des tests, ce qui bloque le processus de collecte des tests.
Solution proposée : Remplacer async_timeout par une alternative compatible avec Python 3.14, comme async-timeout (disponible dans les dépendances Home Assistant).
| # home assistant | |
| -homeassistant>=2026.3.0 | |
| +homeassistant>=2026.3.0 | |
| +async-timeout>=4.0.0 |
| @@ -1,12 +1,12 @@ | |||
| # home assistant | |||
There was a problem hiding this comment.
🔴 Problème critique : La dépendance PyTurboJPEG nécessite une bibliothèque système libturbojpeg qui n'est pas automatiquement détectée sous Python 3.14. Cela provoque une erreur RuntimeError lors de l'initialisation de la classe TurboJPEG.
Solution proposée :
- Mettre à jour
PyTurboJPEGvers une version plus récente (>=1.8.3 est déjà correct, mais une vérification supplémentaire est nécessaire). - Ajouter une documentation ou une configuration pour spécifier manuellement le chemin de la bibliothèque
libturbojpegsi nécessaire.
Exemple de correction :
# Dans le code où TurboJPEG est utilisé, ajouter une gestion explicite du chemin de la bibliothèque
try:
from turbojpeg import TurboJPEG
jpeg = TurboJPEG(lib_path="/chemin/vers/libturbojpeg.so")
except RuntimeError as e:
logger.error("Impossible de charger libturbojpeg. Les performances des snapshots de caméra seront sous-optimales.")
jpeg = None| # home assistant | |
| -PyTurboJPEG>=1.8.3 | |
| +PyTurboJPEG>=1.8.3 | |
| +# Assurez-vous que la bibliothèque libturbojpeg est installée sur le système | |
| +# Exemple de configuration manuelle si nécessaire : | |
| +# from turbojpeg import TurboJPEG | |
| +# jpeg = TurboJPEG(lib_path="/usr/lib/libturbojpeg.so") |
There was a problem hiding this comment.
⚠️ Commentaires non positionnables automatiquement
setup.cfg:1..1
🟠 Problème élevé : Le fichier setup.cfg contient une ligne modifiée (license = "GPL-3.0-or-later") qui ne semble pas liée à la mise à jour de Python. Cette modification n'est pas nécessaire et pourrait introduire des incohérences dans la configuration.
Solution proposée : Revenir à la version précédente de la ligne pour éviter des problèmes de compatibilité ou de configuration.
-license = "GPL-3.0-or-later"
+license = "GPL-3.0-or-later"
custom_components/myfox/api/myfoxapi.py:27
🟡 Problème moyen : La mise à jour de Python 3.14 peut introduire des avertissements de dépréciation, comme celui concernant asyncio.DefaultEventLoopPolicy dans le fichier custom_components/myfox/api/myfoxapi.py.
Solution proposée : Mettre à jour le code pour utiliser une alternative non dépréciée, comme asyncio.new_event_loop_policy() ou une implémentation personnalisée compatible avec Python 3.14.
class MyFoxPolicy(asyncio.DefaultEventLoopPolicy):
+class MyFoxPolicy:
+ def __new__(cls, *args, **kwargs):
+ policy = asyncio.new_event_loop_policy()
+ return policy
|
https://github.com/search?q=repo%3Ahome-assistant%2Fcore%20PyTurboJPEG&type=code |
365ba74 to
b660142
Compare
There was a problem hiding this comment.
📋 Résumé de la revue
Cette PR met à jour la version de Python utilisée dans les workflows GitHub Actions de 3.13 à 3.14. Cependant, les tests révèlent des problèmes de compatibilité avec des dépendances tierces (comme turbojpeg et async_timeout), ce qui nécessite une attention particulière avant la fusion.
🔍 Retour général
- Changement de version de Python : La mise à jour de
3.13vers3.14est correctement appliquée dans le fichier de workflow. - Problèmes de compatibilité : Les tests échouent en raison de dépendances manquantes ou non compatibles avec Python 3.14 (ex:
async_timeoutnon disponible). - Avertissements mineurs : Certains avertissements de dépréciation sont présents (ex:
asyncio.DefaultEventLoopPolicy), mais ne bloquent pas la compilation. - Recommandation : Vérifier la compatibilité des dépendances tierces avant de fusionner cette PR.
There was a problem hiding this comment.
⚠️ Commentaires non positionnables automatiquement
.github/workflows/ai-review.yml:1
🔴 Problème critique : La dépendance async_timeout n'est pas disponible pour Python 3.14. Cela bloque l'exécution des tests et peut causer des dysfonctionnements en production. Il est nécessaire de vérifier si une alternative existe ou si le code doit être adapté pour ne plus dépendre de cette bibliothèque.
Solution possible : Remplacer async_timeout par un mécanisme natif de gestion des timeouts (ex: asyncio.wait_for avec gestion explicite des exceptions).
- python-version: "3.14"
+ # Vérifier la compatibilité des dépendances avant de fusionner
+ # Exemple : async_timeout n'est pas disponible pour Python 3.14
+ # python-version: "3.14"
.github/workflows/ai-review.yml:1
🟠 Problème élevé : Le package turbojpeg rencontre des difficultés pour localiser automatiquement la bibliothèque libturbojpeg sous Python 3.14. Cela peut impacter les performances des composants liés à la caméra.
Solution possible : Spécifier manuellement le chemin vers la bibliothèque ou vérifier si une version compatible de turbojpeg est disponible pour Python 3.14.
- python-version: "3.14"
+ # Vérifier la compatibilité de turbojpeg avec Python 3.14
+ # Exemple : jpeg = TurboJPEG(lib_path='/chemin/vers/libturbojpeg.so')
+ python-version: "3.14"
This PR contains the following updates:
3.13→3.14Release Notes
actions/python-versions (python)
v3.14.6: 3.14.6Compare Source
Python 3.14.6
v3.14.5: 3.14.5Compare Source
Python 3.14.5
v3.14.4: 3.14.4Compare Source
Python 3.14.4
v3.14.3: 3.14.3Compare Source
Python 3.14.3
v3.14.2: 3.14.2Compare Source
Python 3.14.2
v3.14.1: 3.14.1Compare Source
Python 3.14.1
v3.14.0: 3.14.0Compare Source
Python 3.14.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.