Python 3 est l'avenir de Python, il est largement disponible sur les environnements sur lesquels Mopidy est déployé, et je suis très intéressé de pouvoir utiliser asyncio, qui nécessite Python 3.3+. Rien en dehors du projet Mopidy ne nous empêche de passer à Python 3.
C'est le bogue principal pour suivre notre chemin vers l'exécution de Mopidy sur Python 3.
from __future__ import unicode_literals
partout et marquez les chaînes binaires avec b'foo'
.2to3
.Hé, j'aimerais aider avec la migration de Python 3, quelque chose en particulier est en cours ? je ne veux marcher sur les pieds de personne
J'ai lancé une branche sur jodal/feature/py3-compat où j'ai :
Je n'y ai pas touché depuis novembre, sauf que j'ai rebasé la branche sur Mopidy 2.0.0 il y a quelques jours. L'état actuel est que j'ai corrigé environ 1000 tests, avec environ 240 restants.
Le plan à venir est de :
ok, je vais sortir de cette branche et essayer de corriger tous les tests que je peux
Salut les gars, des nouvelles sur ce problème ?
Il reste 3 ans et demi pour ça 😉
Y a-t-il des mises à jour à ce sujet ?
Le portage vers Python 3 est ma tâche personnelle la plus prioritaire lorsque je travaille sur Mopidy, le problème est que j'ai été très occupé par le travail au cours de la dernière année.
Mon plan actuel, dans l'ordre approximatif, est de :
Comme vous pouvez le voir, quelques tâches doivent être effectuées avant de commencer le portage lui-même. Cela dit, le plus gros travail est déjà terminé : réécriture de pyspotify pour travailler sur Python 3 (deux ans de mon temps libre ont été passés ici) et portage de Mopidy vers GStreamer 1.x (un congé de paternité de temps libre passé ici).
Je vais y arriver, mais ça prend du temps. Si les gens veulent aider, je pense que le plus utile serait d'aider les extensions de port vers Python 3 dès que Mopidy prend en charge 2+3.
Merci pour la mise à jour, @jodal.
Je pense que c'est une bonne idée de passer à Python3.
Je suis nouveau dans mopidy et n'y ai jamais contribué, pensez-vous que je
peut vous aider avec quelque chose?
El mié., 22 mars. de 2017 à 07:08, Frederick Gnodtke <
[email protected]> inscription :
Merci pour la mise à jour, @jodal https://github.com/jodal .
-
Vous recevez ceci parce que vous êtes abonné à ce fil.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/mopidy/mopidy/issues/779#issuecomment-288352544 , ou couper le son
le fil
https://github.com/notifications/unsubscribe-auth/AHQMO8UqLNKzfVQZAZJ3Pnjx2N7MsHg4ks5roPMEgaJpZM4CMq8p
.
Toute aide au projet qui libère une partie du fardeau de la maintenance aide à atteindre les grands objectifs épineux comme Python 3, car elle libère le temps des mainteneurs pour travailler eux-mêmes sur les problèmes plus importants ou pour effectuer une révision de code appropriée sur des contributions plus importantes, ce qui peut être assez épuisant et chronophage. Deux exemples principaux sont d'aider d'autres utilisateurs à déboguer leurs problèmes et à reproduire les bogues possibles, à minimiser les étapes nécessaires à la reproduction et à documenter les résultats dans les problèmes.
@jodal Où pouvons-nous voir votre travail avec python3 ?
Cordialement
@jodal la branche py3-compat que vous avez mentionnée semble un peu... abandonnée. Y a-t-il un nouveau quelque part ?
J'envisage d'écrire une extension et je préférerais creuser dans certains bogues py3 dans une branche mpidy instable plutôt que de me souvenir des solutions de contournement py2 désagréables.
Quel est le statut à ce sujet ? existe-t-il une version de mopidy qui peut être utilisée avec python3 ?
La dépendance pylast abandonnera bientôt la prise en charge de l'ancien Python 2 : https://github.com/pylast/pylast/issues/265
Salut,
Actuellement, je maintiens pylast dans Debian. J'ai l'intention de télécharger la dernière version ([1]) qui ne prend plus en charge Python 2.7
Je prévois de publier cette version fin février, si mopidy utilise toujours Python 2 ne sera pas inclus
dans la prochaine version de Debian, ce qui pourrait être dommage car mpidy est un logiciel incroyable :smiley:
Y a-t-il une branche officielle où cela se passe? Je suis prêt à aider cela à se produire
Salutations
@jodal Les extensions sont-elles le bloqueur ici ? Si tel est le cas, je suggérerais d'ouvrir un problème pour chaque extension et de les référencer ici pour en garder une trace. Si vous pouvez donner des instructions dans le numéro sur les changements susceptibles d'être nécessaires, alors les gens qui ne sont pas si familiers avec Python (comme moi) pourraient, espérons-le, toujours aider.
PS Je suis heureux d'aider avec les extensions que j'utilise (GMusic, Iris, Podcast, Scrobbler, Spotify), je ne sais pas trop quoi faire pour le moment.
Salut les gens, quelqu'un peut-il clarifier le statut de l'adaptation à python3? Avons-nous une estimation de la date de sortie de la première version de python3 ? Merci.
Je suis toujours déterminé à porter Mopidy sur Python 3. Je ne laisserai pas Mopidy mourir avec Python 2.
La plupart du travail pour nous déplacer vers Python 3 a été effectué il y a des années en s'assurant que toutes nos dépendances fonctionnent sur Python 3:
Comme vous pouvez probablement le lire entre les lignes de la longue histoire de ce problème et de l'état du suivi des problèmes, ce projet et l'open source en général n'ont pas été ma priorité absolue depuis que je suis passé d'une grande entreprise à une startup il y a trois ans.
Cependant, je commence lentement à reprendre mes projets open source. J'essaie de me concentrer sur un projet à la fois et de l'expédier avant d'entreprendre le suivant. Jusqu'à présent, Mopidy.js et Mopidy-MPRIS ont reçu un amour et des soins tendres. Actuellement, je travaille sur une nouvelle version de Pykka , qui, entre autres petites améliorations, réduira considérablement le temps de démarrage de nombreuses configurations de Mopidy.
Une fois Pykka 2 expédié, mon objectif principal est de déplacer Mopidy vers Python 3.
Je ne donnerai aucune estimation de temps pour quand ce travail sera terminé, car ce serait simplement me mettre en échec. Tout dépend beaucoup de facteurs externes et de motivation.
Quant à aider, je ne vois pas qu'il y ait beaucoup de nouveaux contributeurs peuvent faire pour aider de manière significative l'effort directement. Je ne suis toujours pas revenu à travailler sur l'open source à une cadence prévisible et régulière, donc les revues de relations publiques deviendraient rapidement démotivantes pour les deux parties. Comme mentionné précédemment dans ce numéro, toute aide visant à réduire la charge d'entretien général est toujours utile de manière indirecte.
Quant aux autres développeurs principaux, je suis sûr qu'ils pourraient vous aider, mais nous avons tous nos priorités et nos projets. Je n'attendrai pas notre temps et notre motivation pour tous s'aligner. S'ils se joignent à moi une fois que j'ai commencé correctement sur Mopidy 3, ce serait bien, mais je n'ai aucune attente.
En mettant toutes mes divagations sur la vie et tout de côté, ce n'est ni une tâche gigantesque ni une tâche que je ne connais pas. Il s'agit principalement de terminer les autres tâches en cours afin que cela puisse devenir l'objectif principal pendant un certain temps.
Depuis que j'ai écrit le dernier plan ici en mars 2017, l'adoption de Python 3 est allée si loin que je ne vois plus l'intérêt de passer progressivement de Python 2 uniquement via 2+3 à Python 3 uniquement. Mopidy 2.x nous a assez bien servi pendant trois ans et sera un endroit stable et stable pour laisser ceux qui sont bloqués sur Python 2 pour une raison quelconque.
Ainsi, en révisant le plan à partir de mars 2017, j'imagine un processus comme celui-ci :
pip install mopidy
, mais permet d'exécuter pip install --pre mopidy
pour installer la pré-version pour tester les extensions portées.Comme il y a cinq mois, je suppose qu'il est temps de mettre à jour ce problème. La version Pykka dont j'ai parlé la dernière fois a été expédiée sous le nom de Pykka 2.0 il y a six semaines. Depuis, j'ai recommencé à travailler sur Mopidy :
release-2.2
.develop
qui deviendra Mopidy 3.0, la plupart des éléments obsolètes ont été supprimés.La prochaine étape pour moi est probablement :
Y a-t-il quelque chose que je puisse faire pour aider à faire fonctionner soit le noyau mpidy, soit le plugin mopidy-soundcloud avec python3 ?
Merci pour votre travail jusqu'à présent @jodal !
Je me demande, comment sommes-nous censés installer les documents lors de l'utilisation de la version Python 3 de Sphinx pour les construire (demander à des fins d'emballage) ?
J'avais l'habitude de faire make -C docs SPHINXBUILD=sphinx-build-2 man
mais en changeant cela pour sphinx-build-3
juste des erreurs :
make: Entering directory '/home/builder/aports/community/mopidy/src/Mopidy-3.0.0a1/docs'
sphinx-build-3 -b man -d _build/doctrees . _build/man
Running Sphinx v1.8.4
Configuration error:
The configuration file (or one of the modules it imports) called sys.exit()
Cela se produit à la fois sur 2.2.3 et 3.0.0a1. Ou cette partie n'est-elle tout simplement pas encore portée ?
Étant donné que la v3 rompra de toute façon la compatibilité descendante et que python2 sera en fin de vie en janvier, y a-t-il une raison de conserver la compatibilité python2 dans la v3 ?
@tmccombs a dit :
Étant donné que la v3 rompra de toute façon la compatibilité descendante et que python2 sera en fin de vie en janvier, y a-t-il une raison de conserver la compatibilité python2 dans la v3 ?
Non, nous ne prévoyons pas de conserver la compatibilité Python 2 dans Mopidy 3.
Je me cite à partir de février :
Depuis que j'ai écrit le dernier plan ici en mars 2017, l'adoption de Python 3 est allée si loin que je ne vois plus l'intérêt de passer progressivement de Python 2 uniquement via 2+3 à Python 3 uniquement. Mopidy 2.x nous a assez bien servi pendant trois ans et sera un endroit stable et stable pour laisser ceux qui sont bloqués sur Python 2 pour une raison quelconque.
@PureTryOut a dit :
Cela se produit à la fois sur 2.2.3 et 3.0.0a1. Ou cette partie n'est-elle tout simplement pas encore portée ?
Aucun de Mopidy n'a encore été porté sur Python 3. Nous venons de faire d'autres simplifications et de supprimer des éléments obsolètes pour faciliter la transition. Une fois le portage effectué, nous créerons la documentation avec Sphinx exécuté sur Python 3.
Puis-je vous conseiller de vous assurer que la prochaine version (2.4.0 ?) est compatible avec Python 3 ? La plupart des distributions travaillent à se débarrasser de leurs packages Python 2. Dans mon cas, Alpine Linux abandonne Python 2 d'ici la prochaine version (3.11, fin janvier de l'année prochaine), ce qui signifie que Mopidy sera supprimé des référentiels s'il n'est pas compatible avec Python 3 d'ici là.
Mopidy 3.0 sera compatible avec Python 3. Le plan est de le sortir avant la fin de l'année.
Salut @jodal , je pourrais avoir des cycles de rechange dans les semaines à venir pour aider avec certaines fonctionnalités de Python 3. Soit dans mopidy directement, soit dans les extensions. Avez-vous des problèmes particuliers à résoudre ?
Salut @zubieta !
Nous avons récemment fusionné une configuration de test qui exécute avec succès environ 10 % de la suite de tests sur Python 3. Il y a quelques PR qui seront bientôt fusionnés, ce qui augmentera ce chiffre à environ 20 %. Veuillez vérifier quels PR sont déjà ouverts, afin de ne pas dupliquer de travail, et consultez la description de #1809 pour un guide étape par étape sur la façon de porter quelques modules supplémentaires et leurs tests.
Les extensions suivront dès que le noyau Mopidy s'exécutera sur Python 3.
Je pense qu'il est temps de faire une mise à jour sur Mopidy et Python 3...
Chacun des tests 2016 de la suite de tests de Mopidy s'exécute désormais à la fois sur Python 2.7 et Python 3.7. Tout ce travail est fusionné dans la branche develop
. Un grand merci à @kingosticks pour son aide dans l'effort de portage !
Je viens de publier la branche develop
en l'état vers PyPI en tant que Mopidy 3.0.0a2 . Il peut être installé avec :
python3.7 -m pip install --pre mopidy
Cette version n'a fait l'objet d'aucun test approfondi, à part avoir une suite de tests réussie, répondre à quelques requêtes via MPD et HTTP et lire une poignée de fichiers MP3.
Mopidy 3.0.0a2 sera probablement la seule version de Mopidy à prendre en charge à la fois Python 2 et 3. Nous commencerons rapidement à supprimer la prise en charge de Python 2.7 et à faire de Mopidy une base de code Python plus propre et plus moderne.
Le plan vers une version finale est approximativement le suivant :
En parallèle de la marche vers la 3.0 finale, nous avons besoin d'aide avec le reste de l'écosystème de 122 packages sur PyPI trouvés en recherchant "mopidy".
Pour chaque extension qui vous intéresse :
76 commits, 204 fichiers modifiés, 9832 insertions(+), 9612 suppressions(-) plus tard, nous avons une autre pré-version : Mopidy 3.0.0a3 est maintenant sur PyPI. Il peut être installé avec :
python3 -m pip install --pre mopidy
Nouveau depuis 3.0.0a2 :
mopidy.compat
disparu.# encoding: utf-8
commentaires from __future__ ...
importations de object
ont disparu..encode()
et .decode()
n'incluent plus d'argument explicite "utf-8"
.black
. :coeur noir:isort
sont maintenant configurés et peuvent être utilisés pour nettoyer les importations en cas de besoin.mock
est remplacé par unittest.mock
.assert
, ce qui signifie une meilleure lisibilité et de meilleurs messages d'erreur.%
et .format()
sont remplacées par des chaînes de caractères f.setup.py
a été minimisé et remplacé par un déclaratif setup.cfg
.tox.ini
, dev-requirements.txt
et docs/requirements.txt
sont toutes remplacées par des "extras" dans setup.cfg
. Cela signifie que les dépendances de développement sont maintenant installées avec python3 -m pip install -e ".[dev]"
.La route à suivre ressemble toujours à ce que j'ai rédigé dans le commentaire précédent.
En ce qui concerne le noyau Mopidy, je pense que nous avons terminé ici.
Le reste du chemin vers la finale de Mopidy 3.0 est suivi dans le jalon v3.0 :
https://github.com/mopidy/mopidy/milestone/55
Le portage des extensions clés vers Python 3 est suivi sur ce tableau de projet :
https://github.com/orgs/mopidy/projects/2
Si vous testez Mopidy sur Python 3 dans un proche avenir, veuillez ouvrir des problèmes pour tous les problèmes que vous rencontrez !
Commentaire le plus utile
Je suis toujours déterminé à porter Mopidy sur Python 3. Je ne laisserai pas Mopidy mourir avec Python 2.
Histoire
La plupart du travail pour nous déplacer vers Python 3 a été effectué il y a des années en s'assurant que toutes nos dépendances fonctionnent sur Python 3:
Comme vous pouvez probablement le lire entre les lignes de la longue histoire de ce problème et de l'état du suivi des problèmes, ce projet et l'open source en général n'ont pas été ma priorité absolue depuis que je suis passé d'une grande entreprise à une startup il y a trois ans.
Cependant, je commence lentement à reprendre mes projets open source. J'essaie de me concentrer sur un projet à la fois et de l'expédier avant d'entreprendre le suivant. Jusqu'à présent, Mopidy.js et Mopidy-MPRIS ont reçu un amour et des soins tendres. Actuellement, je travaille sur une nouvelle version de Pykka , qui, entre autres petites améliorations, réduira considérablement le temps de démarrage de nombreuses configurations de Mopidy.
Suivant
Une fois Pykka 2 expédié, mon objectif principal est de déplacer Mopidy vers Python 3.
Je ne donnerai aucune estimation de temps pour quand ce travail sera terminé, car ce serait simplement me mettre en échec. Tout dépend beaucoup de facteurs externes et de motivation.
Quant à aider, je ne vois pas qu'il y ait beaucoup de nouveaux contributeurs peuvent faire pour aider de manière significative l'effort directement. Je ne suis toujours pas revenu à travailler sur l'open source à une cadence prévisible et régulière, donc les revues de relations publiques deviendraient rapidement démotivantes pour les deux parties. Comme mentionné précédemment dans ce numéro, toute aide visant à réduire la charge d'entretien général est toujours utile de manière indirecte.
Quant aux autres développeurs principaux, je suis sûr qu'ils pourraient vous aider, mais nous avons tous nos priorités et nos projets. Je n'attendrai pas notre temps et notre motivation pour tous s'aligner. S'ils se joignent à moi une fois que j'ai commencé correctement sur Mopidy 3, ce serait bien, mais je n'ai aucune attente.
En mettant toutes mes divagations sur la vie et tout de côté, ce n'est ni une tâche gigantesque ni une tâche que je ne connais pas. Il s'agit principalement de terminer les autres tâches en cours afin que cela puisse devenir l'objectif principal pendant un certain temps.
Mopidy 3
Depuis que j'ai écrit le dernier plan ici en mars 2017, l'adoption de Python 3 est allée si loin que je ne vois plus l'intérêt de passer progressivement de Python 2 uniquement via 2+3 à Python 3 uniquement. Mopidy 2.x nous a assez bien servi pendant trois ans et sera un endroit stable et stable pour laisser ceux qui sont bloqués sur Python 2 pour une raison quelconque.
Ainsi, en révisant le plan à partir de mars 2017, j'imagine un processus comme celui-ci :
pip install mopidy
, mais permet d'exécuterpip install --pre mopidy
pour installer la pré-version pour tester les extensions portées.