Haruskah saya mengubah kode Python saya jika saya meningkatkan Ubuntu saya?

11

Saya memiliki perangkat lunak yang telah saya kembangkan di Python 3 selama bertahun-tahun. Sampai hari ini, saya telah menggunakan Ubuntu Desktop 11.04 tetapi sekarang saya ingin pindah ke versi Ubuntu yang lebih tinggi.

Haruskah saya tetap di Ubuntu 11,04 sehingga saya tidak perlu mengubah bagian dari kode sumber perangkat lunak saya karena perubahan baru di versi Ubuntu yang lebih tinggi?

Tidakkah versi Ubuntu terbaru akan memengaruhi perangkat lunak saya dengan cara apa pun?

Sylvain Pineau
sumber
18
Ini benar-benar tidak masuk akal bagi saya: perbarui ke 14,04, jika ada yang rusak dalam perangkat lunak Anda: perbaiki. Ini adalah latihan yang sangat baik untuk menghindari pembusukan perangkat lunak. Jenis masalah yang mungkin Anda temukan adalah dengan dependensi. Anda dapat menguji ini di muka dalam virtualenv.
don.joey
6
@ begueradj Saya tidak ingin meminimalkan upaya yang akan diambil atau membatalkan alasan Anda. Hanya saja: apakah Anda berupaya atau perangkat lunak Anda benar-benar tidak akan bertahan lama lagi. Anda dapat meningkatkan ke 12,04, tetapi tetap menggunakan versi EOL bermasalah. Dan masalahnya tidak akan hilang dengan sendirinya ...
don.joey
5
@begueradj - silakan edit pertanyaan Anda dan berikan beberapa detail tentang perangkat lunak Anda. Jelaskan apa fungsinya. Jelaskan toolkit apa yang Anda gunakan (mis. GTK? QT?). Jelaskan perangkat lunak pihak ketiga apa yang bergantung padanya (mis. Versi firefox tertentu? Webkit?). Jelaskan dependensi perangkat lunak untuk membangun perangkat lunak Anda. Tanpa informasi di atas, Anda tidak akan mendapatkan jawaban spesifik untuk pertanyaan Anda. Anda hanya akan mendapatkan jawaban umum seperti yang Anda miliki saat ini.
fossfreedom
3
11,04 mencapai akhir hidup satu setengah tahun yang lalu .. Anda harus telah meningkatkan sejak lama.
psusi

Jawaban:

3

Berdasarkan komentar Anda, Anda berhasil menguji perangkat lunak Anda pada VM yang merupakan kabar baik.

Tetapi sebagai pengembang aplikasi Anda harus siap untuk mengadaptasi kode Anda ke rilis yang lebih baru jika tidak maka akan segera ditinggalkan.

Sekarang untuk memastikan bahwa itu akan terus bekerja dengan rilis baru Ubuntu. Saya sangat menganjurkan Anda untuk mempertahankannya sebagai sebuah paket dan menyediakan rangkaian uji lengkap untuk aplikasi Anda dan menyebutnya selama proses pembuatan paket (misalnya dengan menelepon bagian setup.py testAnda debian/rules override_dh_auto_test) ).

Anda dapat dengan mudah mengatur build harian dari paket Anda dalam ppa menggunakan resep bzr-builder . Dengan begitu, Anda akan diberitahu tentang semua kegagalan build yang disebabkan oleh versi perangkat lunak baru atau dependensi yang rusak.

Rilis baru biasanya terbuka untuk pengembangan beberapa hari setelah pengumuman rilis resmi. Lihatlah halaman ppa kami , Utopic sekarang menjadi bagian dari seri distro yang sedang kami bangun:

masukkan deskripsi gambar di sini

Sylvain Pineau
sumber
3
Mengapa Anda memiliki 2 jawaban untuk pertanyaan yang sama ini? Juga, autopkgtest tidak berfungsi seperti itu. Dan bagaimana ini sebenarnya menjawab pertanyaan lebih baik atau lebih tepat daripada pertanyaan lain?
dobey
Saya mengirim jawaban kedua selama periode hadiah. Saat ini untuk fokus pada bagaimana mencegah masalah pembaruan dengan harapan untuk membawa apa yang benar-benar diharapkan OP (karena per komentarnya, saya tahu bahwa aplikasinya bekerja dengan benar dengan 14.04)
Sylvain Pineau
Saya sarankan Anda untuk mengajukan pertanyaan lain untuk meletakkan jawaban Anda di sana. BTW, saya akan memperbaiki bagian autopgktest. @oby benar, itu tidak berfungsi seperti itu.
Braiam
@dobey autopkgtest diperbaiki / dihapus dari jawaban saya.
Sylvain Pineau
@Braiam autopkgtest diperbaiki / dihapus dari jawaban saya
Sylvain Pineau
13

Tidak, Anda tidak boleh tetap pada 11.04. Sudah menjadi End of Life untuk dukungan sejak Oktober 2012. Jika Anda ingin dukungan sama sekali, Anda harus meningkatkan, setidaknya ke 12,04 (yang akan didukung selama tiga tahun lagi).

Juga, bahkan versi Ubuntu yang lebih baru termasuk Python 3.x secara default, dengan tujuan menghapus Python 2.x dari instalasi default sepenuhnya.

Anda mungkin memiliki masalah dengan menjalankan kode Anda di bawah versi Python 3.x yang lebih baru, tetapi seharusnya secara umum tidak memiliki masalah. Anda juga harus, sebagai pengembang, bersiap untuk menghadapi masalah seperti itu, apa pun versi Ubuntu yang Anda gunakan. Pustaka apa pun yang Anda gunakan, atau Python sendiri, dapat memiliki bug yang tergantung pada perilaku kode Anda, dan jika bug itu diperbaiki, dapat menyebabkan program Anda berperilaku berbeda dari yang Anda harapkan sebelumnya.

