qgis

QGIS 3.0 - Hoe, wanneer en wat; dit impliseer

Baie vra ons onsself:

Wanneer sal QGIS 3.0 vrygestel word?

Verlede jaar (2015) het die projekspan begin ondersoek instel na wanneer en hoe QGIS 3.0 vrygestel sou word. Hulle het belowe, volgens 'n pos van Anita Graser, dat hulle hul planne duidelik aan gebruikers en ontwikkelaars gaan oordra voordat hulle QGIS 3.0 begin. Hulle het onlangs probeer om sommige van die oorwegings vir 'n QGIS 3.0-weergawe bloot te lê en aan die einde van die berig is daar die geleentheid vir ons om ons idees aan te bied.

Hoekom 3.0?

QGis_LogoGewoonlik is 'n groot weergawe gereserveer vir tye wanneer 'n groot verandering aan u sagteware se API aangebring word. Hierdie onderbreking is nie 'n onbeduidende besluit vir die QGIS-projek nie, want ons is honderdduisende gebruikers wat afhanklik is van QGIS, sowel vir ons eie gebruik as vir dienste wat aan derde partye gelewer word.

Soms breek die API nodig om die opdatering van die argitektuur te akkommodeer met die verbetering van benaderings, nuwe biblioteke en regstellings aan die besluite wat in die verlede gemaak is.

Wat is die gevolge van die breek van die API?

Een van die redes waarom hierdie verbreking van die API in QGIS 3.0 is dat dit 'n groot impak, wat honderde ontwikkelde plugins wat nie meer versoenbaar is met die nuwe API sou wees en die skrywers van hierdie kon breek het om te doen sal hê 'n oorsig van hul ontwikkelings om te verseker dat dit verenigbaar is met die nuwe API.

Die omvang van die nodige veranderinge hang in groot mate af van:

  • Hoeveel veranderinge aan die API beïnvloed die huidige funksionaliteit.
    Op hoeveel punte het die skyfskrywers dele van die API gebruik wat hulle sou verander.
  • Wat sal die belangrikste veranderinge vir 3.0 wees?

Daar is vier sleutel areas wat jy wil verander in 3.0:

 

