QGIS

QGIS 3.0 - Ako, kedy a čo; z toho vyplýva

Mnohí sa pýtajú:

Kedy bude QGIS 3.0 prepustený?

V minulom roku (2015) projektový tím začal skúmať, kedy a ako mala byť prepustená QGIS 3.0. Sľúbili, podľa príspevku z Anita Graser, ktoré chceli jasne oznámiť používateľom a vývojárom svojich plánov pred uvedením QGIS 3.0. Nedávno sa pokúsili vysvetliť niektoré úvahy týkajúce sa vydania QGIS 3.0 a na konci príspevku je príležitosť predstaviť svoje nápady.

Prečo 3.0?

QGis_LogoHlavná verzia je zvyčajne vyhradená pre časy, keď sa v softvérovom rozhraní API urobí veľká zmena. Táto prestávka nie je pre projekt QGIS triviálnym rozhodnutím, pretože sme státisíce používateľov závislých na QGIS, a to pre naše vlastné použitie aj pre služby poskytované tretím stranám.

Príležitostné porušenie API je nevyhnutné na prispôsobenie architektúry zlepšenými prístupmi, novými knižnicami a opravami rozhodnutí v minulosti.

Aké sú dôsledky porušenia API?

Jedným z dôvodov, prečo sa toto porušenie API v QGIS 3.0 je, že to bude mať veľký dopad, ktorý by mohol rozbiť stovky rozvinutých pluginov, ktoré už nebudú kompatibilné s novým API a autormi nich robiť preskúmanie ich vývoja s cieľom zabezpečiť kompatibilitu s novým API.

Rozsah potrebných zmien vo veľkej miere závisí od:

  • Koľko zmien API ovplyvňuje súčasnú funkčnosť.
    Koľko bodov pluginy autori použili časti API, ktoré by sa mohli zmeniť.
  • Aké budú hlavné zmeny pre 3.0?

Existujú štyri kľúčové oblasti, ktoré chcete zmeniť v službe 3.0:

 

Qt4 aktualizácia QT5: Toto je základná sada knižníc, na ktorej je QGIS postavený na špičkovej úrovni, hovoríme o CORE-funkčnej úrovni platformy. QT tiež poskytuje knižnice na vykonávanie správy pamäte, operácií pripojenia a správy grafiky. Qt4 (na ktorom je momentálne založený QGIS) momentálne nie je vyvíjaný správcami knižnice Qt a môže mať problémy s funkčnosťou niektorých platforiem (napr. OS X) a dokonca zjednodušiť správu binárnych verzií (napr. Debian Testing a ďalšie vydanie Debianu „Roztiahnuť“). Proces zavádzania QGIS do QT5 už má dôležitý pokrok (hlavne to, čo urobil Matthias Kuhn), že spolu s Marcom Bernasocchim fajčí na Androide „QField“ založenom výlučne na QT5. Existujú však určité obmedzenia pri uvádzaní nového QT5 do prevádzky kvôli jeho vplyvu na QGIS – najmä s widgetmi webového prehliadača (používané hlavne v Composeri a tiež na niekoľkých ďalších miestach v QGIS).

Aktualizácia PyQt4 na PyQt5: Toto sú relatívne zmeny v jazyku Python pre Qt, na ktorom je založené QGIS Python API. Vyvstáva zmeniť na QT5 knižnica C ++, sa tiež očakáva, že prechod na PyQt5 knižnice Pythone, takže môžu využívať výhody nových API v Pythone QT5.
Aktualizácia Pythonu 2.7 na Python 3: Momentálne všetko beží na Pythone 2.7. Python 3 je najnovšia verzia jazyka python a odporúčajú ho tí, ktorí vedú tento projekt. Python 2 je mierne nekompatibilný s Pythonom 3 (takmer úmerný nekompatibilite medzi QGIS 2 a Qgis 3). Mnoho vývojárov urobilo python Python 3 väčšinou spätne kompatibilným s Pythonom 2, ale spätná kompatibilita nie je taká veľká.
Zlepšenie Qgis vlastné API: Jedným z problémov pri udržiavaní kompatibility API medzi verziami je, že musíte dlhodobo žiť so svojimi návrhmi. V QGIS sa vynakladá maximálne úsilie, aby nedošlo k porušeniu API v sérii menších vydaní. Vydanie verzie QGIS pre 3.0 s API, ktoré momentálne nie je podporované, nám poskytne príležitosť „vyčistiť si dom“ opravou vecí v API, s ktorými nie sme v súlade. Môžete si pozrieť predbežný zoznam Zmeny navrhované pre API 3.0.

Ako podporovať zmenu API 3.0

Ako už bolo spomenuté, verzia 3.0 prelomí QGIS verzie 2.x a je pravdepodobné, že sa prelomí veľa doplnkov, existujúcich aplikácií a ďalších kódov, ktoré sú založené na aktuálnom API. Čo možno urobiť na zmiernenie zmien? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias a ďalší špičkoví vývojári hľadali spôsoby, ako zmierniť počet zmien prerušenia API, a zároveň pokračovať v zdokonaľovaní kódovej základne QGIS založenej na budúcej generácii knižníc a jej vlastného interného API. Počas nášho posledného stretnutia Riadiaceho výboru projektu QGIS sme prešli rôznymi spôsobmi. V nasledujúcej tabuľke je zhrnuté to, čo milostivo zhrnul Matthias Kuhn a ktoré sme sa v tomto článku čiastočne pokúsili prepísať podľa toho, čo Publikované na vašom blogu:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Dátum vydania koniec februára 4 2.14 mesiacov ¿Cycle 8 mesiace?
Poznámky Aktualizácia jadra QGIS Pythone Python 3 byť kompatibilné a podporuje PyQt5 (čiastočné vykonávanie v kľúčových funkcií, napríklad konzoly Python jadro zásuvné moduly atď)
Qt4 Si

