QGIS 3.0 - Bagaimana, bila dan apa maksudnya

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 pustaka di mana QGIS dibina di peringkat teratas, kami bercakap tentang tahap fungsi CORE platform. QT juga menyediakan perpustakaan untuk menjalankan pengurusan masa, operasi sambungan dan pengurusan grafik. The Qt4 (di mana QGIS kini berdasarkan) tidak kini sedang dibangunkan oleh mereka yang bertanggungjawab untuk perpustakaan Qt dan boleh mempunyai masalah dari segi fungsi dengan beberapa platform (seperti OS X) dan juga memudahkan pengurusan versi binari (contohnya Debian Testing dan versi 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 dengan mengekalkan keserasian API di antara versi adalah bahawa anda perlu untuk hidup dengan pilihan reka bentuk anda untuk jangka panjang. Dalam QGIS segala yang mungkin untuk mengelakkan pecah API dalam siri siaran adalah kecil. QGIS melepaskan 3.0 versi dengan API yang tidak disokong dengan semasa diberi peluang untuk "rumah bersih" dengan menetapkan perkara dalam API yang kami berada di sana dengan ketidakpatuhan. 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 berfungsi pada QGIS pada "jumlah perubahan", akan ada masa yang singkat di mana QGIS tidak stabil dan sentiasa berubah kerana kemas kini berterusan untuk QGIS 3.0.
    4. Jika ia berkembang "evolusi" "cara, anda menjalankan risiko 3.0 mungkin lebih lama melainkan anda mempunyai kumpulan yang setia pemaju bekerja mengenai perkara ini dan bersedia 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.