QGIS

QGIS 3.0 - Bagaimana, kapan dan apa; itu menyiratkan

Banyak yang bertanya pada diri sendiri:

Kapan QGIS 3.0 dilepaskan?

Tahun lalu (2015) tim proyek mulai menyelidiki kapan dan bagaimana QGIS 3.0 akan dirilis. Mereka berjanji, menurut sebuah pos dari Anita Graser, bahwa mereka akan menyampaikan rencana mereka dengan jelas kepada pengguna dan pengembang sebelum meluncurkan QGIS 3.0. Baru-baru ini mereka mencoba memaparkan beberapa pertimbangan untuk rilis QGIS 3.0 dan di akhir posting ada kesempatan bagi kami untuk mempresentasikan ide-ide kami.

Mengapa 3.0?

QGis_LogoBiasanya versi mayor dicadangkan untuk saat-saat ketika perubahan besar dilakukan pada API perangkat lunak Anda. Pemutusan hubungan kerja ini bukanlah keputusan yang sepele untuk proyek QGIS karena kami adalah ratusan ribu pengguna yang bergantung pada QGIS, baik untuk penggunaan kami sendiri maupun untuk layanan yang diberikan kepada pihak ketiga.

Terkadang melanggar API diperlukan untuk mengakomodasi peningkatan arsitektur dengan pendekatan yang lebih baik, perpustakaan baru dan koreksi terhadap keputusan yang dibuat di masa lalu.

Apa akibat melanggar API?

Salah satu alasan mengapa pemecahan API di QGIS 3.0 ini adalah bahwa hal itu akan berdampak besar, yang dapat mematahkan ratusan plugin yang dikembangkan yang tidak lagi kompatibel dengan API baru dan penulisnya harus melakukan hal itu. ulasan perkembangan mereka untuk memastikan kompatibilitas dengan API baru.

Tingkat perubahan yang diperlukan sangat bergantung pada:

  • Berapa banyak perubahan pada API yang mempengaruhi fungsionalitas saat ini.
    Pada berapa banyak poin penulis plugin telah menggunakan bagian API yang akan mereka ubah.
  • Apa yang akan menjadi perubahan utama untuk 3.0?

Ada empat bidang utama yang ingin Anda ubah di 3.0:

 

Update Qt4 ke QT5: Ini adalah set dasar perpustakaan yang QGIS dibangun di tingkat atas, kita berbicara tentang tingkat fungsional CORE dari platform. QT juga menyediakan perpustakaan untuk melakukan manajemen memori, operasi konektivitas, dan manajemen grafis. Qt4 (yang menjadi dasar QGIS saat ini) saat ini tidak dikembangkan oleh pengelola pustaka Qt dan mungkin memiliki masalah fungsionalitas dengan beberapa platform (mis. OS X) dan bahkan membuatnya lebih mudah untuk mengelola versi biner (mis. Pengujian Debian dan rilis Debian berikutnya "Meregang"). Proses membawa QGIS ke QT5 sudah memiliki kemajuan penting (terutama apa yang telah dilakukan Matthias Kuhn) yang bersama-sama dengan Marco Bernasocchi merokok di Android "QField" yang sepenuhnya berbasis QT5. Namun, ada beberapa batasan dalam menjalankan dan menjalankan QT5 baru karena dampaknya pada QGIS – khususnya dengan widget browser web (terutama digunakan di Composer dan juga beberapa tempat lain di QGIS).

