QGIS 3.0 - Kako, kada i šta; implicira

Mnogi od nas se pitaju:

Kada će se objaviti QGIS 3.0?

Prošle godine (2015) projektni tim je počeo da istražuje kada i kako će biti objavljen QGIS 3.0. Obećali su, prema postu Anita Graser, da bi jasno prenijeli korisnicima i programerima svoje planove pre pokretanja QGIS 3.0-a. Nedavno su pokušali izložiti neke od razloga za lansiranje QGIS 3.0-a i na kraju posta postoji mogućnost da predstavimo naše ideje.

Zašto 3.0?

QGis_LogoObično velika verzija rezervisana je za vrijeme kada se napravi velika promjena u API-u vašeg softvera. Ova pauza nije trivijalna odluka za QGIS projekat jer smo stotine hiljada korisnika koji zavise od QGIS-a, kako za sopstvenu upotrebu, tako i za usluge pružene trećim stranama.

Povremeno razbijanje API je potrebno da primi ažuriranja arhitekture sa poboljšanim pristupima, nove biblioteke i ispravke odluke u prošlosti.

Koje su posljedice kršenja API?

Jedan od razloga zašto je to kršenje API u QGIS 3.0 je u tome što će imati veliki utjecaj, što bi moglo slomiti stotine razvijenih dodatke koji više ne bi bio kompatibilan sa novim API i autori ovih ima veze pregled njihovih razvoja kako bi se osigurala kompatibilnost sa novim API-jem.

Obim promjene potrebne u velikoj mjeri ovisi o:

  • Mnoge promjene API utjecati na trenutnu funkcionalnost.
    Koliko će poena plugin autori su koristili dijelove API koji će promijeniti.
  • Koje su glavne promjene na 3.0?

Postoje četiri ključna područja koja su u potrazi za promjene na 3.0:

Qt4 na QT5 ažuriranje: Ovo je osnovni skup biblioteka u kojem je QGIS izgrađen na najvišem nivou, govorimo o CORE-funkcionalnoj razini platforme. QT takođe nudi biblioteke za upravljanje mumijama, operacije povezivanja i upravljanje grafikom. Qt4 (na kojem se trenutno temelji QGIS) trenutno ne razvijaju oni odgovorni za Qt knjižnicu i mogli bi imati problema u pogledu funkcionalnosti s nekim platformama (na primjer, OS X), pa čak i olakšati upravljanje binarnim verzijama (na primjer Debian testiranje i sljedeća verzija Debianovog „Stretch“). Proces dovođenja QGIS-a u QT5 već ima važan pomak (uglavnom ono što je učinio Matthias Kuhn) koji zajedno s Marcom Bernasocchijem puši na Androidu «QField» koji je u potpunosti baziran na QT5. Međutim, postoje neka ograničenja u pokretanju novog QT5-a zbog njegovog utjecaja na QGIS - posebno kod widgeta web pretraživača (koji se uglavnom koriste u Composer-u, ali i nekim drugim mjestima QGIS-a).

PyQt4 na PyQt5 ažuriranje: Ove promjene se odnose na Python jezika za Qt u API QGIS Python se temelji. Nastaje promijeniti QT5 C ++ biblioteka, očekuje se i prenijeti na PyQt5 Python biblioteka, tako da oni mogu iskoristiti prednosti novog API u Pythonu QT5.
Ažuriranje Python Python 2.7 3 na: Trenutno sve radi na Python 2.7. Python 3 je najnovija verzija pythona i preporučuje se od strane onih koji vode taj projekt. Python 2 je blago nekompatibilan sa Python 3 (u meri koja je skoro proporcionalna neusaglašenosti između QGIS 2 i Qgis 3). Mnogi programeri su napravili Python Python 3 u velikoj meri kompatibilne sa ranijim verzijama Python 2-a, ali obratna kompatibilnost nije toliko dobra.
Poboljšanje QGIS vlastitu API: Jedan od problema sa kojim se održava API kompatibilnost među verzijama je da morate živjeti sa svojim opcijama dizajna na duži rok. U QGIS-u se ulažu svi napori da se API ne razbije u nizu manjih izdanja. Oslobađanje QGIS verzije za 3.0 sa API-jem koji nije kompatibilan sa trenutnom dat će priliku da se "očisti kuća" fiksiranjem stvari u API-ju koje smo mi sa kojima postoji neusklađenost. Možete vidjeti privremenu listu 3.0 predložene promjene u API.

Kako podržati mijenja API 3.0

Kao što je već spomenuto, verzija 3.0 raskid sa QGIS verzija 2.x izazvati i postoji mogućnost da mnogi dodataka, postojeće aplikacije i drugi kodovi se temelje na trenutnom API lom. Dakle, ono što se može učiniti da se ublaže promjene? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias i drugih velikih programeri su u potrazi za načine za ublažavanje broj API razbijanje promjene dok je još napreduje bazu kod QGIS biti baziran na novoj generaciji biblioteka i svojim internim API. Tokom našeg posljednjeg sastanka Upravnog odbora QGIS Projekat je geofumó kroz različite mogućnosti. U sljedećoj tabeli sumira ono što Matthias Kuhn sažeta nježno, a dijelom su pokušali da transkribovati u ovom članku prema onome što Objavili su na svom blogu:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Datum objave Kraja februara 4 2.14 mjeseci ¿Cycle 8 mjeseci?
Notas Ažuriranje osnovnih QGIS Python kod Python 3 biti kompatibilan i podržava PyQt5 (parcijalne implementacije za ključne funkcije npr konzola, piton core pluginova itd)
Qt4 Si

