QGIS 3.0 - Bagaimana, bila dan apa; bererti

Ramai yang bertanya kepada diri sendiri:

Bilakah QGIS 3.0 akan dibebaskan?

Tahun lepas (2015) pasukan projek mula menyiasat kapan dan bagaimana QGIS 3.0 dikeluarkan. Mereka berjanji, mengikut jawatan dari Anita Graser, bahawa mereka akan dengan jelas menyampaikan kepada pengguna dan pemaju rancangan mereka sebelum melancarkan QGIS 3.0. Baru-baru ini mereka telah cuba untuk mendedahkan beberapa pertimbangan untuk melancarkan QGIS 3.0 dan pada akhir jawatan terdapat peluang bagi kami untuk membentangkan idea kami.

Mengapa 3.0?

QGis_LogoBiasanya versi utama dikhaskan untuk kali apabila perubahan besar dibuat kepada API perisian anda. Pecah ini bukanlah satu keputusan remeh untuk projek QGIS kerana kami beratus-ratus ribu pengguna yang bergantung kepada QGIS, baik untuk kegunaan sendiri dan untuk perkhidmatan yang diberikan kepada pihak ketiga.

Kadang-kadang pecah API yang diperlukan untuk menampung mengemaskini seni bina dengan pendekatan yang lebih baik, perpustakaan baru dan pembetulan kepada keputusan yang dibuat pada masa lalu.

Apakah akibat melanggar API?

Salah satu sebab mengapa pelanggaran ini API dalam QGIS 3.0 ialah ia akan memberi impak yang besar, yang boleh memecahkan beratus-ratus plugin maju yang tidak lagi akan menjadi serasi dengan API baru dan pengarang ini ada hubung kait semakan perkembangan mereka untuk memastikan keserasian dengan API baru.

Sejauh mana perubahan yang diperlukan bergantung kepada:

  • Banyak perubahan API menjejaskan fungsi semasa.
    Berapa banyak mata plugin penulis telah menggunakan bahagian API yang akan berubah.
  • Apakah perubahan utama kepada 3.0?

Terdapat empat bidang utama yang sedang mencari untuk perubahan di 3.0:

Qt4 update QT5: Ini adalah set asas perpustakaan di mana QGIS dibina di peringkat atas, kita bercakap mengenai tahap platform TERAS fungsi. QT juga menyediakan perpustakaan untuk melaksanakan pengurusan Momoria, sambungan pengurusan operasi dan grafik. Qt4 (di mana QGIS kini berasaskan) tidak sedang dibangunkan oleh orang yang bertanggungjawab ke atas pustaka Qt dan boleh menghadapi masalah dari segi fungsi dengan beberapa platform (sebagai contoh, OS X) dan juga memudahkan pengurusan versi binari (contohnya Debian Ujian dan siaran seterusnya Debian "Stretch"). Proses membawa QGIS untuk QT5 sudah mempunyai satu kejayaan (terutamanya apa yang dibuat Matthias Kuhn) bersama-sama dengan asap Marco Bernasocchi pada Android "QField" berdasarkan sepenuhnya kepada QT5. Walau bagaimanapun, terdapat beberapa batasan untuk melancarkan QT5 baru untuk kesannya terhadap QGIS - terutamanya dengan pelayar widget web (digunakan terutamanya dalam Komposer dan beberapa tempat lain di QGIS).