Update PyQt4 ke PyQt5: Ini adalah perubahan relatif pada bahasa Python untuk Qt yang berbasis API QGIS Python. Hal ini diusulkan untuk mengubah perpustakaan QT5 C + +, juga diharapkan untuk memindahkan perpustakaan Python ke PyQt5 sehingga manfaat API QT5 baru dengan Python dapat dimanfaatkan.
2.7: Memperbarui Python 3 menjadi Python Saat ini semuanya berjalan di Python 2.7. Python 3 adalah versi terbaru dari python dan direkomendasikan oleh mereka yang memimpin proyek itu. Python 2 sedikit tidak kompatibel dengan Python 3 (hampir sebanding dengan ketidakcocokan antara QGIS 2 dan Qgis 3). Banyak pengembang telah membuat python Python 3 sebagian besar kompatibel dengan Python 2, tetapi kompatibilitas ke belakang tidak terlalu bagus.
Meningkatkan API QGIS itu sendiri: Salah satu masalah dengan menjaga kompatibilitas API antar versi adalah Anda harus hidup dengan pilihan desain Anda untuk jangka panjang. Setiap upaya dilakukan di QGIS untuk tidak merusak API dalam serangkaian rilis kecil. Merilis versi QGIS untuk 3.0 dengan API yang saat ini tidak didukung akan memberi kami kesempatan untuk "membersihkan rumah" dengan memperbaiki hal-hal di API yang tidak kami patuhi. Anda dapat melihat daftar sementara dari Perubahan yang diusulkan untuk API 3.0.

Bagaimana cara mendukung perubahan 3.0 API

Seperti yang telah disebutkan, versi 3.0 akan rusak dengan QGIS versi 2.x dan ada kemungkinan banyak plugin, aplikasi yang ada, dan kode lain yang didasarkan pada API saat ini akan rusak. Jadi apa yang bisa dilakukan untuk mengurangi perubahan? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias, dan developer top lainnya telah mencari cara untuk mengurangi jumlah perubahan API break sambil terus memajukan basis kode QGIS yang didasarkan pada perpustakaan generasi berikutnya dan API internalnya sendiri. Selama pertemuan terakhir kami Komite Pengarah Proyek QGIS, hal itu dilakukan secara geografis melalui berbagai kemungkinan. Tabel berikut merangkum apa yang telah dirangkum oleh Matthias Kuhn dan yang sebagian telah kami coba terjemahkan dalam artikel ini sesuai dengan Diposting di blog anda:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Fecha de lanzamiento Akhir Februari 4 berbulan-bulan kemudian 2.14 Siklus Bulan 8?
Uang kertas Update kode python dari QGIS inti menjadi kompatibel dengan Python 3 dan kompatibel dengan PyQt5 (implementasi sebagian untuk fungsi utama misalnya konsol, plugin inti python dll.)
Qt4 Si

Tidak berlaku lagi untuk Debian Stretch (dalam setahun)

(webkit dihapus)

Yes Tidak
Qt5 Tidak

Merindukan QWebView - pengganti baru tidak pada semua platform. Juga merindukan QPainter Engine.

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
Pembungkus
PyQt5 -> PyQt4
Menyediakan ~ 90% Backwards Compatibility
Tidak Si Si
Mainstream Binary Berbasis Qt4 Berbasis Qt4 Berbasis Qt5
Prioritas pendanaan Bungkus Python

Ada dua hal penting yang perlu diingat tentang proposal Matias:

Pada tahap pertama, Pekerjaan dilakukan di seri 2.x untuk melengkapi dukungan untuk QT5, PyQt5, menggunakan Python 3.0, mendukung Qt4, PyQt4 dan Python 2.7. Ini menyiratkan bahwa semua perubahan yang dilakukan pada tahap pertama akan kompatibel dengan versi 2.x sebelumnya. Ini akan menggabungkan fungsionalitas Python yang akan diperkenalkan sehingga API PyQt4 lama masih dapat digunakan terutama saat mengkompilasi terhadap QT5, PyQt5, Python 3.0. Saat menggunakan QGIS yang dikompilasi terhadap Qt4, PyQt4 dan Python 2.7 tidak akan ada kompatibilitas putus.
Pada fase kedua, Anda akan bekerja untuk menghasilkan QGIS 3.0, memperkenalkan API baru, sepenuhnya akan menghilangkan 2.7 Python, termasuk dukungan untuk Qt4 dan PyQt4. Fitur python baru yang diperkenalkan pada tahap pertama akan dipertahankan, dengan mengingat bahwa semua kode dan pengembangan python untuk 2.x versi QGIS akan terus bekerja pada 3.x versi QGIS. Pada tahap ini Anda juga diharapkan untuk mengenalkan perubahan pada API QGIS yang dapat mematahkan beberapa plugin. Untuk mengatasi hal ini, kami akan menyediakan panduan migrasi untuk mencoba memfasilitasi proses migrasi dari 2.x versi QGIS ke 3.x versi QGIS.