dobey
sumber
11

Sulit untuk memberikan jawaban yang pasti tanpa deskripsi aplikasi Anda. Karena Anda menggunakan Python3, setidaknya Anda tidak dibatasi dengan cabang Python2.x (tidak akan ada Python 2.8).

Sekarang beberapa peringatan yang mungkin berlaku untuk aplikasi Anda, dengan Python3 banyak paket sekarang tidak digunakan lagi karena cara terbaik untuk mengakses GLib / GObject / GIO / GTK + adalah dengan menggunakan Introspeksi Python GObject (alias PyGI).

Akhirnya masih ada beberapa perbedaan kecil antara versi python3 yang berbeda (misalnya Argparse tidak berperilaku sama persis dengan python 3.2 dan 3.3.

Satu hal yang bisa Anda coba adalah mem-boot 14,04 VM dan menguji kode Anda dengan python3.4.

Sylvain Pineau
sumber
Saya tidak akan mengubah versi Python saya (tidak mungkin), saya lebih khawatir tentang bagaimana versi Ubuntu baru dapat mempengaruhi kode sumber perangkat lunak saya.
Versi mana yang Anda dukung secara resmi, 3.2?
Sylvain Pineau
Saya menggunakan versi 3.1.3
Saya mendorong Anda untuk menguji aplikasi Anda dengan python3.2 (boot 12,04 VM dan sudo apt-get install python3). Anda juga dapat memeriksa catatan rilis python3.2 tetapi sejauh yang saya tahu python3.2 hanyalah banyak perbaikan dari cabang 3.1.x (argparse adalah salah satunya)
Sylvain Pineau
1
Untuk program python3, versi python yang ditingkatkan hanya menyediakan cara yang lebih efisien untuk melakukan tugas-tugas kompleks. Python3.4 misalnya, memperkenalkan asyncio dan itu akan memungkinkan saya untuk menyingkirkan masalah-masalah mainloop / threading glib yang benar-benar kompleks. Saya memberi catatan tentang argparse karena saya telah terjebak dalam perubahan baru-baru ini tetapi itu bukan masalah besar. Jadi sekali lagi uji sw Anda dengan versi terbaru (3,2 kemudian 3,4 dengan 14,04) tetapi seperti penjawab lainnya mengatakan Anda tidak harus menghadapi masalah besar
Sylvain Pineau
2

Itu tergantung pada kode Anda, Jika kode Anda menggunakan perpustakaan yang tidak didukung, Anda tidak dapat bermigrasi ke versi yang lebih baru dari sistem operasi dengan mudah, tetapi sebagian besar waktu tidak ada masalah akan terjadi.

Lautan
sumber
dapatkah Anda menjelaskan kepada saya mengapa perpustakaan Python tergantung pada versi Ubuntu yang diberikan?
@begueradj Tidak, tetapi jika Anda menggunakan pustaka Python yang tidak lagi dipertahankan, itu bisa saja dijatuhkan dari arsip Ubuntu di beberapa titik, dan dengan demikian tidak tersedia pada versi yang lebih baru. Kode Anda kemudian akan gagal. Anda tentu saja dapat menginstal paket perpustakaan dari versi Ubuntu yang lebih lama, atau dari sumber, untuk menyelesaikan masalah, meskipun Anda tidak akan mendapatkan pembaruan apa pun untuknya; atau Anda dapat memperbaiki kode Anda untuk menggunakan pustaka yang berbeda atau menulis kode Anda sendiri untuk melakukan fungsi yang sama.
dobey
seperti @dobey berkata, beberapa perpustakaan tidak dipelihara lagi atau versi yang lebih baru merusak kompatibilitas. Di masa lalu, saya memiliki beberapa masalah dengan Turbogears ketika saya meningkatkan ke versi Ubuntu yang lebih baru.
Samudra
0

Ubuntu 14.04 memiliki paket python3, jadi itu bukan masalah. apt-cache search python3akan menunjukkannya kepada Anda. Selain itu, Anda harus membaca catatan rilis untuk setiap rilis Ubuntu antara 11,04 dan "versi yang lebih tinggi", dan mencari perubahan yang akan merusak aplikasi Anda. Tidak mengetahui apa pun tentang perkembangan Anda mengharuskan saya untuk berteriak YMMV, tetapi tebakan saya adalah bahwa Anda tidak akan memiliki masalah yang tidak dapat diatasi.

waltinator
sumber
0

Jika Anda perlu menjalankan versi lama Python di Ubuntu 14.04 maka aktifkan repositori deadsnakes . Ini memiliki versi Python 2.3, 2.4, 2.5, 2.6, 3.1, 3.2, 3.3 untuk Ubuntu 14.04. Jika aplikasi Anda adalah kode Python murni, dan tidak bergantung pada perilaku proses lain, maka aplikasi tersebut seharusnya berfungsi dengan baik di bawah juru bahasa lama.

bain
sumber
0

Sebagai jawaban lain, Anda dapat menggunakan lingkungan virtual jika Anda memiliki masalah atau Anda dapat menggunakan versi python yang sama di 11.04 (unduh dan bangun) di 14.04.

Lautan
sumber
Tentunya saya dapat menguji pada VMs (saya melakukannya), perangkat lunak saya berfungsi dengan baik ... untuk saat ini ... tapi saya tidak tahu apakah itu akan muncul nanti karena versi Ubuntu yang baru.
1
Karena Ubuntu 14.04 adalah versi LTS dan berdasarkan filosofi mereka, mereka tidak akan mengubah versi (bom pada versi utama) dan konfigurasi, saya pikir Anda tidak harus memiliki masalah.
Ocean