QGIS 3.0 - Paano, kailan at ano; nagpapahiwatig

Marami ang nagtatanong sa ating sarili:

Kailan mapapalabas ang QGIS 3.0?

Noong nakaraang taon (2015) ang pangkat ng proyekto ay nagsimulang mag-imbestiga kung kailan at paano ibababa ang QGIS 3.0. Ipinangako nila, ayon sa isang post mula sa Anita Graser, na sila ay malinaw na ihatid sa mga gumagamit at mga developer ng kanilang mga plano bago ilunsad ang QGIS 3.0. Kamakailan lamang sinubukan nilang ilantad ang ilan sa mga pagsasaalang-alang para sa isang paglulunsad ng QGIS 3.0 at sa dulo ng post ay may isang pagkakataon para sa amin na ipakita ang aming mga ideya.

Bakit 3.0?

QGis_LogoKaraniwan ang isang pangunahing bersyon ay nakalaan para sa mga oras kapag ang isang malaking pagbabago ay ginawa sa API ng iyong software. Ang break na ito ay hindi isang maliit na desisyon para sa proyekto ng QGIS dahil kami ay daan-daang libo ng mga gumagamit na umaasa sa QGIS, parehong para sa kanilang sariling paggamit at para sa serbisyo na ibinigay sa mga third party.

Paminsan-minsan na paglabag sa API ay kinakailangan upang mapaunlakan ang pag-update ng arkitektura sa pinabuting mga pamamaraang, mga bagong aklatan at pagwawasto sa mga pagpapasya na ginawa sa nakaraan.

Ano ang mga kahihinatnan ng paglabag sa API?

Ang isang dahilan kung bakit ito paglabag ng mga API sa QGIS 3.0 ay na ito ay magkakaroon ng malaking epekto, na maaaring masira daan-daang mga maunlad na mga plugin na ay hindi na katugma sa ang bagong API at ang mga may-akda sa mga ito ay na gawin isang pagsusuri ng kanilang mga pag-unlad upang masiguro ang pagiging tugma sa bagong API.

Ang lawak ng mga kinakailangang pagbabago ay nakasalalay sa isang malaking lawak sa:

  • Gaano karaming mga pagbabago sa API ang nakakaapekto sa kasalukuyang pag-andar.
    Sa kung gaano karaming mga puntos ang ginamit ng mga may-akda ng plugin ang mga bahagi ng API na magbabago.
  • Ano ang mga pangunahing pagbabago para sa 3.0?

Mayroong apat na pangunahing lugar na iyong hinahanap upang mabago sa 3.0:

Qt4 update sa QT5: Ito ang pangunahing hanay ng mga aklatan na kung saan itinayo ang QGIS sa pinakamataas na antas, pinag-uusapan natin ang antas ng functional na antas ng platform. Nagbibigay din ang QT ng mga aklatan upang isakatuparan ang pamamahala ng koryente, mga operasyon ng koneksyon at pamamahala ng graphics. Ang Qt4 (kung saan QGIS kasalukuyan ay batay) Hindi ngayon na binuo sa pamamagitan ng mga responsable para sa Qt library at maaaring magkaroon ng mga problema sa mga tuntunin ng pag-andar na may ilang mga platform (tulad ng OS X) at kahit na mapadali ang pamamahala ng binary bersyon (halimbawa, Debian Testing at ang susunod na bersyon ng Debian «Stretch»). Ang proseso ng nagdadala QGIS na QT5 ay mayroon ng isang pambihirang tagumpay (higit sa lahat kung ano ang ginawa Matthias Kuhn) kasama Marco Bernasocchi smoke on Android "QField" na lubusang nakasalig QT5. Subalit, may mga ilang mga limitasyon upang ilunsad ang bagong QT5 para sa kanyang epekto sa QGIS - lalo na sa mga widget web browser (ginagamit higit sa lahat sa mga Kompositor at ilang iba pang mga lugar sa QGIS).