Kemas kini PyQt4 ke PyQt5: Perubahan ini berkaitan dengan bahasa Python untuk Qt dalam API QGIS Python adalah berdasarkan. Timbul menukar QT5 C ++ perpustakaan, juga dijangka untuk memindahkan kepada PyQt5 perpustakaan python supaya mereka boleh mengambil kesempatan daripada manfaat API baru dalam Python QT5.
Mengemas kini Python 2.7 ke Python 3: Pada masa ini semuanya berjalan pada Python 2.7. Python 3 adalah versi terbaru python dan disyorkan oleh mereka yang mengetuai projek itu. Python 2 sedikit bertentangan dengan Python 3 (setakat hampir berkadaran dengan ketidaksesuaian antara QGIS 2 dan Qgis 3). Ramai pemaju telah membuat Python Python 3 sebahagian besarnya serasi dengan versi Python 2 yang terdahulu, tetapi keserasian terbalik tidak begitu baik.
Meningkatkan API QGIS sendiri: Salah satu masalah yang mengekalkan keserasian API antara versi ialah anda perlu hidup dengan pilihan reka bentuk anda untuk jangka panjang. Di QGIS, setiap usaha dibuat untuk tidak memecahkan API dalam satu siri siaran kecil. Melepaskan versi QGIS untuk 3.0 dengan API yang tidak serasi dengan semasa akan memberi peluang untuk "membersihkan rumah" dengan menetapkan perkara-perkara dalam API yang kita ada dengan mana ketidaksesuaian. Anda boleh melihat senarai sementara Perubahan yang dicadangkan untuk API 3.0.

Bagaimana untuk menyokong menukar API 3.0

Seperti yang telah disebutkan, versi 3.0 seketika dengan versi QGIS 2.x menyebabkan dan terdapat kemungkinan bahawa banyak plugin, aplikasi sedia ada dan kod lain adalah berdasarkan kerosakan API semasa. Jadi apa yang boleh dilakukan untuk mengurangkan perubahan? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias dan pemaju utama yang lain telah mencari cara-cara untuk mengurangkan bilangan perubahan API berbuka sama masih lagi kod QGIS asas berdasarkan kepada generasi akan datang perpustakaan dan API dalaman mereka sendiri. Semasa Jawatankuasa Pemandu QGIS Project pertemuan terakhir kami telah geofumó melalui pelbagai kemungkinan. Jadual berikut meringkaskan apa Matthias Kuhn disimpulkan perlahan-lahan dan sebahagiannya telah cuba untuk mengalih huruf dalam artikel ini sesuai dengan apa yang Dihantar pada blog anda:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Fecha de lanzamiento Akhir bulan Februari 4 bulan kemudian 2.14 Bulan 8 Cycle?
Bil Kemas kini kod python teras QGIS menjadi serasi Python 3 dan PyQt5 (pelaksanaan sebahagian untuk fungsi utama contohnya konsol, plugin teras python dll)
Qt4 Si

Tidak lama lagi dalam Debian Stretch (disebabkan dalam setahun)

(webkit dialih keluar)

Ya Tidak
Qt5 Tidak

Miss QWebView - pengganti baru bukan pada semua platform. Juga terlepas enjin QPainter.

Si Si
PyQt4 Si Si Tidak
PyQt5 Tidak Si Si
Python 2 Si Si Tidak
Python 3 Tidak Si Si
Pembersihan API Tidak Tidak Si
Wrappers
PyQt5 -> PyQt4
Menyediakan keserasian ke belakang ~ 90
Tidak Si Si
Perduaan Perduaan Berdasarkan Qt4 Berdasarkan Qt4 Berdasarkan Qt5
Keutamaan pembiayaan Pembalut Python

Terdapat dua perkara penting untuk diingat mengenai cadangan Matias:

