Openlibrary: Jalankan di Python 2 dan Python 3

Dibuat pada 19 Mar 2018  ·  20Komentar  ·  Sumber: internetarchive/openlibrary

Diblokir oleh: internetarchive/infogami#56, internetarchive/infogami#50

Seperti yang dibahas di #846 ada banyak kode di basis Kode Arsip Internet yang saat ini ditulis dengan Python 2 dan tidak digunakan lagi untuk Python 3.

Tautan berikut menceritakan tentang perbedaan utama dari Python 2 ke Python 3.

EDIT: Diperbarui sesuai saran @cclauss

  • [x] Dapatkan basis kode agar kompatibel dengan sintaks Python 3 (lihat __make lint__ saat dijalankan di Py3 untuk status kami)

    • [x] #1466 Perbaiki bagaimana pengecualian dimunculkan di Python 3

    • [x] #1509 Tambahkan __six__ ke persyaratan kami (saya merasa kurang halus dari __future__ yang disebutkan di bawah).

    • [x] #1517 Parameter fungsi mungkin bukan tupel eksplisit di Python 3

    • [x] #1603 Ulangi perbaikan __lambda__ yang dikembalikan dari #1466

    • [x] #1468 \N karakter salah bentuk melarikan diri di catalog/marc/load.py

    • [x] #1501 __print()__ adalah fungsi dalam Python 3 di plugins/upstream/acs4.py

    • [x] Nama tidak terdefinisi __python3 -m flake8 . --count --exclude=scripts/20 ,vendor/ --select=F821__

    • [x] PR untuk __basestring__ #1563

    • [x] PR untuk __cmp()__ #1643

    • [x] PR untuk __execfile()__ #1525

    • [x] PR untuk __file()__ #1564

    • [x] PR untuk __raw_input()__ #1526

    • [x] PR untuk __unicode__ (Ini yang rumit dan paling baik disimpan sampai yang terakhir.)



      • [x] PR untuk __xrange()__ #1524



  • [x] Perbarui dependensi kami untuk memastikan bahwa kami memiliki dukungan Python 3 (Lihat #1454 untuk beberapa petunjuk.)
  • [x] Perbaiki vendor dalam hal-hal seperti __infogami__

    • [x] __Opsi lainnya__, __Pemicu build__ di https://travis-ci.org/internetarchive/acs4_py

    • [x] internetarchive/acs4_py#7

    • [x] internetarchive/infogami#40

    • [x] internetarchive/infogami#42

    • [x] internetarchive/infogami#43

    • [x] internetarchive/infogami#56 Cherrypick aman diimpor dari #50

    • [x] internetarchive/infogami#50 Pembaruan Python 3 lainnya

    • [x] internetarchive/infogami lulus tes Travis CI di Python 3

  • [x] Lulus tes Travis dan matikan mode __allow_failures__ di Python 3
  • [ ] Tes tes tes
@cclauss 2 Work In Progress Epic

Komentar yang paling membantu

Terima kasih telah membuat masalah terpisah untuk melacak ini. Tugas ini jelas berprioritas rendah, tetapi tidak mudah, atau proyek pemula yang bagus, jadi saya telah menghapus kedua label itu.

Hal-hal seperti ini sensitif terhadap waktu, jadi posting blog acak berusia 3-4 tahun bukanlah sumber informasi yang baik. Untuk tujuan perencanaan, hal-hal yang penting adalah hal-hal seperti kapan perpustakaan yang diperlukan semuanya akan mendukung Python 3, kapan mereka akan menghentikan dukungan Python 2, seperti apa alat migrasi terbaru, dll.

TAPI, karena ini adalah prioritas rendah, kami memiliki hal-hal yang lebih penting untuk dipikirkan untuk jangka pendek.

Semua 20 komentar

Dengan risiko menyatakan yang sudah jelas, prioritas kemungkinan harus ditujukan untuk mengidentifikasi fitur-fitur Python 2 yang a) akan rusak di Python 3 dan b) digunakan di OL.

Terima kasih telah membuat masalah terpisah untuk melacak ini. Tugas ini jelas berprioritas rendah, tetapi tidak mudah, atau proyek pemula yang bagus, jadi saya telah menghapus kedua label itu.

Hal-hal seperti ini sensitif terhadap waktu, jadi posting blog acak berusia 3-4 tahun bukanlah sumber informasi yang baik. Untuk tujuan perencanaan, hal-hal yang penting adalah hal-hal seperti kapan perpustakaan yang diperlukan semuanya akan mendukung Python 3, kapan mereka akan menghentikan dukungan Python 2, seperti apa alat migrasi terbaru, dll.

TAPI, karena ini adalah prioritas rendah, kami memiliki hal-hal yang lebih penting untuk dipikirkan untuk jangka pendek.