Zastarjele u Debian Stretch (zbog za godinu dana)

(-webkit uklonjen)

Da Ne
Qt5 Ne

Promašaji QWebView - novi zamjena nije na svim platformama. Također Misses QPainter motora.

Si Si
PyQt4 Si Si Ne
PyQt5 Ne Si Si
Python 2 Si Si Ne
Python 3 Ne Si Si
čišćenje API Ne Ne Si
Mašine za pakovanje
PyQt5 -> PyQt4
~ 90% osigurava kompatibilnost unazad
Ne Si Si
mainstream Binary zasnovan Qt4 zasnovan Qt4 zasnovan Qt5
prioritet finansiranje Python omoti

Postoje dvije bitne stvari koje treba napomenuti o prijedlogu Matthias:

U prvoj faziRad se odvija u seriji završiti 2.x podrške QT5, PyQt5 koristeći Python 3.0, podržavajući Qt4, PyQt4 i Python 2.7. To podrazumijeva da se sve promjene napravljene u prvoj fazi će biti kompatibilan sa starijim verzijama 2.x. Python karakteristike će se ugraditi će se uvesti tako da je stara API PyQt4 i dalje mogu koristiti posebno kada je sastavio protiv QT5, PyQt5, Python 3.0. Korištenjem QGIS sastavio protiv Qt4, PyQt4 i Python 2.7 neće slomiti kompatibilnost.
U drugoj faziTo će raditi za proizvodnju QGIS 3.0, uvođenjem novih API-ja, u potpunosti uklonite Python 2.7, uključujući podršku za Qt4 i PyQt4. Nove funkcije u Python ulazak u prvoj fazi će se održavati, uzimajući u obzir sve Python kod i razvoja za 2.x verzije QGIS nastaviti raditi na 3.x verzije QGIS. Ova faza se očekuje da će uvesti promjene u QGIS API koji može razbiti neke dodatke. Za rješavanje ovog će dati smjernice Tražim migracija u pokušaju da olakša migracije verzija 2.x QGIS 3.x QGIS verzije.

caveat emptor

Postoji nekoliko trikova da se pita kako bi se osiguralo da je prelazak na QGIS 3.0 zvuči manje bolno.

  • 1. Se treba napomenuti da, iako je fokus postavljen kako bi se smanjila količina rada na Python dodataka, to neće nužno 100%. Tu će najvjerovatnije slučajevima kada kod mora biti prilagođen i u svim slučajevima u najmanju ruku, vi vjerovatno morati biti revidiran kako bi se osiguralo da se i dalje funkcionira kako treba.
    2. Tu se nema formalno osnovana finansijskih sredstava da plati programere koji dobrovoljno uložiti svoje vrijeme za ovaj proces migracije. Zbog toga, to će biti vrlo teško dati točne vremena koliko će biti potrebno svaki dio procesa. To treba uzeti u obzir ovu neizvjesnost u planiranju. Naravno po volji otvara da pomognu da se to dogodi.
    3. Tu može biti programeri i institucijama tamo da finansiraju nove mogućnosti za 2.x QGIS seriju i to može utjecati na njihov rad. Biti uključena u planove i budžete ovih projekata, neki dodjela za rješavanje migracije na 3.x QGIS platformu.
    4. Ako QGIS tim radi na "ukupnoj promjeni", bit će relativno kratko vrijeme tijekom kojeg će QGIS biti nestabilan i stalno se mijenjati zbog stalnih ažuriranja QGIS 3.0-a.
    4 Ako se razvije na "evolucijski" način, postoji rizik da razvoj 3.0-a može trajati i duže, osim ako ne postoji vjerna grupa programera koja radi na tome i pripremi ih za migraciju.

    prijedloga

U svjetlu svih navedene informacije, jedan od dva načina predlažu:

1 prijedlog:

2.16 objaviti nacrt, a zatim početi raditi na verziji 3.0 kao prioritet, s razvojem prozor 8 mjeseci. Promjene su u verziji 2.16 traži da bude kompatibilan sa 3.0 verzija (vidi python3 / pytq5).

2 prijedlog:

Se bacaju jednom 3.0 sa više prošireni prozor trajanje na QT5, Python 3.0 i PyQt5 i pitati programere da rade svoj posao u 3.0. Nastaviti sa 2.x verzijama sa uobičajenim frekvencija dok 3.0 je spreman.

alternativne prijedloge

Da li imate alternativni prijedlog? A QGIS brine ništa o mogućim alternativama. Ako želite da podnese prijedlog, pošaljite tim@qgis.org sa temom "QGIS 3.0 Proposal".

Treba pratiti QGIS blogOdakle je došao ove publikacije.

Ostavite odgovor

Vaša e-mail adresa neće biti objavljena.

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.