Caveat emptor

Ada beberapa trik yang harus dilakukan untuk memastikan bahwa migrasi ke QGIS 3.0 terdengar kurang menyakitkan.

  • 1. SPerlu dicatat bahwa meskipun pendekatan yang ditetapkan di atas mencoba meminimalkan jumlah pekerjaan pada skrip python di plugin, ini belum tentu 100%. Kemungkinan besar akan ada kasus di mana kode harus di-tweak dan setidaknya dalam semua kasus, kemungkinan besar harus direvisi untuk memastikannya terus berfungsi dengan baik.
    2. Tidak ada sumber keuangan yang didirikan secara resmi untuk membayar pengembang yang secara sukarela menginvestasikan waktu mereka untuk proses migrasi ini. Oleh karena itu, akan sangat sulit untuk memberikan kerangka waktu yang tepat tentang berapa lama waktu yang dibutuhkan untuk setiap bagian proses. Ketidakpastian ini harus diperhitungkan dalam perencanaan. Tentu saja donasi dipersilakan untuk membantu mewujudkannya.
    3. Mungkin ada pengembang dan institusi di luar sana yang mendanai fitur-fitur baru untuk seri QGIS 2.x dan ini dapat memengaruhi pekerjaan Anda. Dalam rencana dan anggaran proyek-proyek ini, diperlukan alokasi tertentu untuk menghadapi migrasi ke platform QGIS 3.x.
    4. Jika tim QGIS bekerja pada "perubahan total", akan ada waktu yang relatif singkat di mana QGIS akan menjadi tidak stabil dan terus berubah karena pembaruan berkelanjutan pada QGIS 3.0.
    4. Jika Anda mengembangkan dengan cara 'evolusioner', Anda menghadapi risiko bahwa pengembangan 3.0 mungkin memakan waktu lebih lama kecuali Anda memiliki sekelompok pengembang setia yang mengerjakannya dan menyiapkannya untuk porting.

    Saran

Mengingat semua informasi di atas, salah satu dari dua jalur tindakan diajukan:

Proposal 1:

Rilis versi sementara 2.16 dan kemudian mulai kerjakan versi 3.0 sebagai prioritas, dengan jendela pengembangan 8 bulan. Perubahan yang dibuat pada versi 2.16 akan berusaha agar kompatibel dengan versi 3.0 (lihat python3 / pytq5).

Proposal 2:

Luncurkan 3.0 sekaligus dengan jendela durasi yang lebih lama di QT5, Python 3.0 dan PyQt5, dan mintalah pengembang untuk melakukan pekerjaan mereka di 3.0. Lanjutkan dengan 2.x versi secara berkala sampai 3.0 siap.

Proposal alternatif

Apakah Anda punya proposal alternatif? QGIS tertarik untuk mengetahui tentang kemungkinan alternatif. Jika Anda ingin mengajukan proposal, silakan kirim ke Tim@qgis.org dengan subjek “Proposal QGIS 3.0”.

Harus mengikuti Blog QGISDari mana publikasi ini terbit.

Golgi Alvarez

Penulis, peneliti, spesialis dalam Model Pengelolaan Lahan. Dia telah berpartisipasi dalam konseptualisasi dan implementasi model seperti: Sistem Nasional Administrasi Properti SINAP di Honduras, Model Manajemen Kota Bersama di Honduras, Model Terpadu Manajemen Kadaster - Pendaftaran di Nikaragua, Sistem Administrasi Wilayah SAT di Kolombia . Editor blog pengetahuan Geofumadas sejak 2007 dan pencipta Akademi AulaGEO yang mencakup lebih dari 100 kursus tentang topik GIS - CAD - BIM - Digital Twins.

Artikel terkait

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

Kembali ke atas tombol