QGIS 3.0 - Si, kur dhe çfarë; nënkupton

Shumë prej nesh janë duke kërkuar:

Kur do të lëshohet QGIS 3.0?

Vitin e kaluar (2015) ekipi i projektit filloi të hetonte se kur dhe si do të lirohej QGIS 3.0. Ata premtuan, sipas një postimi nga Anita GRASER, se ata do të përçonin qartë planet e tyre tek përdoruesit dhe zhvilluesit përpara se të lançonin QGIS 3.0. Ata kohët e fundit janë përpjekur të ekspozojnë disa nga konsideratat për një lëshim të QGIS 3.0 dhe në fund të postimit ka një mundësi që ne të paraqesim idetë tona.

Pse 3.0?

QGis_LogoNë mënyrë tipike, një version i madh është i rezervuar për kohën kur një ndryshim i madh është bërë në API të softuerit tuaj. Kjo pushim nuk është një vendim i parëndësishëm për projektin QGIS pasi që ne jemi qindra mijëra përdorues që varen nga QGIS, si për përdorimin tonë ashtu edhe për shërbimet e ofruara palëve të treta.

Herë pas here thyer API është e nevojshme për të akomoduar përditësimin arkitekturën me qasjet përmirësuar, biblioteka të reja dhe korrigjimet në vendimet e marra në të kaluarën.

Cilat janë pasojat e thyer API?

Një arsye pse kjo shkelje e API në QGIS 3.0 është se ajo do të ketë një ndikim të madh, të cilat mund të thyejnë qindra plugins të zhvilluara se nuk do të jetë në përputhje me API të reja dhe autorët e tyre kanë të bëjnë një rishikim të zhvillimeve të tyre për të siguruar pajtueshmërinë me API-n e re.

Shtrirja e ndryshimeve të nevojshme varet në një masë të madhe nga:

  • Sa ndryshime në API ndikojnë në funksionalitetin aktual.
    Në sa pika autorët e plugin kanë përdorur pjesë të API që do të ndryshonin.
  • Cilat do të jenë ndryshimet kryesore për 3.0?

Ekzistojnë katër fusha kyçe që po kërkoni të ndryshoni në 3.0:

 

Qt4 për përditësim QT5: Ky është grupi themelor i bibliotekave në të cilat është ndërtuar QGIS në nivelin më të lartë, ne po flasim për nivelin CORE-funksional të platformës. QT gjithashtu siguron biblioteka për të kryer menaxhimin e kujtesës, operacionet e lidhjes dhe menaxhimin e grafikës. Qt4 (mbi të cilin bazohet aktualisht QGIS) nuk po zhvillohet aktualisht nga ata që janë përgjegjës për bibliotekën Qt dhe mund të ketë probleme përsa i përket funksionalitetit me disa platforma (për shembull, OS X) dhe madje të lehtësojë menaxhimin e versioneve binare (për shembull Debian Testing dhe versioni i ardhshëm i Debian "Stretch"). Procesi i sjelljes së QGIS në QT5 tashmë ka një përparim të rëndësishëm (kryesisht atë që ka bërë Matthias Kuhn) i cili së bashku me Marco Bernasocchi pinë duhan në Android «QField» bazuar tërësisht në QT5. Sidoqoftë, ka disa kufizime në lançimin e QT5 të ri për shkak të ndikimit të tij në QGIS - veçanërisht me widgetet e shfletuesit të internetit (të përdorura kryesisht në Kompozitor dhe gjithashtu disa vende të tjera në QGIS).