Pada fasa pertamaKerja-kerja ini dilakukan dalam siri ini untuk melengkapkan sokongan 2.x QT5, PyQt5 menggunakan Python 3.0, menyokong Qt4, PyQt4 dan Python 2.7. Ini menunjukkan bahawa semua perubahan yang dibuat dalam fasa pertama akan menjadi serasi dengan versi terdahulu 2.x. ciri Python akan dimasukkan akan diperkenalkan supaya API PyQt4 lama masih boleh digunakan terutama apabila disusun terhadap QT5, PyQt5, Python 3.0. Dengan menggunakan QGIS menyusun terhadap Qt4, PyQt4 dan Python 2.7 tidak akan memecahkan keserasian.
Dalam fasa keduaIa akan bekerja untuk menghasilkan QGIS 3.0, memperkenalkan API baru, benar-benar membuang Python 2.7, termasuk sokongan untuk Qt4 dan PyQt4. Ciri-ciri baru dalam python memasuki fasa pertama akan dikekalkan, dengan mengambil kira semua kod python dan perkembangan untuk versi 2.x daripada QGIS terus bekerja pada versi 3.x daripada QGIS. Fasa ini juga dijangka memperkenalkan perubahan dalam API QGIS yang boleh memecah beberapa plugin. Bagi menangani masalah ini akan menyediakan penghijrahan mencari panduan kepada cuba memudahkan penghijrahan versi 2.x QGIS 3.x QGIS versi.

emptor kaveat

Terdapat beberapa helah untuk diminta untuk memastikan bahawa perpindahan kepada QGIS 3.0 bunyi kurang menyakitkan.

  • 1. Se harus diperhatikan bahawa walaupun tumpuan ditubuhkan untuk mengurangkan jumlah kerja pada plugin python skrip, ini tidak akan semestinya 100%. Akan kes kemungkinan besar di mana kod yang perlu diselaraskan dan dalam semua kes sekurang-kurangnya, anda mungkin perlu dikaji semula untuk memastikan ia terus berfungsi dengan baik.
    2. Tidak ada ditubuhkan secara rasmi sumber kewangan untuk membayar pemaju yang secara sukarela melabur masa mereka untuk proses migrasi ini. Oleh kerana itu, ia akan menjadi sangat sukar untuk memberi masa yang tepat berapa lama ia akan mengambil setiap bahagian proses. Ia perlu mengambil kira ketidakpastian ini dalam perancangan. Sudah tentu sumbangan menyambut dibuka bagi membantu membuat ini berlaku.
    3. Mungkin ada pemaju dan institusi di luar sana yang membiayai ciri-ciri baru untuk siri 2.x QGIS dan ini boleh menjejaskan kerja mereka. Dimasukkan ke dalam pelan dan bajet projek-projek ini, peruntukan sebahagian untuk menangani penghijrahan ke platform 3.x QGIS.
    4. Jika pasukan QGIS berfungsi pada "perubahan total", akan ada masa yang agak singkat di mana QGIS akan tidak stabil dan sentiasa berubah disebabkan kemas kini berterusan ke QGIS 3.0.
    4. Sekiranya ia berkembang dengan cara "evolusi", ada risiko perkembangan 3.0 mungkin mengambil masa yang lebih lama melainkan jika ada kumpulan pemaju setia yang bekerja di atasnya dan mendapatkannya siap untuk berhijrah.

    cadangan

Berdasarkan semua maklumat di atas, salah satu jalan kematian yang dicadangkan:

cadangan 1:

2.16 melepaskan versi draf dan kemudian mula bekerja pada versi 3.0 sebagai keutamaan, dengan pembangunan tetingkap bulan 8. Perubahan yang dibuat dalam versi 2.16 berusaha untuk menjadi serasi dengan versi 3.0 (lihat python3 / pytq5).

cadangan 2:

Lunging sekali 3.0 dengan tingkap jangka masa yang lebih panjang pada QT5, Python 3.0 dan PyQt5 dan meminta pemaju untuk melakukan kerja-kerja mereka dalam 3.0. Teruskan dengan versi 2.x dengan kekerapan biasa sehingga 3.0 bersedia.

cadangan alternatif

Adakah anda mempunyai cadangan alternatif? QGIS A mengambil berat apa-apa mengenai alternatif yang mungkin. Jika anda ingin mengemukakan cadangan, sila hantar tim@qgis.org dengan subjek "Cadangan QGIS 3.0".

Harus mengikuti QGIS blog, Dari mana datang penerbitan ini.

Leave a comment

Alamat email anda tidak akan disiarkan.

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.