Qt4-opdatering na QT5: Dit is die basiese stel biblioteke wat QGIS op boonste vlak gebou is, ons praat van die KERN-funksionele vlak van die platform. QT verskaf ook biblioteke om geheuebestuur, verbindingsbewerkings en grafiese bestuur uit te voer. Qt4 (waarop QGIS tans gebaseer is) word tans nie deur die Qt-biblioteekonderhouers ontwikkel nie en kan moontlik funksionaliteitsprobleme met sommige platforms (bv. OS X) hê en dit selfs makliker maak om binêre weergawes te bestuur (bv. Debian Testing en die volgende Debian-vrystelling "Strek"). Die proses om QGIS na QT5 te bring het reeds 'n belangrike vooruitgang (hoofsaaklik wat Matthias Kuhn gedoen het) wat saam met Marco Bernasocchi op die Android "QField" rook wat geheel en al op QT5 gebaseer is. Daar is egter 'n paar beperkings om die nuwe QT5 aan die gang te kry as gevolg van die impak daarvan op QGIS - veral met webblaaier-legstukke (hoofsaaklik gebruik in Composer en ook 'n paar ander plekke in QGIS).

Dateer PyQt4 op PyQt5: Dit is die relatiewe veranderinge in die Python-taal vir Qt waarop die QGIS Python API gebaseer is. Ontstaan ​​verander die QT5 C ++ biblioteek, word ook verwag om na PyQt5 luislang biblioteek sodat hulle voordeel kan trek uit die voordele van die nuwe API in Python QT5.
2.7: opdatering van Python 3 na Python Tans loop alles op Python 2.7. Python 3 is die nuutste weergawe van python en word aanbeveel deur diegene wat die projek lei. Python 2 is effens onversoenbaar met Python 3 (amper eweredig aan die onversoenbaarheid tussen QGIS 2 en Qgis 3). Baie ontwikkelaars het Python Python 3 grootliks agteruit versoenbaar met Python 2 gemaak, maar die agteruitversoenbaarheid is nie so goed nie.
Verbetering van die QGIS API self: Een van die probleme met die handhawing van API-versoenbaarheid tussen weergawes is dat jy vir die langtermyn met jou ontwerpkeuses moet saamleef. Elke poging word in QGIS aangewend om nie die API in 'n reeks geringe vrystellings te breek nie. Die vrystelling van 'n QGIS-weergawe vir 3.0 met 'n API wat nie tans ondersteun word nie, sal ons 'n geleentheid gee om "huis skoon te maak" deur dinge in die API reg te stel waaraan ons nie voldoen nie. Jy kan 'n voorlopige lys van sien veranderinge voorgestel vir die 3.0 API.

Hoe om die 3.0 API te verander

Soos reeds genoem, sal weergawe 3.0 breek met QGIS weergawe 2.x en daar is 'n kans dat baie inproppe, bestaande toepassings en ander kode wat gebaseer is op die huidige API, sal breek. Wat kan dan gedoen word om die veranderinge te versag? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias en ander topontwikkelaars het maniere gesoek om die aantal API-onderbrekings te verminder, terwyl hulle voortgaan met die bevordering van die QGIS-kode wat gebaseer is op die volgende generasie biblioteke en sy eie interne API. Tydens ons laaste vergadering van die QGIS-projekbestuurskomitee het ons verskillende moontlikhede ontwikkel. Die volgende tabel gee 'n samevatting van wat Matthias Kuhn genadiglik saamgevat het en wat ons deels in hierdie artikel probeer translitereer het volgens op jou blog geplaas:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Release Date Einde Februarie 4 maande later 2.14 Siklus 8 Maande?
notas Update Python-kode van kern QGIS om Python 3-versoenbaar en PyQt5-versoenbaar te wees (gedeeltelike implementering vir sleutelfunksies, bv. Konsole, python-kernproppe, ens.)
Qt4 Si

Uitgereik in Debian Stretch (verskuldig in 'n jaar)

(webkit verwyder)

Ja Geen
Qt5 Geen

Mis QWebView - nuwe vervanging nie op alle platforms. Mis ook QPainter Engine.

Si Si
PyQt4 Si Si Geen
PyQt5 Geen Si Si
Python 2 Si Si Geen
Python 3 Geen Si Si
API opruiming Geen Geen Si
omhulsels
PyQt5 -> PyQt4
Verskaf ~ 90% agteruitkompatibiliteit
Geen Si Si
Mainstream Binêre Qt4 gebaseer Qt4 gebaseer Qt5 gebaseer
Prioriteitsbefondsing Python wrappers

Daar is twee belangrike dinge om in gedagte te hou oor Matias se voorstel:

In die eerste faseDie werk wat gedoen is in die reeks om 2.x ondersteuning QT5 voltooi, PyQt5 met Python 3.0, ondersteun Qt4, PyQt4 en Python 2.7. Dit impliseer dat alle veranderinge wat in die eerste fase gemaak is, verenigbaar sou wees met vorige 2.x weergawes. Python funksies sal opgeneem word bekendgestel sodat die ou API PyQt4 nog veral gebruik kan word wanneer saamgestel teen QT5, PyQt5, Python 3.0. By die gebruik van QGIS opgestel teen Qt4, PyQt4 en Python 2.7 sou daar geen onderbrekingsversoenbaarheid wees nie.
In die tweede fase, sou dit werk om QGIS 3.0 te produseer, die nuwe API bekend te stel. Dit sal Python 2.7 heeltemal uitskakel, insluitende ondersteuning vir Qt4 en PyQt4. Nuwe funksies in python toetrede tot die eerste fase sal in stand gehou word, met inagneming van al die luislang kode en ontwikkelings vir 2.x weergawes van QGIS voortgaan om te werk op die 3.x weergawes van QGIS. In hierdie fase word daar ook van u verwag om veranderinge aan te bring in die QGIS API wat sommige plugins kan verbreek. Om dit aan te spreek, sal ons 'n migreringsgids voorsien om die migrasieproses van 2.x QGIS-weergawes na 3.x QGIS-weergawes te fasiliteer.

Caveat emptor

Daar is 'n paar truuks wat in plek gestel moet word om te verseker dat migrasie na QGIS 3.0 minder pyn ly.

  • 1. SDaar moet op gelet word dat alhoewel die benadering hierbo probeer om die hoeveelheid werk wat bestaan ​​in skripsie op python in die plugins te verminder, dit nie noodwendig 100% sal wees nie. Daar sal waarskynlik gevalle wees waar die kode aangepas moet word, en in alle gevalle sal dit waarskynlik hersien moet word om te verseker dat dit behoorlik funksioneer.
    2. Daar is geen formeel gevestigde finansiële hulpbron om ontwikkelaars te betaal wat hul tyd vrywillig vir hierdie migrasieproses belê nie. As gevolg hiervan sal dit baie moeilik wees om presiese tydsraamwerke te gee vir hoe lank elke deel van die proses duur. Hierdie onsekerheid moet in ag geneem word tydens beplanning. Uiteraard is donasies welkom om te help om dit te laat gebeur.
    3. Daar is moontlik ontwikkelaars en instansies wat nuwe funksies vir QGIS 2.x-reekse finansier, en dit kan u werk beïnvloed. Dit is nodig om 'n sekere toekenning by die planne en begrotings van hierdie projekte in te sluit vir die migrasie na die QGIS 3.x-platform.
    4. As die QGIS-span aan 'n "totale verandering" werk, sal daar 'n relatief kort tyd wees waartydens QGIS onstabiel sal wees en voortdurend verander as gevolg van voortdurende opdaterings aan QGIS 3.0.
    4. As jy op 'n 'evolusionêre' manier ontwikkel, loop jy die risiko dat 3.0-ontwikkeling langer kan neem tensy jy 'n lojale groep ontwikkelaars het wat daaraan werk en dit gereed maak om te port.

    voorstelle

In die lig van al die bogenoemde inligting word een van die twee reëls aangedui:

1 Voorstel:

Stel 'n tussentydse weergawe 2.16 vry en begin dan met weergawe 3.0 as 'n prioriteit, met 'n ontwikkelingsvenster van 8 maande. Veranderinge wat in weergawe 2.16 aangebring is, sal probeer om versoenbaar te wees met weergawe 3.0 (sien python3 / pytq5).

2 Voorstel:

Begin 3.0 onmiddellik met 'n langer duur venster op QT5, Python 3.0 en PyQt5, en vra ontwikkelaars om hul werk op 3.0 te doen. Gaan voort met 2.x weergawes met gereelde tussenposes totdat 3.0 gereed is.

Alternatiewe voorstelle

Het u 'n alternatiewe voorstel? QGIS is geïnteresseerd in die kennis van moontlike alternatiewe. As u 'n voorstel wil indien, stuur dit aan tim@qgis.org met die onderwerp “QGIS 3.0-voorstel”.

Moet volg die QGIS blog, waar hierdie publikasie uitgekom het.

Golgi Alvarez

Skrywer, navorser, spesialis in Grondbestuursmodelle. Hy het deelgeneem aan die konseptualisering en implementering van modelle soos: National System of Property Administration SINAP in Honduras, Model of Management of Joint Municipalities in Honduras, Integrated Model of Cadastre Management - Register in Nicaragua, System of Administration of the Territory SAT in Colombia . Redakteur van die Geofumadas kennisblog sedert 2007 en skepper van die AulaGEO Akademie wat meer as 100 kursusse oor GIS - CAD - BIM - Digitale tweeling-onderwerpe insluit.

verwante Artikels

Skryf 'n opmerking

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

Terug na bo knoppie