PyQt4 për përditësim PyQt5: Këto janë ndryshimet relative të gjuhës Python për Qt në të cilën bazohet API Python QGIS. Lind ndryshojë bibliotekën e QT5 C ++, pritet gjithashtu për të transferuar në bibliotekën PyQt5 python në mënyrë që ata mund të përfitojnë nga përfitimet e API të ri në Python QT5.
Përditësimi Python Python 2.7 3 për: Aktualisht gjithçka funksionon në Python 2.7. Python 3 është versioni i fundit i python dhe rekomandohet nga ata që drejtojnë atë projekt. Python 2 është paksa i papajtueshëm me Python 3 (pothuajse proporcional me papajtueshmërinë midis QGIS 2 dhe Qgis 3). Shumë zhvillues e kanë bërë python Python 3 kryesisht të prapambetur të pajtueshëm me Python 2, por pajtueshmëria e prapambetur nuk është aq e madhe.
Përmirësimi API QGIS vet: Një nga problemet me të cilat ajo ruan përputhshmërinë e API midis versioneve është se ju duhet të jetoni me opsionet tuaja të dizajnit për një kohë të gjatë. Në QGIS bëhet çdo përpjekje për të mos prishur API brenda një serie lëshimesh të vogla. Lëshimi i një versioni të QGIS për 3.0 me një API që nuk është aktual me rrymën do të japë një mundësi për të "pastruar shtëpinë" duke rregulluar gjërat në API me të cilat kemi mosrespektim. Ju mund të shihni një listë të përkohshme të 3.0 propozoi ndryshime në API.

Si të mbështesim ndryshimin e API 3.0

Siç është përmendur tashmë, versioni 3.0 do të prishet me versionin QGIS 2.x dhe ekziston mundësia që shumë shtojca, aplikacione ekzistuese dhe kode të tjerë që bazohen në API-në aktuale të prishen. Pra, çfarë mund të bëhet për të zbutur ndryshimet? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias dhe zhvillues të tjerë të lartë kanë kërkuar mënyra për të zbutur numrin e ndryshimeve të ndërprerjes së API ndërsa vazhdojnë të avancojnë bazën e kodeve QGIS duke u bazuar në gjeneratën e ardhshme të bibliotekave dhe API-në e vet të brendshme. Gjatë takimit tonë të fundit të Komitetit Drejtues të Projektit QGIS ne gjeofumizuam përmes mundësive të ndryshme. Tabela e mëposhtme përmbledh atë që Matthias Kuhn përmblodhi me mirësi dhe që ne pjesërisht jemi përpjekur të transliterojmë në këtë artikull, në përputhje me atë që Ata publikuar në blogun e tij:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Release Date Fundi i shkurtit 4 2.14 muaj muaj ¿Cikli 8?
Notas Update i core kodit QGIS Python Python 3 të jetë në përputhje dhe mbështet PyQt5 (zbatimin e pjesshëm për kyç funksionalitetin p.sh. tastierë, plugins python core, etj)
Qt4 Si

Deprecated në Debian Stretch (për shkak në një vit)

(-webkit hequr)

Po jo
Qt5 jo

Misses QWebView - zëvendësim i ri jo në të gjitha platformat. Gjithashtu mungon QPainter Engine.

Si Si
PyQt4 Si Si jo
PyQt5 jo Si Si
Python 2 Si Si jo
Python 3 jo Si Si
Pastrimi i API jo jo Si
mbështjellësve
PyQt5 -> PyQt4
~ 90% siguron pajtueshmërinë prapambetur
jo Si Si
rrjedhë binar bazuar Qt4 bazuar Qt4 bazuar Qt5
prioritet financimi mbështjellësve Python

Ka dy gjëra të rëndësishme të theksohet në lidhje me Matthias propozim:

Në fazën e parëPuna është bërë në seri për të përfunduar 2.x mbështetje QT5, PyQt5 përdorur Python 3.0, mbështetur Qt4, PyQt4 dhe Python 2.7. Kjo nënkupton se të gjitha ndryshimet e bëra në fazën e parë do të jetë në përputhje me versionet e mëparshme 2.x. Karakteristika Python do të përfshihen do të futet në mënyrë që vjetër API PyQt4 ende mund të përdoret veçanërisht kur përpiluar kundër QT5, PyQt5, Python 3.0. Duke përdorur QGIS hartuar kundër Qt4, PyQt4 dhe Python 2.7 nuk do të thyejnë compatibility.
Në fazën e dytëAjo do të punojë për të prodhuar state 3.0, futjen e API të re, krejtësisht të hequr Python 2.7, duke përfshirë mbështetjen për Qt4 dhe PyQt4. Tipare të reja në Python hyjnë në fazën e parë do të mbahet, duke marrë parasysh të gjithë kodin Python dhe zhvillimet për versionet 2.x të QGIS vazhdojë të punojë në versionet 3.x e QGIS. Kjo fazë pritet gjithashtu për të futur ndryshimet në QGIS API që mund të thyejnë disa plugins. Për të adresuar këtë do të sigurojë udhëzime migrimin aa që të përpiqen për të lehtësuar migrimin e versioneve 2.x QGIS 3.x QGIS versionet.

