Mopidy: Port Mopidy ke Python 3

Dibuat pada 13 Jul 2014  ·  32Komentar  ·  Sumber: mopidy/mopidy

Python 3 adalah masa depan Python, tersedia secara luas di lingkungan tempat Mopidy digunakan, dan saya cukup tertarik untuk dapat menggunakan asyncio, yang membutuhkan Python 3.3+. Tidak ada apa pun di luar proyek Mopidy yang menghalangi kami untuk pindah ke Python 3.

Ini adalah bug utama untuk melacak cara kami menjalankan Mopidy di Python 3.

  • Dependensi:

    • [x] Pykka mendukung Python 2.6+, 3.2+.

    • [x] Tornado mendukung Python 2.6+, 3.2+.

    • GStreamer:

    • [x] #225: Ganti binding GStreamer Python dari gst-python (khusus Python 2) ke PyGI (Python 2+3). Agar semuanya berfungsi dengan PyGI, diperlukan port GStreamer dari 0,10 hingga 1,x secara bersamaan.

    • [x] #665: Jadikan mixer terpisah dari GStreamer, karena mixer dihapus di GStreamer 1.x.

    • [x] #671: Ekstrak/implementasikan kembali dukungan format playlist kami agar tidak bergantung pada GStreamer. Ada beberapa masalah dengan penerapan ulang ini selain PyGI/GStreamer 1.x.

  • Pindahkan gaya kode agar kompatibel dengan Python 2+3:

    • [x] kode pembersihan peringatan serpihan8.

    • [x] Jatuhkan dukungan untuk semua versi Python yang lebih lama dari 2.7.

    • [x] Gunakan from __future__ import unicode_literals mana-mana dan tandai string biner dengan b'foo' .

    • [x] Secara selektif memperbaiki masalah portabilitas yang diidentifikasi oleh alat 2to3 .

  • Dukungan pengembangan:

    • [x] Gunakan tox untuk menjalankan pengujian, sehingga kita dapat dengan mudah menambahkan pengujian Python 3 secara paralel dengan Python 2.7.

  • Mopidy-Spotify:

    • [x] Terapkan pengikatan libspotify baru, pyspotify 2, yang mendukung Python 2.7, 3.2+.

    • [x] Terapkan kembali Mopidy-Spotify di atas pyspotify 2.

  • Mopidy-MPRIS:

    • [x] ikatan python-indicate ke libindicate dapat diganti dengan PyGI.

    • [x] python-dbus mungkin dapat digantikan oleh GDBus melalui PyGI.

  • Ekosistem ekstensi:

    • [x] Gunakan tox sebagai test runner di cookiecutter-mopidy-ext agar siap untuk mulai menjalankan tes di Python 3 juga.

    • [ ] Kirim permintaan tarik/buat masalah untuk dukungan Python 2+3 di semua ekstensi saat Mopidy sendiri bekerja di Python 2+3.

  • [x] Setelah ~semua ekstensi mendukung Python 2+3, lepaskan dukungan Python 2 di Mopidy.
  • [x] Hapus 2isme Python.
  • [x] Nikmati fitur baru Python 3, seperti asyncio.
C-enhancement

Komentar yang paling membantu

Saya masih berkomitmen untuk mem-porting Mopidy ke Python 3. Saya tidak akan membiarkan Mopidy mati dengan Python 2.

Sejarah

Sebagian besar pekerjaan memindahkan kami ke Python 3 dilakukan bertahun-tahun yang lalu untuk memastikan bahwa semua dependensi kami berfungsi pada Python 3:

  • Pykka telah kompatibel dengan Python 3 sejak diekstraksi dari Mopidy pada tahun 2011.
  • pyspotify 2.x adalah penulisan ulang penuh untuk mendapatkan dukungan Python 3 dan menyelesaikan binding libspotify. Ini saja memakan waktu hampir dua tahun dari awal hingga selesai, pekerjaan yang sekarang sebagian besar batal berkat Spotify yang memecahkan sebagian besar libspotify.
  • Port Mopidy dari GStreamer 0.10/PyGObject ke GStreamer 1.x/PyGI, dirilis di Mopidy 2.0 tiga tahun lalu, adalah proyek utama cuti ayah kedua saya.