I-update ang PyQt4 sa PyQt5: Ito ang mga kamag-anak na pagbabago sa wikang Python para sa Qt kung saan batay sa QGIS Python API. Arises baguhin ang QT5 C ++ library, ay din inaasahan na ilipat sa PyQt5 python library upang maaari silang samantalahin ang mga benepisyo ng mga bagong API sa Python QT5.
2.7: Ina-update ang Python 3 sa Python Sa kasalukuyan ay tumatakbo ang lahat sa Python 2.7. 3 Python ay ang pinakabagong bersyon ng sawa at inirerekomenda para sa mga taong humantong proyektong ito. Python ay bahagyang hindi tugma sa 2 3 Python (sa isang halos proporsyonal sa hindi pagkakatugma sa pagitan QGIS ay 2 at 3 Qgis sukatan). Maraming mga developer na gawin python Python 3 kalakhan tugma sa naunang bersyon ng Python 2, ngunit paurong compatibility ay hindi bilang mabuti.
Pagpapabuti ng QGIS API mismo: Isa sa mga problema kung saan nagpapanatili ng compatibility ng API sa pagitan ng mga bersyon ay kailangan mong mabuhay sa iyong mga pagpipilian sa disenyo para sa isang mahabang panahon. Sa QGIS, ang bawat pagsusumikap ay ginawa upang hindi masira ang API sa loob ng isang serye ng mga menor de edad release. Ang paglalabas ng isang bersyon ng QGIS para sa 3.0 na may isang API na hindi tugma sa kasalukuyang ay magbibigay ng pagkakataon na "linisin ang bahay" sa pamamagitan ng pag-aayos ng mga bagay sa API na kami ay may hindi magkatugma. Maaari mong makita ang isang pansamantalang listahan ng mga pagbabago na ipinanukalang para sa 3.0 API.

Paano suportahan ang pagpapalit ng 3.0 API

Bilang na nabanggit, ang bersyon 3.0 ng pahinga na may QGIS bersiyon 2.x sanhi at doon ay ang posibilidad na ang maraming mga plugin, mga umiiral na mga application at iba pang code na ito ay batay sa kasalukuyang API pagbasag. Kaya kung ano ang maaaring gawin upang pagaanin ang mga pagbabago? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias at iba pang mga pangunahing mga developer ay naghahanap ng mga paraan upang pagaanin ang bilang ng mga API paglabag sa mga pagbabago habang advancing ang base code QGIS ibabatay sa susunod na henerasyon ng mga aklatan at ang kanilang sariling panloob na API. Sa panahon ng aming huling pulong ng Komite ng Tagapamahala ng Proyekto ng QGIS ay geofumó sa maraming posibilidad. Ang sumusunod na talahanayan summarizes kung ano Matthias Kuhn summed malumanay at bahagyang Sinubukan ng transliterasyon sa artikulong ito ayon sa kung ano ang nai-post sa iyong blog:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Fecha de lanzamiento Katapusan ng Pebrero 4 buwan mamaya 2.14 Cycle 8 Months?
tala I-update ang python code ng core QGIS upang maging kapwa 3 compatible at PyQt5 compatible (bahagyang pagpapatupad para sa key functionality hal console, sawa core plugin atbp)
Qt4 Si

Deprecated sa Debian Stretch (dahil sa isang taon)

(inalis ang webkit)

Oo Hindi
Qt5 Hindi

Nawala ang QWebView - hindi bagong kapalit sa lahat ng mga platform. Lumalabas din ang QPainter Engine.

Si Si
PyQt4 Si Si Hindi
PyQt5 Hindi Si Si
Python 2 Si Si Hindi
Python 3 Hindi Si Si
API Cleanup Hindi Hindi Si
Mga wrapper
PyQt5 -> PyQt4
Nagbibigay ng ~ 90% Backwards Compatibility
Hindi Si Si
Mainstream Binary Batay sa Qt4 Batay sa Qt4 Batay sa Qt5
Pagpapauna sa pagpopondo Mga balot sawa

Mayroong dalawang mahahalagang bagay na dapat tandaan tungkol sa panukala ni Matias:

Sa unang yugtoTrabaho ay tapos na sa mga serye upang makumpleto 2.x suporta QT5, PyQt5 gamit Python 3.0, supporting Qt4, PyQt4 at Python 2.7. Ito ay nagpapahiwatig na ang lahat ng mga pagbabago na ginawa sa ang unang yugto ay magiging tugma sa naunang bersyon 2.x. Python tampok ay inkorporada ay ipinakilala sa gayon na ang lumang API PyQt4 maaari pa ring gamitin lalo na kapag pinagsama-sama laban QT5, PyQt5, Python 3.0. Sa pamamagitan ng paggamit QGIS pinagsama-sama laban Qt4, PyQt4 at Python 2.7 hindi masira compatibility.
Sa ikalawang yugtoGusto ito gumagana upang makabuo ng QGIS 3.0, nagpapakilala sa mga bagong API, ganap na alisin ang Python 2.7, kabilang ang suporta para sa Qt4 at PyQt4. Mga bagong tampok sa python pagpasok ng unang yugto ay pananatilihin, nang isinasaalang-alang ang lahat ng mga python code at developments para 2.x bersyon ng QGIS patuloy na gagana sa mga bersyon ng QGIS 3.x. Sa bahaging ito, inaasahan mo ring ipakilala ang mga pagbabago sa QGIS API na maaaring masira ang ilang mga plugin. Upang matugunan ang magbibigay ng patnubay aa migration upang subukan upang mapadali ang paglipat ng mga bersyon 2.x QGIS 3.x QGIS bersyon.