Zastarané v Debiane Stretch (splatná do roka)

(-webkit odstránený)

Áno No
Qt5 No

Mine QWebView - nový náhradný nie na všetkých platformách. Tiež minie QPainter Engine.

Si Si
PyQt4 Si Si No
PyQt5 No Si Si
Python 2 Si Si No
Python 3 No Si Si
vyčistenie API No No Si
obaly
PyQt5 -> PyQt4
~ 90% zaisťuje spätnej kompatibility
No Si Si
mainstream Binary založené Qt4 založené Qt4 založené Qt5
priorita financovania python obaly

Existujú dve dôležité veci o návrhu Matthias:

V prvej fázePráca sa vykonáva v sérii na dokončenie 2.x podpory QT5, PyQt5 pomocou Python 3.0, podporujúce Qt4, PyQt4 a Python 2.7. To znamená, že všetky zmeny vykonané v prvej etape by byť kompatibilné s predchádzajúcimi verziami 2.x. Python funkcie budú začlenené bude zavedený tak, že stará API PyQt4 možno používať aj naďalej, najmä pri kompilácii proti QT5, PyQt5, Python 3.0. Pomocou QGISu skompilovanej proti Qt4, PyQt4 a Python 2.7 by nezlomí kompatibilitu.
V druhej fázeTo bude pracovať pre výrobu QGIS 3.0, zavedenie novej API, úplne odstrániť Python 2.7, vrátane podpory Qt4 a PyQt4. Nové funkcie v Pythone vstupujúci do prvej fázy bude zachovaná, s prihliadnutím na všetky Python kód a vývoj pre 2.x verzie QGISu pokračovať v práci na verziách 3.x QGISu. Táto fáza sa tiež očakáva, že zavedenie zmien v QGIS API, ktoré by mohli zlomiť niektoré pluginy. K riešeniu bude poskytovať vedenie aa migrácia v snahe uľahčiť prechod verzií 2.x QGIS 3.x QGIS verzie.

bez záruky

Existuje niekoľko trikov, ktoré majú byť požiadaní, aby zabezpečila, že migrácia do QGIS 3.0 znieť menej bolestivé.

  • 1. SJe potrebné poznamenať, že zatiaľ čo prístup uvedený vyššie sa snaží minimalizovať množstvo práce, ktorá existuje pri skriptovaní na pythone v doplnkoch, nemusí to byť nevyhnutne 100%. S najväčšou pravdepodobnosťou sa vyskytnú prípady, keď bude potrebné vylepšiť kód, a prinajmenšom vo všetkých prípadoch bude pravdepodobne potrebné ho revidovať, aby sa zabezpečilo jeho správne fungovanie.
    2. Neexistuje žiadny formálne ustanovený finančný zdroj, ktorý by platil vývojárom, ktorí dobrovoľne investujú svoj čas do tohto procesu migrácie. Z tohto dôvodu bude veľmi ťažké presne určiť časové rámce, ako dlho bude trvať každá časť procesu. Túto neistotu je potrebné zohľadniť pri plánovaní. Darčeky sú samozrejme vítané, aby sa tak stalo.
    3. Môžu existovať vývojári a inštitúcie, ktoré financujú nové funkcie pre sériu QGIS 2.x a to môže mať vplyv na vašu prácu. Je potrebné zahrnúť do plánov a rozpočtov týchto projektov určitú alokáciu na čelenie prechodu na platformu QGIS 3.x.
    4. Ak tím QGIS pracuje na „totálnej zmene“, bude relatívne krátky čas, počas ktorého bude QGIS nestabilný a neustále sa mení z dôvodu prebiehajúcich aktualizácií QGIS 3.0.
    4. Ak sa vyvíjate „evolučným“ spôsobom, riskujete, že vývoj 3.0 môže trvať dlhšie, pokiaľ na ňom nepracuje lojálna skupina vývojárov a nepripravuje ho na port.

    návrhy

S ohľadom na všetky vyššie uvedené údaje, jeden z dvoch smerov činnosti sú navrhnuté:

1 návrh:

Vydajte dočasnú verziu 2.16 a potom začnite prioritne pracovať na verzii 3.0 s vývojovým oknom 8 mesiacov. Zmeny vykonané vo verzii 2.16 sa budú usilovať o kompatibilitu s verziou 3.0 (pozri python3 / pytq5).

2 návrh:

Skákanie raz 3.0 s viacerými predĺženou dobu oknom QT5, Python 3.0 a PyQt5 a požiadajte vývojárov, aby robiť svoju prácu v 3.0. Pokračujte 2.x verziách s obvyklou frekvenciou až 3.0 je pripravený.

alternatívne návrhy

Máte alternatívny návrh? QGIS má záujem vedieť o možných alternatívach. Ak chcete podať návrh, pošlite na adresu tim@qgis.org s predmetom „Návrh QGIS 3.0“.

By mal nasledovať QGIS blogOdkiaľ prišla táto publikácia.

Golgi Alvarez

Spisovateľ, výskumník, špecialista na modely hospodárenia s pôdou. Podieľal sa na konceptualizácii a implementácii modelov ako: Národný systém správy majetku SINAP v Hondurase, Model hospodárenia spoločných obcí v Hondurase, Integrovaný model správy katastra - Register v Nikarague, Systém správy územia SAT v Kolumbii . Editor vedomostného blogu Geofumadas od roku 2007 a tvorca akadémie AulaGEO, ktorá zahŕňa viac ako 100 kurzov na témy GIS - CAD - BIM - Digitálne dvojičky.

súvisiace články

zanechať komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

Tlačidlo späť nahor