Karena Anda mungkin dapat membaca yang tersirat dari sejarah panjang masalah ini dan status pelacak masalah, proyek ini dan open source secara umum, belum menjadi prioritas utama saya sejak saya pindah dari bekerja di perusahaan besar ke startup tiga tahun yang lalu.

Namun, saya perlahan mulai mengambil proyek open source saya lagi. Saya mencoba untuk fokus pada satu proyek pada satu waktu dan mengirimkannya sebelum mengambil yang berikutnya. Sejauh ini Mopidy.js dan Mopidy-MPRIS telah menerima cinta dan perhatian yang lembut. Saat ini, saya sedang mengerjakan rilis baru Pykka , yang di antara peningkatan kecil lainnya akan mengurangi waktu startup dari banyak pengaturan Mopidy dengan faktor besar.

Selanjutnya

Setelah Pykka 2 dikirim, tujuan utama saya adalah memindahkan Mopidy ke Python 3.

Saya tidak akan memberikan perkiraan waktu kapan pekerjaan itu akan selesai, karena itu hanya akan membuat diri saya gagal. Itu semua sangat tergantung pada faktor eksternal dan motivasi.

Untuk membantu, saya tidak melihat ada banyak kontributor baru yang dapat dilakukan untuk membantu upaya secara langsung secara signifikan. Saya masih belum kembali mengerjakan open source dalam irama yang dapat diprediksi dan teratur, sehingga ulasan PR akan dengan cepat menjadi demotivasi bagi kedua belah pihak. Seperti disebutkan sebelumnya dalam masalah ini, bantuan apa pun untuk mengurangi beban pemeliharaan umum selalu membantu secara tidak langsung.

Adapun pengembang inti lainnya, saya yakin mereka akan dapat membantu, tetapi kami semua memiliki prioritas dan proyek kami. Saya tidak akan menunggu waktu dan motivasi kita untuk menyelaraskan semuanya. Jika mereka bergabung begitu saya memulai dengan benar di Mopidy 3, itu akan menyenangkan, tapi saya tidak punya harapan.

Mengesampingkan semua ocehan saya tentang kehidupan dan segalanya, ini bukan tugas besar atau tugas yang tidak saya kenal. Ini sebagian besar masalah menyelesaikan hal-hal lain yang sedang berlangsung sehingga ini bisa menjadi fokus utama untuk sementara waktu.

Mopidy 3

Sejak saya menulis rencana terakhir di sini pada bulan Maret 2017, adopsi Python 3 sudah begitu jauh sehingga saya tidak lagi melihat gunanya mengambil langkah bertahap dari Python 2 hanya melalui 2+3 ke Python 3 saja. Mopidy 2.x telah melayani kami dengan cukup baik selama tiga tahun, dan akan menjadi tempat yang baik dan stabil untuk meninggalkan mereka yang terjebak di Python 2 karena alasan apa pun.

Jadi, merevisi rencana dari Maret 2017, saya membayangkan proses seperti ini:

  • [x] Hapus semua barang usang dari Mopidy. Lihat pencapaian v3.0 untuk detail masalah.
  • [x] Port Mopidy ke Python 3.
  • [x] Buat pra-rilis ke PyPI, misalnya 3.0.0-rc1. Ini tidak akan mempengaruhi mereka yang menjalankan pip install mopidy , tetapi memungkinkan untuk menjalankan pip install --pre mopidy untuk menginstal pra-rilis untuk pengujian ekstensi porting.
  • [x] Port semua ekstensi di org Mopidy ke Python 3, dan secara opsional buat pra-rilis ke PyPI.
  • [ ] Port/bantuan port ekstensi lain ke Python 3. Bantuan diinginkan setelah kami tiba di sini.
  • [ ] Membuat rilis utama terkoordinasi dari inti Mopidy dan semua ekstensi di org Mopidy.

Semua 32 komentar

Hai, saya ingin membantu migrasi Python 3, apa saja yang sedang berlangsung? tidak ingin menginjak kaki siapa pun

Saya telah memulai cabang di jodal/feature/py3-compat tempat saya:

  • memperbarui pemeriksaan versi Python yang menghentikan Anda dari memulai Mopidy di bawah Python 3
  • memperbarui pengaturan tox.ini
  • mulai memperbaiki masalah Py3 modul demi modul, menjalankan tes di bawah Python 2 dan Python 3