Kesepakatan penuh dengan @tfmorris di semua lini.
Terima kasih telah mengatur masalah untuk ini, karena pada akhirnya kita harus mencari cara untuk mempertahankan infogami .

Hmm, ada "prioritas" dan kemudian ada "prioritas". Yang penting belum tentu mendesak, begitu pula sebaliknya. Saya akan mengatakan ini penting tetapi tidak mendesak. Diabaikan cukup lama pasti akan menyebabkan kerusakan.

@LeadSongDog Dengan siapa Anda tidak setuju? Apa yang ingin Anda lihat berubah vis vis prioritas?

@tfmorris Tidak benar-benar tidak setuju dengan Anda, tetapi saya mengatakan bahwa prioritas satu dimensi mengarah pada manajemen krisis. Begitu sesuatu yang sulit diberi label sebagai prioritas rendah, ia tidak dijaga atau ditutup sampai menyebabkan kerusakan dan menjadi mendesak. Lebih baik tidak memprioritaskannya sama sekali?

Ada pekerjaan Travis CI untuk melacak kemajuan kami sekarang, terima kasih kepada PR #1273

Hai, saya baru mengenal OpenLibrary, tapi sepertinya ini sesuatu yang ingin saya lakukan. Apakah Anda keberatan jika saya melanjutkan ini, meskipun lambat, meskipun ini bukan 'masalah pertama yang baik'?

CATATAN: Daftar ini dipindahkan ke bagian atas masalah ini:

Juga, saya menyarankan agar kami mengubah judul masalah ini menjadi "__Run pada Python 2 dan Python 3__" karena jelas merupakan praktik terbaik untuk memiliki basis kode yang beroperasi pada kedua _before_ menghapus dukungan Python 2. 423 hari hingga Python 2 berakhir.

@cclauss dengan izin Anda, dapatkah saya memperbarui pesan Anda di atas sekarang setelah judul telah diubah dan daftar periksa telah diperbarui? (untuk menghindari 2 daftar periksa tidak sinkron)

Selain Infogami, setiap langkah tindak lanjut tambahan yang dapat Anda rekomendasikan akan sangat dihargai :bowing_man:

Terima kasih telah menjadi kekuatan pendorong dalam mewujudkan ini!

Jangan ragu untuk melakukan pengeditan yang masuk akal bagi Anda. Mari kita fokus untuk membawa Infogami ke titik di mana ia tidak lagi menghalangi tes Travis. Fokus saya ada di tempat lain tetapi mudah-mudahan saya bisa terlibat kembali di minggu-minggu mendatang.

Memperbarui daftar tugas kami di atas untuk merayakan 100 hari hingga akhir masa pakai Python 2.

Dari obrolan di sini dan kelonggaran, saya memberi label ini sebagai pekerjaan yang sedang berjalan. Namun, tidak ada pemberi tugas. Saya berasumsi @cclauss dan @salman-bhai akan menjadi kandidat terbaik karena mereka adalah pemimpin tim untuk Python3.

@cclauss Apakah emotikon itu ya untuk menjadi penerima tugas? Sepertinya Anda dan @hornc bertanggung jawab atas hampir semua PR dalam

Apakah kami ingin mengulangi langkah/pemblokir khusus yang tersisa untuk Python3?

Saya tidak yakin mengapa prioritas dikurangi. Ini tidak perlu dilakukan sebelum 1 Januari, tetapi harus segera dilakukan.

Pemblokir utama saat ini adalah infogami, meskipun porting mungkin mengungkapkan masalah yang tersisa di bagian lain dari sistem. Daripada mencoba melacak setiap masalah infogami secara terpisah di sini, mungkin lebih masuk akal untuk menunjuk ke masalah epik Python 3 tingkat atas infogami.

Sepertinya kita mendapat penangguhan hukuman beberapa bulan lagi. Pada akhir Desember, Python Software Foundation mendorong tanggal pensiun (lagi!) ke April 2020.

https://www.python.org/psf/press-release/pr20191220/

Ya, tetapi proyek ini adalah proyek besar terakhir yang saya tahu yang belum selesai.

Rilis terakhir Python 2 telah dibuat: https://stackoverflow.blog/2020/04/23/the-final-python-2-release-marks-the-end-of-an-era/ dan tidak akan menerima lebih banyak pembaruan dalam bentuk apa pun, termasuk bug keamanan kritis.

Setiap hari mulai sekarang (sejak beberapa bulan yang lalu benar-benar) membuat peningkatan paparan kerentanan yang belum ditambal yang membahayakan sistem produksi OpenLibrary.

Saatnya untuk menutup yang satu ini! Terima kasih kepada semua orang yang telah membantu membawa kami ke Python 3!!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat