Python 3 هو مستقبل Python ، وهو متاح على نطاق واسع في البيئات التي يعمل بها Mopidy ، وأنا مهتم جدًا بالقدرة على استخدام asyncio ، والذي يتطلب Python 3.3+. لا يوجد شيء خارج مشروع Mopidy يمنعنا من الانتقال إلى Python 3.
هذا هو الخطأ الرئيسي لتتبع طريقنا نحو تشغيل Mopidy على Python 3.
from __future__ import unicode_literals
كل مكان وقم بتمييز السلاسل الثنائية بـ b'foo'
.2to3
انتقائي.مرحبًا ، أود المساعدة في ترحيل Python 3 ، هل هناك شيء على وجه الخصوص قيد التنفيذ؟ لا تريد أن تطأ أصابع قدم أي شخص
لقد بدأت فرعًا في jodal / feature / py3-موافي حيث قمت بما يلي:
لم أتطرق إلى هذا منذ نوفمبر ، باستثناء أنني قمت بإعادة تأسيس الفرع أعلى Mopidy 2.0.0 منذ يومين. الحالة الحالية هي أنني أصلحت حوالي 1000 اختبار ، مع بقاء 240 تقريبًا.
الخطة المستقبلية هي:
حسنًا ، سأبتعد عن هذا الفرع وأحاول إصلاح أي اختبارات يمكنني القيام بها
مرحبا شباب ، أي أخبار عن هذا الموضوع؟
3 سنوات متبقية لهذا 😉
هل هناك أي تحديثات على هذا؟
يعد النقل إلى Python 3 أهم أولوياتي الشخصية عند العمل على Mopidy ، لكن المشكلة هي أنني كنت مشغولًا جدًا بالعمل خلال العام الماضي.
خطتي الحالية ، بترتيب تقريبي ، هي:
كما ترى ، هناك بعض المهام التي يجب القيام بها أولاً قبل بدء النقل نفسه. بعد قولي هذا ، تم الانتهاء بالفعل من أكبر مجموعة من الأعمال: إعادة كتابة pyspotify للعمل على Python 3 (قضيت عامين من وقت فراغي هنا) ونقل Mopidy إلى GStreamer 1.x (إجازة أبوة واحدة من وقت الفراغ قضيت هنا).
سأصل إلى هناك ، لكن الأمر يستغرق وقتًا. إذا كان الناس يريدون المساعدة ، أعتقد أن الأكثر فائدة هو مساعدة امتدادات المنافذ إلى Python 3 بمجرد أن يدعم Mopidy 2 + 3.
شكرا على التحديث ،jodal.
أعتقد أن الانتقال إلى Python3 يعد فكرة جيدة.
أنا جديد في mopidy ولم أساهم فيه أبدًا ، هل تعتقد ذلك
هل تستطيع مساعدتك بشيء؟
المي ، 22 دي مار. de 2017 a la (s) 07:08، Frederick Gnodtke <
[email protected]> escribió:
شكرا على التحديث ، jodal https://github.com/jodal .
-
أنت تتلقى هذا لأنك مشترك في هذا الموضوع.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/mopidy/mopidy/issues/779#issuecomment-288352544 ، أو كتم الصوت
الخيط
https://github.com/notifications/unsubscribe-auth/AHQMO8UqLNKzfVQZAZJ3Pnjx2N7MsHg4ks5roPMEgaJpZM4CMq8p
.
تساعد أي مساعدة في المشروع الذي يحرر بعضًا من عبء الصيانة في تحقيق الأهداف الكبيرة مثل Python 3 ، حيث إنها توفر الوقت من المشرفين إما للعمل على المشكلات الأكبر بأنفسهم أو لإجراء مراجعة مناسبة للكود على مساهمات أكبر ، والتي يمكن أن تكون مرهقة للغاية وتستغرق وقتًا طويلاً. هناك مثالان رئيسيان يساعدان المستخدمين الآخرين في تصحيح أخطاءهم ، وإعادة إنتاج الأخطاء المحتملة ، وتقليل الخطوات اللازمة لإعادة إنتاج ، وتوثيق النتائج في المشكلات.
jodal أين يمكننا أن نرى عملك مع python3؟
مع تحياتي
jodal يبدو فرع py3-موافي الذي ذكرته قليلاً ... مهجور. هل يوجد واحد جديد في مكان ما؟
أفكر في كتابة ملحق وأفضل البحث في بعض أخطاء py3 في فرع mopidy غير المستقر بدلاً من تذكر حلول py2 السيئة.
ما هو الوضع على هذا؟ هل هناك نسخة من mopidy يمكن استخدامها مع python3؟
ستعمل pylast التبعية على إسقاط دعم Python 2 القديم قريبًا: https://github.com/pylast/pylast/issues/265
أهلا،
حاليًا أحتفظ بالبلاست في دبيان. أنوي تحميل أحدث إصدار ([1]) والذي لم يعد يدعم Python 2.7
أخطط لنشر هذا الإصدار في نهاية فبراير ، إذا كان mopidy لا يزال يستخدم Python 2 ، فلن يتم تضمينه
في الإصدار التالي من دبيان ، والذي قد يكون عارًا لأن mopidy هو برنامج رائع: مبتسم:
هل هناك أي فرع رسمي حيث يحدث هذا؟ أنا على استعداد للمساعدة في حدوث ذلك
يعتبر
jodal هل الامتدادات هي مانع هنا؟ إذا كان الأمر كذلك ، فإنني أقترح فتح مشكلة مقابل كل امتداد والرجوع إليها هنا للمتابعة. إذا كان بإمكانك تقديم بعض الإرشادات في المشكلة حول التغييرات التي من المحتمل أن تكون مطلوبة ، فمن المأمول أن الأشخاص الذين ليسوا على دراية ببايثون (مثلي) يمكنهم المساعدة.
ملاحظة: يسعدني مساعدتي في الامتدادات التي أستخدمها (GMusic و Iris و Podcast و Scrobbler و Spotify) ، فأنا لا أعرف حقًا ما يجب فعله في الوقت الحالي.
مرحبًا أيها الناس ، هل يمكن لشخص ما أن يوضح حالة التكيف مع python3؟ هل لدينا أي تقديرات عن موعد إصدار أول إصدار من python3؟ شكرا.
ما زلت ملتزمًا بنقل Mopidy إلى Python 3. لن أدع Mopidy يموت مع Python 2.
تم القيام بمعظم العمل الخاص بنقلنا إلى Python 3 منذ سنوات للتأكد من أن جميع تبعياتنا تعمل على Python 3:
كما يمكنك أن تقرأ على الأرجح ما بين السطور من التاريخ الطويل لهذه المشكلة وحالة تعقب المشكلة ، لم يكن هذا المشروع والمصدر المفتوح بشكل عام على رأس أولوياتي منذ أن انتقلت من العمل في مؤسسة كبيرة إلى شركة ناشئة منذ ثلاثة أعوام.
ومع ذلك ، بدأت ببطء في التقاط مشاريعي مفتوحة المصدر مرة أخرى. أحاول التركيز على مشروع واحد في ذلك الوقت وشحنه قبل تولي المشروع التالي. حتى الآن تلقت Mopidy.js و Mopidy-MPRIS بعض الحب والرعاية. حاليًا ، أعمل على إصدار جديد من Pykka ، والذي من بين التحسينات الصغيرة الأخرى سيقلل من وقت بدء التشغيل للعديد من إعدادات Mopidy بعامل ضخم.
بمجرد شحن Pykka 2 ، فإن هدفي الأساسي هو نقل Mopidy إلى Python 3.
لن أعطي أي تقدير للوقت الذي سيكتمل فيه هذا العمل ، لأن ذلك من شأنه ببساطة أن يهيئ نفسي للفشل. كل هذا يتوقف كثيرا على العوامل الخارجية والدافع.
بالنسبة إلى المساعدة ، لا أرى أن هناك الكثير من المساهمين الجدد يمكنهم القيام به لمساعدة الجهود بشكل مباشر. ما زلت لا أعود إلى العمل على المصدر المفتوح بإيقاع منتظم ومتوقع ، لذا فإن مراجعات العلاقات العامة ستصبح محبطة لكلا الطرفين بسرعة. كما ذكرنا سابقًا في هذه المشكلة ، فإن أي مساعدة لتقليل عبء الصيانة العام تساعد دائمًا بشكل غير مباشر.
بالنسبة للمطورين الأساسيين الآخرين ، أنا متأكد من أنهم سيكونون قادرين على المساعدة ، لكن لدينا جميعًا أولوياتنا ومشاريعنا. لن أنتظر وقتنا وحافزنا للجميع. إذا انضموا بمجرد أن أبدأ بشكل صحيح في Mopidy 3 ، فسيكون ذلك رائعًا ، لكن ليس لدي أي توقعات.
إذا وضعنا كل ما عندي من تجول حول الحياة وكل شيء جانبًا ، فهذه ليست مهمة ضخمة ولا مهمة لست على دراية بها. يتعلق الأمر في الغالب بإكمال الأشياء الجارية الأخرى بحيث يمكن أن يصبح هذا هو التركيز الأساسي لفترة من الوقت.
منذ أن كتبت الخطة الأخيرة هنا في مارس 2017 ، أصبح اعتماد Python 3 حتى الآن لدرجة أنني لم أعد أرى الهدف من اتخاذ خطوات تدريجية من Python 2 فقط عبر 2 + 3 إلى Python 3 فقط. لقد خدمنا Mopidy 2.x جيدًا لمدة ثلاث سنوات ، وسيكون مكانًا جيدًا ومستقرًا لترك أولئك العالقين في Python 2 لأي سبب من الأسباب.
وبالتالي ، عند مراجعة الخطة اعتبارًا من مارس 2017 ، أتخيل عملية مثل هذه:
pip install mopidy
، لكنه يجعل من الممكن تشغيل pip install --pre mopidy
لتثبيت الإصدار التجريبي لاختبار الامتدادات المنقولة.منذ خمسة أشهر ، أعتقد أن الوقت قد حان لتحديث هذه المشكلة. تم شحن إصدار Pykka الذي تحدثت عنه آخر مرة باسم Pykka 2.0 قبل ستة أسابيع. منذ ذلك الحين ، بدأت العمل على Mopidy مرة أخرى:
release-2.2
.develop
الذي سيصبح Mopidy 3.0 ، تمت إزالة معظم الأشياء المهملة.من المحتمل أن يكون التالي بالنسبة لي هو:
هل هناك أي شيء يمكنني القيام به للمساعدة في إنشاء mopidy core أو المكوِّن الإضافي mopidy-soundcloud يعمل مع python3؟
شكرا لعملك حتى الآن @ jodal!
أنا أتساءل ، كيف يفترض بنا تثبيت المستندات عند استخدام إصدار Python 3 من Sphinx لبناءها (طلبًا لأغراض التعبئة والتغليف)؟
اعتدت أن أقوم بعمل make -C docs SPHINXBUILD=sphinx-build-2 man
ولكن تغيير ذلك بالنسبة إلى sphinx-build-3
التخلص من الأخطاء فقط:
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()
يحدث هذا في كل من 2.2.3 و 3.0.0a1. أم أن هذا الجزء لم يتم استدارته بعد؟
بالنظر إلى أن الإصدار 3 سيعطل التوافق مع الإصدارات السابقة على أي حال ، وستنتهي Python2 في يناير ، فهل هناك سبب للحفاظ على توافق python2 في الإصدار 3؟
tmccombs قال:
بالنظر إلى أن الإصدار 3 سيعطل التوافق مع الإصدارات السابقة على أي حال ، وستنتهي Python2 في يناير ، فهل هناك سبب للحفاظ على توافق python2 في الإصدار 3؟
لا ، نحن لا نخطط للحفاظ على توافق Python 2 في Mopidy 3.
نقلا عن نفسي من فبراير:
منذ أن كتبت الخطة الأخيرة هنا في مارس 2017 ، أصبح اعتماد Python 3 حتى الآن لدرجة أنني لم أعد أرى الهدف من اتخاذ خطوات تدريجية من Python 2 فقط عبر 2 + 3 إلى Python 3 فقط. لقد خدمنا Mopidy 2.x جيدًا لمدة ثلاث سنوات ، وسيكون مكانًا جيدًا ومستقرًا لترك أولئك العالقين في Python 2 لأي سبب من الأسباب.
@ قال
يحدث هذا في كل من 2.2.3 و 3.0.0a1. أم أن هذا الجزء لم يتم استدارته بعد؟
لم يتم نقل أي من Mopidy إلى Python 3 حتى الآن. لقد قمنا للتو بإجراء عمليات تبسيط أخرى وإزالة الأشياء المهملة لتسهيل عملية النقل. بمجرد قيامنا بالتنقل ، سنقوم ببناء المستندات باستخدام Sphinx الذي يعمل على Python 3.
هل يمكنني أن أنصح بالتأكد من أن الإصدار التالي (2.4.0؟) متوافق مع Python 3؟ تعمل معظم التوزيعات على التخلص من حزم Python 2. بالنسبة لحالتي ، فإن Alpine Linux يقوم بإسقاط Python 2 في الإصدار التالي (3.11 ، نهاية يناير من العام المقبل) مما يعني أنه سيتم حذف Mopidy من المستودعات إذا لم تكن متوافقة مع Python 3 بحلول ذلك الوقت.
سيكون Mopidy 3.0 متوافقًا مع Python 3. ومن المقرر إصداره قبل نهاية العام.
مرحبًا jodal ، قد يكون لدي بعض الدورات الاحتياطية في الأسابيع المقبلة للمساعدة في بعض وظائف Python 3. إما في mopidy مباشرة أو في الامتدادات. هل لديك أي قضايا معينة للتعامل معها؟
مرحباzubieta!
لقد قمنا مؤخرًا بدمج إعداد اختبار يعمل بنجاح ~ 10٪ من مجموعة الاختبار على Python 3. وهناك عدد من العلاقات العامة سيتم دمجهما قريبًا مما يزيد ذلك إلى ~ 20٪. يرجى التحقق من العلاقات العامة المفتوحة بالفعل ، حتى لا تكرر أي عمل ، واطلع على وصف # 1809 للحصول على دليل تفصيلي حول كيفية نقل عدد قليل من الوحدات النمطية واختباراتها.
ستتبع الإضافات بمجرد تشغيل Mopidy core على Python 3.
أعتقد أن الوقت قد حان لتحديث الحالة على Mopidy و Python 3 ...
تعمل الآن كل واحدة من اختبارات 2016 في مجموعة اختبار Mopidy على كل من Python 2.7 و Python 3.7. تم دمج كل هذا العمل في الفرع develop
. شكراً جزيلاً لـ kingosticks للمساعدة في جهود النقل!
لقد أصدرت للتو فرع develop
كما هو لـ PyPI كـ Mopidy 3.0.0a2 . يمكن تثبيته بـ:
python3.7 -m pip install --pre mopidy
لم يخضع هذا الإصدار لأي اختبار مكثف ، بخلاف وجود مجموعة اختبار اجتياز ، والإجابة على بعض الطلبات عبر MPD و HTTP ، وتشغيل عدد قليل من ملفات MP3.
من المحتمل أن يكون Mopidy 3.0.0a2 هو الإصدار الوحيد من Mopidy الذي يدعم كلاً من Python 2 و 3. سنبدأ على الفور في إزالة دعم Python 2.7 وجعل Mopidy قاعدة أكواد Python أنظف وأكثر حداثة.
خطة الإصدار النهائي تقريبًا كما يلي:
بالتوازي مع المسيرة نحو 3.0 النهائي ، نحتاج إلى المساعدة في بقية النظام البيئي المكون من
لكل ملحق تهتم به:
76 التزامًا ، وتغيير 204 ملفًا ، وإدخال 9832 (+) ، وحذف 9612 (-) لاحقًا ، لدينا إصدار سابق آخر: Mopidy 3.0.0a3 موجود الآن على PyPI. يمكن تثبيته بـ:
python3 -m pip install --pre mopidy
جديد منذ 3.0.0a2:
mopidy.compat
.# encoding: utf-8
.from __future__ ...
.object
..encode()
و .decode()
يشتملان على وسيطة "utf-8"
صريحة.black
. :قلب أسود:isort
الآن ، ويمكن استخدامه لتنظيف الواردات عند الحاجة.mock
بـ unittest.mock
.assert
، مما يعني إمكانية قراءة أفضل ورسائل خطأ أفضل.%
و .format()
بسلاسل f.setup.py
واستبداله بـ setup.cfg
.tox.ini
و dev-requirements.txt
و docs/requirements.txt
بـ "الإضافات" في setup.cfg
. هذا يعني أن تبعيات dev مثبتة الآن بـ python3 -m pip install -e ".[dev]"
.الطريق إلى الأمام لا يزال يبدو كما لو كنت مسودة في التعليق السابق.
فيما يتعلق بنواة Mopidy ، أعتقد أننا انتهينا هنا.
ما تبقى من الطريق إلى Mopidy 3.0 النهائي يتم تتبعه في الإصدار 3.0:
https://github.com/mopidy/mopidy/milestone/55
يتم تتبع نقل الامتدادات الرئيسية إلى Python 3 على لوحة المشروع هذه:
https://github.com/orgs/mopidy/projects/2
إذا قمت باختبار Mopidy على Python 3 في المستقبل القريب ، فيرجى فتح المشكلات الخاصة بأي مشاكل تواجهك!
التعليق الأكثر فائدة
ما زلت ملتزمًا بنقل Mopidy إلى Python 3. لن أدع Mopidy يموت مع Python 2.
تاريخ
تم القيام بمعظم العمل الخاص بنقلنا إلى Python 3 منذ سنوات للتأكد من أن جميع تبعياتنا تعمل على Python 3:
كما يمكنك أن تقرأ على الأرجح ما بين السطور من التاريخ الطويل لهذه المشكلة وحالة تعقب المشكلة ، لم يكن هذا المشروع والمصدر المفتوح بشكل عام على رأس أولوياتي منذ أن انتقلت من العمل في مؤسسة كبيرة إلى شركة ناشئة منذ ثلاثة أعوام.
ومع ذلك ، بدأت ببطء في التقاط مشاريعي مفتوحة المصدر مرة أخرى. أحاول التركيز على مشروع واحد في ذلك الوقت وشحنه قبل تولي المشروع التالي. حتى الآن تلقت Mopidy.js و Mopidy-MPRIS بعض الحب والرعاية. حاليًا ، أعمل على إصدار جديد من Pykka ، والذي من بين التحسينات الصغيرة الأخرى سيقلل من وقت بدء التشغيل للعديد من إعدادات Mopidy بعامل ضخم.
القادم
بمجرد شحن Pykka 2 ، فإن هدفي الأساسي هو نقل Mopidy إلى Python 3.
لن أعطي أي تقدير للوقت الذي سيكتمل فيه هذا العمل ، لأن ذلك من شأنه ببساطة أن يهيئ نفسي للفشل. كل هذا يتوقف كثيرا على العوامل الخارجية والدافع.
بالنسبة إلى المساعدة ، لا أرى أن هناك الكثير من المساهمين الجدد يمكنهم القيام به لمساعدة الجهود بشكل مباشر. ما زلت لا أعود إلى العمل على المصدر المفتوح بإيقاع منتظم ومتوقع ، لذا فإن مراجعات العلاقات العامة ستصبح محبطة لكلا الطرفين بسرعة. كما ذكرنا سابقًا في هذه المشكلة ، فإن أي مساعدة لتقليل عبء الصيانة العام تساعد دائمًا بشكل غير مباشر.
بالنسبة للمطورين الأساسيين الآخرين ، أنا متأكد من أنهم سيكونون قادرين على المساعدة ، لكن لدينا جميعًا أولوياتنا ومشاريعنا. لن أنتظر وقتنا وحافزنا للجميع. إذا انضموا بمجرد أن أبدأ بشكل صحيح في Mopidy 3 ، فسيكون ذلك رائعًا ، لكن ليس لدي أي توقعات.
إذا وضعنا كل ما عندي من تجول حول الحياة وكل شيء جانبًا ، فهذه ليست مهمة ضخمة ولا مهمة لست على دراية بها. يتعلق الأمر في الغالب بإكمال الأشياء الجارية الأخرى بحيث يمكن أن يصبح هذا هو التركيز الأساسي لفترة من الوقت.
موبيدي 3
منذ أن كتبت الخطة الأخيرة هنا في مارس 2017 ، أصبح اعتماد Python 3 حتى الآن لدرجة أنني لم أعد أرى الهدف من اتخاذ خطوات تدريجية من Python 2 فقط عبر 2 + 3 إلى Python 3 فقط. لقد خدمنا Mopidy 2.x جيدًا لمدة ثلاث سنوات ، وسيكون مكانًا جيدًا ومستقرًا لترك أولئك العالقين في Python 2 لأي سبب من الأسباب.
وبالتالي ، عند مراجعة الخطة اعتبارًا من مارس 2017 ، أتخيل عملية مثل هذه:
pip install mopidy
، لكنه يجعل من الممكن تشغيلpip install --pre mopidy
لتثبيت الإصدار التجريبي لاختبار الامتدادات المنقولة.