Saya belum menyentuh ini sejak November, kecuali bahwa saya mengubah basis cabang di atas Mopidy 2.0.0 beberapa hari yang lalu. Status saat ini adalah saya telah memperbaiki sekitar 1000 tes, dengan sekitar 240 tersisa.

Rencana ke depan adalah:

  1. Perbaiki masalah lainnya modul demi modul.
  2. Ambil pengalaman dari memperbaiki semua masalah dan mencoba untuk mendapatkan sebanyak mungkin di Mopidy 2.x. Pendekatan modul-demi-modul saya saat ini mengubah banyak hal (misalnya mulai mengancam jalur file sebagai Unicode alih-alih byte) yang saya tidak ingin mendarat di Mopidy hingga rilis 3.0, di mana kami diizinkan untuk memecahkan banyak hal. Perbedaan can't-land-until-3.0 harus sekecil mungkin.
  3. Gunakan Mopidy dengan Python 3, temukan semua masalah yang tidak tercakup oleh tes.

ok, saya akan memotong cabang itu dan mencoba memperbaiki tes apa pun yang saya bisa

Halo teman-teman, ada berita tentang masalah ini?

3½ tahun tersisa untuk ini

Apakah ada pembaruan tentang ini?

Porting ke Python 3 adalah tugas prioritas tertinggi pribadi saya ketika mengerjakan Mopidy, masalahnya adalah saya cukup sibuk dengan pekerjaan selama setahun terakhir.

Rencana saya saat ini, dalam urutan perkiraan, adalah:

  • [x] Perbaiki rangkaian tes Mopidy-MPRIS, sehingga dapat bertahan dari perubahan yang akan datang. Ini adalah sedikit membosankan dan mil depan pintu saya.
  • [x] Hapus semua barang usang dari Mopidy dan buat rilis besar. Lihat tonggak sejarah ini untuk masalah terperinci. Ini saya nantikan.
  • [x] Pastikan semua ekstensi di organisasi Mopidy masih berfungsi setelah penghapusan, dan buat perubahan dan rilis yang diperlukan.
  • [x] Port Mopidy ke Python 2 + 3 dan buat rilis besar lainnya.
  • [ ] Port semua ekstensi di org Mopidy ke Python 3 saja dan lepaskan.
  • [ ] Port/bantuan port semua ekstensi lain ke Python 3 saja dan desakan untuk rilis.
  • [ ] Hapus dukungan Python 2 dari Mopidy itu sendiri.

Seperti yang Anda lihat, ada beberapa tugas yang harus dilakukan terlebih dahulu sebelum memulai porting itu sendiri. Yang mengatakan, bagian terbesar dari pekerjaan sudah selesai: Menulis ulang pyspotify untuk bekerja di Python 3 (dua tahun waktu luang saya dihabiskan di sini) dan porting Mopidy ke GStreamer 1.x (satu cuti ayah dari waktu luang dihabiskan di sini).

Aku akan sampai di sana, tapi butuh waktu. Jika orang ingin membantu, saya pikir yang paling membantu adalah membantu ekstensi port ke Python 3 segera setelah Mopidy mendukung 2+3.

Terima kasih atas pembaruannya, @jodal.

Saya pikir itu ide yang bagus untuk pindah ke Python3.

Saya baru di mopidy dan tidak pernah berkontribusi untuk itu, apakah Anda pikir saya?
dapat membantu Anda dengan sesuatu?

El mié., 22 de mar. de 2017 a la 07:08, Frederick Gnodtke <
[email protected]> penjelasan:

Terima kasih atas pembaruannya, @jodal https://github.com/jodal .


Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mopidy/mopidy/issues/779#issuecomment-288352544 , atau bisukan
benang
https://github.com/notifications/unsubscribe-auth/AHQMO8UqLNKzfVQZAZJ3Pnjx2N7MsHg4ks5roPMEgaJpZM4CMq8p
.

