QGIS

QGIS 3.0 - Bagaimana, bila dan apa; itu membayangkan

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 menyampaikan rancangan mereka dengan jelas kepada pengguna dan pembangun sebelum melancarkan QGIS 3.0. Mereka baru-baru ini telah berusaha untuk mendedahkan beberapa pertimbangan untuk pembebasan QGIS 3.0 dan di akhir catatan ada peluang untuk kami mengemukakan idea kami.

Mengapa 3.0?

QGis_LogoBiasanya versi utama disediakan untuk masa-masa ketika perubahan besar dilakukan pada API perisian anda. Jeda ini bukan keputusan sepele untuk projek QGIS kerana kami beratus-ratus ribu pengguna yang bergantung pada QGIS, baik untuk kegunaan kami 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 ialah set asas perpustakaan yang QGIS dibina di peringkat atas, kita bercakap tentang tahap fungsi TERAS platform. QT juga menyediakan perpustakaan untuk melaksanakan pengurusan memori, operasi sambungan dan pengurusan grafik. Qt4 (yang QGIS berasaskan pada masa ini) pada masa ini tidak dibangunkan oleh penyelenggara perpustakaan Qt dan mungkin mempunyai masalah kefungsian dengan beberapa platform (cth OS X) malah memudahkan untuk mengurus versi binari (cth. Debian Testing dan keluaran Debian seterusnya "Regangan"). Proses membawa QGIS ke QT5 sudah mempunyai kemajuan penting (terutamanya perkara yang telah dilakukan oleh Matthias Kuhn) yang bersama-sama dengan Marco Bernasocchi merokok pada "QField" Android berdasarkan sepenuhnya pada QT5. Walau bagaimanapun, terdapat beberapa batasan dalam menyediakan dan menjalankan QT5 baharu kerana kesannya terhadap QGIS – khususnya dengan widget pelayar web (terutamanya digunakan dalam Komposer dan juga beberapa tempat lain dalam 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 di Python 2.7. Python 3 adalah versi terbaru python dan disyorkan oleh mereka yang memimpin projek itu. Python 2 sedikit tidak sesuai dengan Python 3 (hampir sebanding dengan ketidaksesuaian antara QGIS 2 dan Qgis 3). Banyak pembangun telah menjadikan python Python 3 serasi dengan Python 2, tetapi keserasian ke belakang tidak begitu hebat.
Meningkatkan API QGIS sendiri: Salah satu masalah dengan mengekalkan keserasian API antara versi ialah anda perlu hidup dengan pilihan reka bentuk anda untuk jangka masa panjang. Segala usaha dilakukan dalam QGIS untuk tidak memecahkan API dalam satu siri keluaran kecil. Mengeluarkan versi QGIS untuk 3.0 dengan API yang tidak disokong pada masa ini akan memberi kami peluang untuk "membersihkan rumah" dengan membetulkan perkara dalam API yang kami tidak patuh. Anda boleh melihat senarai sementara bagi Perubahan yang dicadangkan untuk API 3.0.

Bagaimana untuk menyokong menukar API 3.0

Seperti yang telah disebutkan, versi 3.0 akan rosak dengan QGIS versi 2.x dan ada kemungkinan banyak plugin, aplikasi yang ada dan kod lain yang berdasarkan pada API semasa akan rosak. Jadi apa yang boleh dilakukan untuk mengurangkan perubahan? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias, dan pembangun utama lain telah mencari cara untuk mengurangkan jumlah perubahan rehat API sambil terus memajukan pangkalan data QGIS berdasarkan generasi perpustakaan berikutnya dan API dalamannya sendiri. Semasa mesyuarat terakhir Jawatankuasa Pemandu Projek QGIS, geofumed melalui pelbagai kemungkinan. Jadual berikut meringkaskan apa yang diringkaskan oleh Matthias Kuhn dan bahawa kita sebahagiannya telah berusaha mentransliterasi dalam artikel ini mengikut 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. SPerlu diingatkan bahawa sementara pendekatan yang dinyatakan di atas berusaha untuk meminimumkan jumlah pekerjaan pada skrip python dalam plugin, ini tidak semestinya 100%. Kemungkinan besar terdapat kes di mana kod tersebut harus diubah dan setidaknya dalam semua kes, kemungkinan akan disemak semula untuk memastikannya terus berfungsi dengan baik.
    2. Tidak ada sumber kewangan yang ditetapkan secara rasmi untuk membayar pemaju yang meluangkan masa mereka secara sukarela untuk proses penghijrahan ini. Oleh kerana itu, akan sangat sukar untuk memberikan jangka masa yang tepat untuk berapa lama setiap bahagian proses akan berlangsung. Ketidakpastian ini mesti diambil kira dalam perancangan. Sudah tentu derma dialu-alukan untuk membantu mewujudkan ini.
    3. Mungkin ada pemaju dan institusi di luar sana yang membiayai ciri-ciri baru untuk siri QGIS 2.x dan ini mungkin mempengaruhi kerja anda. Perlu dimasukkan dalam rancangan dan anggaran projek-projek ini, peruntukan tertentu untuk menghadapi migrasi ke platform QGIS 3.x.
    4. Jika pasukan QGIS bekerja pada "perubahan total", akan ada masa yang agak singkat di mana QGIS akan menjadi tidak stabil dan sentiasa berubah disebabkan oleh kemas kini berterusan kepada QGIS 3.0.
    4. Jika anda membangun dengan cara 'evolusi', anda menghadapi risiko pembangunan 3.0 mungkin mengambil masa yang lebih lama melainkan anda mempunyai kumpulan pembangun yang setia yang mengusahakannya dan menyediakannya untuk dipindahkan.

    cadangan

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

cadangan 1:

Lepaskan versi sementara 2.16 dan kemudian mulakan kerja pada versi 3.0 sebagai keutamaan, dengan jangka masa pengembangan selama 8 bulan. Perubahan yang dibuat dalam versi 2.16 akan sesuai 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 berminat untuk mengetahui kemungkinan alternatif. Sekiranya anda ingin menghantar cadangan, hantarkan ke tim@qgis.org dengan subjek "Cadangan QGIS 3.0".

Harus mengikuti QGIS blog, Dari mana datang penerbitan ini.

Golgi Alvarez

Penulis, penyelidik, pakar dalam Model Pengurusan Tanah. Beliau telah mengambil bahagian dalam konseptualisasi dan pelaksanaan model seperti: Sistem Pentadbiran Harta Negara SINAP di Honduras, Model Pengurusan Perbandaran Bersama di Honduras, Model Bersepadu Pengurusan Kadaster - Pendaftaran di Nicaragua, Sistem Pentadbiran Wilayah SAT di Colombia . Editor blog pengetahuan Geofumadas sejak 2007 dan pencipta Akademi AulaGEO yang merangkumi lebih daripada 100 kursus mengenai topik GIS - CAD - BIM - Digital Twins.

Artikel yang berkaitan

Leave a comment

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

Kembali ke atas butang