caveat emptor

Ka disa truket që do të kërkohet për të siguruar që migrimi të QGIS 3.0 tingëllojë më pak të dhimbshme.

  • 1. SDuhet të theksohet se ndërsa qasja e përcaktuar më sipër përpiqet të minimizojë sasinë e punës për shkrimin e python në shtojca, kjo nuk do të jetë domosdoshmërisht 100%. Ka shumë të ngjarë të ketë raste kur kodi duhet të rregullohet dhe të paktën në të gjitha rastet, do të duhet të rishikohet në mënyrë që të sigurohet që ai të vazhdojë të funksionojë si duhet.
    2. Nuk ka asnjë burim financiar të vendosur zyrtarisht për të paguar zhvilluesit që investojnë vullnetarisht kohën e tyre për këtë proces migrimi. Për shkak të kësaj, do të jetë shumë e vështirë të japësh afate kohore të sakta për sa kohë do të zgjasë secila pjesë e procesit. Kjo pasiguri duhet të merret parasysh gjatë planifikimit. Sigurisht që donacionet janë të mirëseardhura për të ndihmuar në realizimin e kësaj.
    3. Mund të ketë zhvillues dhe institucione atje që financojnë karakteristika të reja për serinë QGIS 2.x dhe kjo mund të ndikojë në punën tuaj. Shtë e nevojshme të përfshihet në planet dhe buxhetet e këtyre projekteve, një alokim i caktuar për t'u përballur me migrimin në platformën QGIS 3.x.
    4. Nëse ekipi i QGIS punon për një "ndryshim total", do të ketë një kohë relativisht të shkurtër gjatë së cilës QGIS do të jetë e paqëndrueshme dhe vazhdimisht ndryshon për shkak të azhurnimeve të vazhdueshme të QGIS 3.0.
    4. Nëse zhvilloheni në një mënyrë 'evolucionare', rrezikoni që zhvillimi 3.0 të mund të zgjasë më gjatë nëse nuk keni një grup besnik zhvilluesish që punojnë në të dhe nuk ju bëjnë gati të migroni.

    propozimet

Në dritën e të gjitha informacioneve të mësipërme, propozohet një nga dy linjat e veprimit:

Propozimi 1:

Lëshoni një version të përkohshëm 2.16 dhe më pas filloni të punoni në versionin 3.0 si përparësi, me një dritare zhvillimi prej 8 muajsh. Ndryshimet e bëra në versionin 2.16 do të kërkojnë të jenë në përputhje me versionin 3.0 (shih python3 / pytq5).

Propozimi 2:

Nisni menjëherë 3.0 me një dritare më të gjatë në QT5, Python 3.0 dhe PyQt5 dhe kërkoni nga zhvilluesit që të bëjnë punën e tyre në 3.0. Vazhdoni me versionet 2.x në intervale të rregullta derisa 3.0 të jetë gati.

propozime alternative

Keni një propozim alternativ? QGIS është i interesuar të dijë për alternativat e mundshme. Nëse dëshironi të paraqisni një propozim, ju lutemi dërgoni në tim@qgis.org me temën "Propozim QGIS 3.0".

Duhet të ndjekë QGIS blog, Nga ku doli ky botim.

Lini një përgjigje

Adresa juaj e emailit nuk do të publikohet.

Kjo faqe përdor Akismet për të reduktuar spamin. Mësoni se si përpunohen të dhënat tuaja të komenteve.