Bantuan apa pun dengan proyek yang membebaskan sebagian dari beban pemeliharaan membantu dengan tujuan berbulu besar seperti Python 3, karena membebaskan waktu dari pengelola untuk mengerjakan masalah yang lebih besar itu sendiri atau untuk melakukan tinjauan kode yang tepat pada kontribusi yang lebih besar, yang dapat berupa cukup menguras tenaga dan waktu. Dua contoh utama membantu pengguna lain dengan men-debug masalah mereka, dan untuk mereproduksi kemungkinan bug, meminimalkan langkah-langkah yang diperlukan untuk mereproduksi, dan mendokumentasikan hasil dalam masalah.

@jodal Di mana kami dapat melihat pekerjaan Anda dengan python3?

Salam

@jodal cabang py3-compat yang Anda sebutkan terlihat agak... ditinggalkan. Apakah ada yang baru di suatu tempat?
Saya sedang mempertimbangkan untuk menulis ekstensi dan saya lebih suka menggali beberapa bug py3 di cabang mopidy yang tidak stabil daripada mengingat solusi py2 yang buruk.

Ini statusnya apa? apakah ada versi mopidy yang dapat digunakan dengan python3?

Dependency pylast akan segera menghentikan dukungan untuk Legacy Python 2: https://github.com/pylast/pylast/issues/265

Hai,
Saat ini saya memelihara pylast di Debian. Saya bermaksud mengunggah versi terbaru ([1]) yang tidak lagi mendukung Python 2.7
Saya berencana untuk menerbitkan versi ini pada akhir Februari, jika mopidy masih menggunakan Python 2 tidak akan disertakan
dalam rilis Debian berikutnya yang mungkin memalukan karena mopidy adalah perangkat lunak yang luar biasa :smiley:

Apakah ada cabang resmi di mana ini terjadi? Saya bersedia membantu ini terjadi

Salam

@jodal Apakah ekstensi pemblokir di sini? Jika demikian, saya sarankan membuka masalah terhadap setiap ekstensi dan merujuknya di sini untuk melacak. Jika Anda dapat memberikan beberapa instruksi dalam masalah tentang perubahan apa yang mungkin diperlukan, maka orang-orang yang tidak begitu akrab dengan Python (seperti saya) semoga masih bisa membantu.

PS Saya senang membantu dengan ekstensi yang saya gunakan (GMusic, Iris, Podcast, Scrobbler, Spotify), saya hanya tidak tahu harus berbuat apa saat ini.

Hai teman-teman, bisakah seseorang menjelaskan status adaptasi ke python3? Apakah kami memiliki perkiraan kapan versi python3 pertama akan dirilis? Terima kasih.

Saya masih berkomitmen untuk mem-porting Mopidy ke Python 3. Saya tidak akan membiarkan Mopidy mati dengan Python 2.

Sejarah

Sebagian besar pekerjaan memindahkan kami ke Python 3 dilakukan bertahun-tahun yang lalu untuk memastikan bahwa semua dependensi kami berfungsi pada Python 3:

  • Pykka telah kompatibel dengan Python 3 sejak diekstraksi dari Mopidy pada tahun 2011.
  • pyspotify 2.x adalah penulisan ulang penuh untuk mendapatkan dukungan Python 3 dan menyelesaikan binding libspotify. Ini saja memakan waktu hampir dua tahun dari awal hingga selesai, pekerjaan yang sekarang sebagian besar batal berkat Spotify yang memecahkan sebagian besar libspotify.
  • Port Mopidy dari GStreamer 0.10/PyGObject ke GStreamer 1.x/PyGI, dirilis di Mopidy 2.0 tiga tahun lalu, adalah proyek utama cuti ayah kedua saya.

Karena Anda mungkin dapat membaca yang tersirat dari sejarah panjang masalah ini dan status pelacak masalah, proyek ini dan open source secara umum, belum menjadi prioritas utama saya sejak saya pindah dari bekerja di perusahaan besar ke startup tiga tahun yang lalu.

Namun, saya perlahan mulai mengambil proyek open source saya lagi. Saya mencoba untuk fokus pada satu proyek pada satu waktu dan mengirimkannya sebelum mengambil yang berikutnya. Sejauh ini Mopidy.js dan Mopidy-MPRIS telah menerima cinta dan perhatian yang lembut. Saat ini, saya sedang mengerjakan rilis baru Pykka , yang di antara peningkatan kecil lainnya akan mengurangi waktu startup dari banyak pengaturan Mopidy dengan faktor besar.