Caveat emptor

Mayroong ilang mga trick na dapat ilagay sa lugar upang matiyak na ang migration sa QGIS 3.0 ay mas mababa masakit.

  • 1. SDapat tandaan na habang ang diskarte na nakalagay sa itaas ay nilayon upang mai-minimize ang dami ng trabaho sa script sa python sa mga plugin, hindi ito palaging magiging sa isang 100%. Marahil ay may mga kaso kung saan ang code ay dapat na naayos at sa lahat ng mga kaso ng hindi bababa sa, ito ay malamang na kailangan upang masuri upang matiyak na ito ay patuloy na gumana ng maayos.
    2. Walang pormal na itinatag pinansiyal na mapagkukunan upang magbayad ng mga developer na boluntaryong mamuhunan ng kanilang oras sa proseso ng paglipat na ito. Dahil dito, napakahirap magbigay ng eksaktong takdang panahon kung gaano katagal ang bawat bahagi ng proseso. Ang kawalan ng katiyakan na ito ay dapat isaalang-alang sa pagpaplano. Siyempre mga donasyon ay maligayang pagdating upang makatulong na gawin ito mangyari.
    3. Maaaring may mga developer at mga institusyon doon na nagpopondo ng mga bagong tampok para sa serye ng 2.x QGIS at maaaring makaapekto ito sa kanilang trabaho. Sa mga plano at badyet ng mga proyektong ito, ang ilang alok upang tugunan ang paglipat sa 3.x platform ng QGIS ay dapat isama.
    4. Kung ang koponan QGIS gumagana sa tungkol sa isang "kabuuang pagbabago", magkakaroon ng isang relatibong maikling panahon sa panahon na kung saan QGIS hindi stable at patuloy na nagbabago dahil sa patuloy na mga update sa QGIS 3.0.
    4. Kung nagkakaroon ito sa isang "ebolusyonaryong paraan", may panganib na ang pag-unlad ng 3.0 ay maaaring tumagal ng mas maraming oras maliban kung may isang matapat na pangkat ng mga nag-develop na nagtatrabaho sa ito at nakahanda ito upang lumipat.

    Mga mungkahi

Sa liwanag ng lahat ng impormasyon sa itaas, ang isa sa dalawang linya ng aksyon ay iminungkahi:

1 na Panukala:

Bitawan ang isang pansamantalang bersyon ng 2.16 at pagkatapos ay magsimulang magtrabaho sa bersyon ng 3.0 bilang isang priyoridad, na may window ng pagbuo ng 8 na buwan. Ang mga pagbabagong ginawa sa bersyon ng 2.16 ay magiging katugma sa bersyon ng 3.0 (tingnan ang python3 / pytq5).

2 na Panukala:

Lunging sa isang beses 3.0 na may isang mas pinalawig na tagal window sa QT5, Python 3.0 at PyQt5 at hilingin sa mga developer na gawin ang kanilang trabaho sa 3.0. Magpatuloy sa mga bersyon ng 2.x sa regular na mga pagitan hanggang handa ang 3.0.

Mga alternatibong panukala

Mayroon ka bang alternatibong panukala? Ang QGIS ay interesado sa pag-alam ng mga posibleng alternatibo. Kung nais mong magsumite ng isang panukala, mangyaring ipadala tim@qgis.org kasama ang paksa na "QGIS 3.0 Proposal".

Ang QGIS blog, kung saan lumabas ang publikasyong ito.

Mag-iwan ng komento

Ang iyong email address ay hindi nai-publish.

Ang site na ito ay gumagamit ng Akismet upang mabawasan ang spam. Alamin kung paano naproseso ang data ng iyong komento.