Selanjutnya

Setelah Pykka 2 dikirim, tujuan utama saya adalah memindahkan Mopidy ke Python 3.

Saya tidak akan memberikan perkiraan waktu kapan pekerjaan itu akan selesai, karena itu hanya akan membuat diri saya gagal. Itu semua sangat tergantung pada faktor eksternal dan motivasi.

Untuk membantu, saya tidak melihat ada banyak kontributor baru yang dapat dilakukan untuk membantu upaya secara langsung secara signifikan. Saya masih belum kembali mengerjakan open source dalam irama yang dapat diprediksi dan teratur, sehingga ulasan PR akan dengan cepat menjadi demotivasi bagi kedua belah pihak. Seperti disebutkan sebelumnya dalam masalah ini, bantuan apa pun untuk mengurangi beban pemeliharaan umum selalu membantu secara tidak langsung.

Adapun pengembang inti lainnya, saya yakin mereka akan dapat membantu, tetapi kami semua memiliki prioritas dan proyek kami. Saya tidak akan menunggu waktu dan motivasi kita untuk menyelaraskan semuanya. Jika mereka bergabung begitu saya memulai dengan benar di Mopidy 3, itu akan menyenangkan, tapi saya tidak punya harapan.

Mengesampingkan semua ocehan saya tentang kehidupan dan segalanya, ini bukan tugas besar atau tugas yang tidak saya kenal. Ini sebagian besar masalah menyelesaikan hal-hal lain yang sedang berlangsung sehingga ini bisa menjadi fokus utama untuk sementara waktu.

Mopidy 3

Sejak saya menulis rencana terakhir di sini pada bulan Maret 2017, adopsi Python 3 sudah begitu jauh sehingga saya tidak lagi melihat gunanya mengambil langkah bertahap dari Python 2 hanya melalui 2+3 ke Python 3 saja. Mopidy 2.x telah melayani kami dengan cukup baik selama tiga tahun, dan akan menjadi tempat yang baik dan stabil untuk meninggalkan mereka yang terjebak di Python 2 karena alasan apa pun.

Jadi, merevisi rencana dari Maret 2017, saya membayangkan proses seperti ini:

  • [x] Hapus semua barang usang dari Mopidy. Lihat pencapaian v3.0 untuk detail masalah.
  • [x] Port Mopidy ke Python 3.
  • [x] Buat pra-rilis ke PyPI, misalnya 3.0.0-rc1. Ini tidak akan mempengaruhi mereka yang menjalankan pip install mopidy , tetapi memungkinkan untuk menjalankan pip install --pre mopidy untuk menginstal pra-rilis untuk pengujian ekstensi porting.
  • [x] Port semua ekstensi di org Mopidy ke Python 3, dan secara opsional buat pra-rilis ke PyPI.
  • [ ] Port/bantuan port ekstensi lain ke Python 3. Bantuan diinginkan setelah kami tiba di sini.
  • [ ] Membuat rilis utama terkoordinasi dari inti Mopidy dan semua ekstensi di org Mopidy.

Karena sudah lima bulan, saya kira sudah waktunya untuk memperbarui masalah ini. Rilis Pykka yang saya bicarakan terakhir kali dikirimkan sebagai Pykka 2.0 enam minggu lalu. Sejak itu, saya mulai mengerjakan Mopidy lagi:

  • Rilis perbaikan bug 2.2.3 sudah keluar, jadi saat ini kami tidak memiliki apa pun yang belum dirilis di cabang release-2.2 .
  • Di cabang develop yang akan menjadi Mopidy 3.0 sebagian besar barang usang telah dihapus.

Selanjutnya bagi saya mungkin:

  • [x] Menyederhanakan logging (#1452)
  • [x] Putuskan dan terapkan cara menangani jalur sistem file saat berpindah dari API Python 2 berorientasi byte ke API sistem file Python 3 berorientasi teks. (Belum ada masalah melacak ini.)
  • [x] Mulai membuat test suite lulus di Python 3.

Apakah ada yang bisa saya lakukan untuk membantu membuat mopidy core, atau plugin mopidy-soundcloud berfungsi dengan python3?

Terima kasih atas kerja kerasmu selama ini @jodal!

Saya bertanya-tanya, bagaimana cara kita menginstal dokumen saat menggunakan Sphinx versi Python 3 untuk membuatnya (meminta tujuan pengemasan)?

Saya dulu melakukan make -C docs SPHINXBUILD=sphinx-build-2 man tetapi mengubahnya untuk sphinx-build-3 hanya membuat kesalahan:

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()

Ini terjadi pada 2.2.3 dan 3.0.0a1. Atau part ini belum di-porting?

Mengingat bahwa v3 akan merusak kompatibilitas mundur, dan python2 akan berakhir pada bulan Januari, apakah ada alasan untuk menjaga kompatibilitas python2 di v3?

@tmcombs berkata:

Mengingat bahwa v3 akan merusak kompatibilitas mundur, dan python2 akan berakhir pada bulan Januari, apakah ada alasan untuk menjaga kompatibilitas python2 di v3?

Tidak, kami tidak berencana untuk menjaga kompatibilitas Python 2 di Mopidy 3.

Mengutip diri saya dari Februari:

Sejak saya menulis rencana terakhir di sini pada bulan Maret 2017, adopsi Python 3 sudah begitu jauh sehingga saya tidak lagi melihat gunanya mengambil langkah bertahap dari Python 2 hanya melalui 2+3 ke Python 3 saja. Mopidy 2.x telah melayani kami dengan cukup baik selama tiga tahun, dan akan menjadi tempat yang baik dan stabil untuk meninggalkan mereka yang terjebak di Python 2 karena alasan apa pun.

@PureTryOut berkata:

Ini terjadi pada 2.2.3 dan 3.0.0a1. Atau part ini belum di-porting?

Belum ada Mopidy yang di-porting ke Python 3. Kami baru saja melakukan penyederhanaan lain dan menghapus hal-hal yang tidak digunakan lagi untuk mempermudah transisi. Setelah porting, kami akan membuat dokumen dengan Sphinx yang berjalan di Python 3.

Bisakah saya menyarankan untuk memastikan rilis berikutnya (2.4.0?) kompatibel dengan Python 3? Sebagian besar distribusi berupaya menyingkirkan paket Python 2 mereka. Untuk kasus saya, Alpine Linux menjatuhkan Python 2 pada rilis berikutnya (3.11, akhir Januari tahun depan) yang berarti Mopidy akan dihapus dari repositori jika tidak kompatibel dengan Python 3 saat itu.

Mopidy 3.0 akan kompatibel dengan Python 3. Rencananya adalah untuk meluncurkannya sebelum akhir tahun.

Hai @jodal , Saya mungkin memiliki beberapa siklus cadangan dalam beberapa minggu mendatang untuk membantu beberapa fungsionalitas Python 3. Baik di mopidy secara langsung atau di ekstensi. Apakah Anda memiliki masalah khusus untuk ditangani?

Hai @zubieta!

Kami baru-baru ini menggabungkan pengaturan pengujian yang berhasil menjalankan ~10% dari rangkaian pengujian di Python 3. Ada beberapa PR yang akan segera digabungkan yang meningkatkannya menjadi ~20%. Silakan periksa PR apa yang sudah terbuka, sehingga Anda tidak menduplikasi pekerjaan apa pun, dan lihat deskripsi #1809 untuk panduan langkah demi langkah tentang cara mem-port beberapa modul lagi dan pengujiannya.

Ekstensi akan mengikuti segera setelah inti Mopidy berjalan di Python 3.

Saya pikir sudah waktunya untuk pembaruan status di Mopidy dan Python 3 ...

Mopidy 3.0.0a2 berjalan di Python 3:tada:

Setiap tes 2016 di rangkaian tes Mopidy sekarang berjalan di Python 2.7 dan Python 3.7. Semua pekerjaan ini digabungkan dalam cabang develop . Terima kasih banyak kepada @kingosticks karena telah membantu upaya porting!

Saya baru saja merilis cabang develop apa adanya ke PyPI sebagai Mopidy 3.0.0a2 . Itu dapat diinstal dengan:

python3.7 -m pip install --pre mopidy

Rilis ini belum mengalami pengujian ekstensif, selain memiliki rangkaian pengujian yang lulus, menjawab beberapa permintaan di MPD dan HTTP, dan memainkan beberapa file MP3.

Jalan di depan :arrow_right:

Mopidy 3.0.0a2 mungkin akan menjadi satu-satunya rilis Mopidy yang pernah mendukung Python 2 dan 3. Kami akan segera mulai menghapus dukungan Python 2.7 dan membuat Mopidy menjadi basis kode Python yang lebih bersih dan modern.

Rencana menuju rilis final kira-kira sebagai berikut:

  • [x] Hapus dukungan Python 2.7 dari Mopidy dan bersihkan setelah upaya porting.
  • [x] Pastikan Python 3.8 didukung.
  • [x] Format kode sumber dengan Hitam.
  • [x] Buat rilis alfa lainnya.
  • [ ] Perbaiki masalah dalam pencapaian v3.0 .
  • [ ] Buat rilis beta .
  • [ ] Perbaiki bug yang ditemukan melalui penggunaan dan porting ekstensi.
  • [ ] Buat kandidat rilis .
  • [ ] Setelah satu set ekstensi yang cukup besar telah di-porting...
  • [ ] Rilis final Mopidy 3.0 .

Dibutuhkan bantuan :heart_eyes:

Sejalan dengan perjalanan menuju final 3.0, kami membutuhkan bantuan dengan sisa ekosistem 122 paket di PyPI yang ditemukan dengan mencari "mopidy".

Untuk setiap ekstensi yang Anda pedulikan:

  • [ ] Port ke Python >= 3.7. Jatuhkan dukungan Python 2.7.
  • [ ] Pertimbangkan untuk memasukkan modernisasi penyiapan proyek dari cookiecutter ekstensi . Saya akan segera memperbarui cookiecutter, setelah saya berhasil mem-porting beberapa ekstensi sendiri.
  • [ ] Lakukan pra-rilis port ke PyPI.
  • [ ] Setelah final Mopidy 3.0 dirilis, buat rilis final ke PyPI.

76 komit, 204 file diubah, 9832 penyisipan (+), 9612 penghapusan (-) kemudian, kami memiliki pra-rilis lain: Mopidy 3.0.0a3 sekarang ada di PyPI. Itu dapat diinstal dengan:

python3 -m pip install --pre mopidy

Baru sejak 3.0.0a2:

  • Dukungan Python 2.7 hilang, termasuk banyak kode warisan/kompatibilitas:

    • Modul mopidy.compat hilang.

    • # encoding: utf-8 komentar hilang.

    • from __future__ ... impor hilang.

    • Semua subclass dari object hilang.

    • .encode() dan .decode() tidak lagi menyertakan argumen "utf-8" eksplisit.

  • Kode sumber diformat dengan black . :hati hitam:
  • isort sekarang dikonfigurasi, dan dapat digunakan untuk membersihkan impor bila diperlukan.
  • mock diganti dengan unittest.mock .
  • metode pernyataan unittest diganti dengan pernyataan pytest assert , yang berarti keterbacaan yang lebih baik dan pesan kesalahan yang lebih baik.
  • Sebagian besar contoh % dan .format() diganti dengan f-string.
  • Semua linter berjalan di Python 3.
  • Dokumen dibuat dengan Python 3.
  • Pengujian di CI berjalan pada Python 3.8 selain Python 3.7.
  • setup.py telah diminimalkan dan diganti dengan deklaratif setup.cfg .
  • Dependensi dalam tox.ini , dev-requirements.txt , dan docs/requirements.txt semuanya digantikan oleh "ekstra" di setup.cfg . Ini berarti dependensi dev sekarang diinstal dengan python3 -m pip install -e ".[dev]" .

Jalan di depan masih terlihat seperti yang saya tulis di komentar sebelumnya.

Sehubungan dengan inti Mopidy, saya pikir kita sudah selesai di sini.

Sisa perjalanan ke final Mopidy 3.0 dilacak di tonggak sejarah v3.0:
https://github.com/mopidy/mopidy/milestone/55

Porting ekstensi kunci ke Python 3 dilacak di papan proyek ini:
https://github.com/orgs/mopidy/projects/2

Jika Anda menguji Mopidy di Python 3 dalam waktu dekat, silakan buka masalah untuk masalah apa pun yang Anda hadapi!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat