QGIS 3.0 - Kako, kada i što; sredstva

Mnogi se pitaju:

Kada će QGIS 3.0 biti objavljen?

Prošle je godine (2015) projektni tim počeo istraživati ​​kada i kako će QGIS 3.0 biti objavljen. Obećali su, prema postu iz Anita Graser, da bi jasno predočili korisnicima i programerima svojih planova prije pokretanja QGIS 3.0. Nedavno su pokušali otkriti neke od razmatranja za pokretanje QGIS 3.0 i na kraju posta postoji prilika za predstavljanje naših ideja.

Zašto 3.0?

QGis_LogoUobičajeno je da je glavna verzija rezervirana za vrijeme kada je velika promjena napravljena API-ju vašeg softvera. Ova pauza nije trivijalna odluka za QGIS projekt, jer stotine tisuća korisnika koji ovise o QGIS-u, kako za vlastitu upotrebu tako i za usluge koje se pružaju trećim stranama.

Povremeno je razbijanje API-ja potrebno za prilagodbu ažuriranja arhitekture s poboljšanim pristupima, novim knjižnicama i korekcijama odluka donesenih u prošlosti.

Koje su posljedice prekida API-ja?

Jedan od razloga zašto je ovo kršenje API-ja u QGIS 3.0-u to što će imati velik utjecaj, što bi moglo razbiti stotine razvijenih dodataka koji više ne bi bili kompatibilni s novim API-jem i koji bi autori trebali raditi pregled njihovog razvoja kako bi se osigurala kompatibilnost s novim API-jem.

Opseg potrebnih promjena ovisi u velikoj mjeri o:

  • Koliko promjena u API-ju utječu na trenutnu funkcionalnost.
    Koliko bodova autori čepova koriste dijelove API-ja koji bi promijenili.
  • Što će biti glavne promjene za 3.0?

Postoje četiri ključna područja na koja se želite promijeniti u 3.0-u:

Qt4 ažuriranje na QT5: Ovo je osnovni skup knjižnica u kojima je QGIS izgrađen na najvišoj razini, govorimo o CORE-funkcionalnoj razini platforme. QT također nudi knjižnice 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 iskorak (uglavnom ono što je učinio Matthias Kuhn) koji zajedno s Marcom Bernasocchijem puši na Androidu "QField" koji se u potpunosti temelji na QT5. No, postoje neka ograničenja u pokretanju novog QT5-a zbog njegovog utjecaja na QGIS - posebno kod widgeta web preglednika (koji se uglavnom koriste u Composer-u, ali i nekim drugim mjestima QGIS-a).

Ažurirajte PyQt4 na PyQt5: To su relativne promjene u pitonskom jeziku za Qt na kojem se temelji QGIS Python API. Predlaže se promjena biblioteke QT5 C + +, a također se očekuje da premjestite Python knjižnicu na PyQt5 kako bi se iskoristile prednosti novog QT5 API-ja u Pythonu.
2.7: Ažuriranje Python 3 u Python Trenutno sve radi na Python 2.7. Python 3 je najnovija inačica python-a i preporučuje se onima koji vode taj projekt. Python 2 je neznatno nespojiv s Python 3 (u mjeri koja je gotovo proporcionalna nespojivosti između QGIS 2 i Qgis 3). Mnogi programeri napravili su Python Python 3 u velikoj mjeri kompatibilni s ranijim verzijama Python 2, ali obrnuta kompatibilnost nije tako dobra.
Poboljšanje samog QGIS API-ja: Jedan od problema s kojim se održava kompatibilnost API-ja među verzijama jest taj da morate dugo živjeti s vašim mogućnostima dizajna. U QGIS-u se ulažu svi napori da se API ne razbije u nizu manjih izdanja. Oslobađanje QGIS verzije za 3.0 s API-jem koji nije kompatibilan s trenutnom dat će priliku za "očistiti kuću" popravljanjem stvari u API-ju s kojima imamo neusklađenost. Možete vidjeti privremeni popis predložene izmjene za 3.0 API.

Kako podrľati promjenu API-ja 3.0

Kao što je već spomenuto, verziju 3.0 raskid s QGiS verziji 2.x uzrokovati i postoji mogućnost da mnogi dodatci, postojeće aplikacije i drugi kodovi temelje se na trenutnom API lom. Pa što se može učiniti kako bi se ublažile promjene? Matija 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, a još uvijek napreduje osnovica kod QGiS se temeljiti na novoj generaciji knjižnica i njihove vlastite unutarnje API. Tijekom posljednjeg sastanka Upravnog odbora QGIS projekta bio je geofumó kroz nekoliko mogućnosti. Sljedeća tablica sažima ono što je Matthias Kuhn ljubazno sažeo i koji smo dijelom pokušali transliterirati u ovom članku prema onome što objavljeno na vašem blogu:


QGIS 2.14 LTR
QGIS 2.16? QGIS 3.0
Datum izdavanja Kraj veljače 4 mjeseci kasnije 2.14 Ciklus 8 mjeseci?
bilješke Ažuriranje python koda jezgrene QGIS-a da bi bio kompatibilan s Python 3 i PyQt5 kompatibilnim (djelomična implementacija za ključne funkcionalnosti, npr. Konzolu, dodatke jezgri python itd.)
Qt4 Si

Deprecated u Debian Stretch (zbog jedne godine)

(uklonjen je webkit)

Da Ne
Qt5 Ne

Propušta QWebView - nova zamjena nije na svim platformama. Također propušta QPainter Engine.

Si Si
PyQt4 Si Si Ne
PyQt5 Ne Si Si
Python 2 Si Si Ne
Python 3 Ne Si Si
Čišćenje API-ja Ne Ne Si
omotača
PyQt5 -> PyQt4
Pruža ~ 90% kompatibilnost unatrag
Ne Si Si
Mainstream binarni Na temelju Qt4 Na temelju Qt4 Na temelju Qt5
Prioritet financiranja Python omotači

Postoje dvije važne stvari koje treba imati na umu o Matiasovom prijedlogu:

U prvoj faziRad se obavlja u seriji završiti 2.x podršku QT5, PyQt5 pomoću Python 3.0, podržava Qt4, PyQt4 i Python 2.7. To podrazumijeva da će sve promjene u prvoj fazi biti kompatibilne s ranijim 2.x verzijama. Python značajke će biti ugrađeni će se uvesti tako da je stari API PyQt4 i dalje mogu koristiti posebno kada sastavljen od QT5, PyQt5, Python 3.0. Kada koristite QGIS sastavljen na Qt4, PyQt4 i Python 2.7 ne bi bilo kompatibilnosti sa slomom.
U drugoj faziTo će raditi za proizvodnju QGiS 3.0, uvođenjem novih API, potpuno uklonili Python 2.7, uključujući podršku za Qt4 i PyQt4. Nove značajke u pitona ulaze u prvu fazu će se održavati, uzimajući u obzir sve python kod i razvoj za 2.x verzije QGiS nastaviti raditi na 3.x verzije QGiS. U ovoj fazi se također očekuje da uvodite promjene u QGIS API koji mogu razbiti neke dodatke. Da bismo to riješili, pružit ćemo vodič za migraciju kako bismo olakšali proces migracije iz verzija 2.x QGIS u verzije 3.x QGIS.

Caveat emptor

Postoji nekoliko trikova koje treba staviti na mjesto kako bi se osiguralo da migracija na QGIS 3.0 zvuči manje bolno.

  • 1. STreba napomenuti da, iako je gore navedeni pristup namijenjen minimiziranju količine posla u pisanju python-a u dodatcima, to ne mora nužno biti u 100%. Najvjerojatnije će biti slučajevi u kojima se kôd mora prilagoditi, a barem u svim slučajevima, vjerojatno će biti potrebno pregledati kako bi se osiguralo da i dalje funkcionira ispravno.
    2. Nema formalno utvrđenih financijskih sredstava za plaćanje programera koji dragovoljno ulažu svoje vrijeme u ovaj migracijski proces. Zbog toga će biti vrlo teško dati točne vremenske rokove koliko će trajati svaki dio procesa. Ova neizvjesnost mora se uzeti u obzir pri planiranju. Naravno, donacije su dobrodošle da pomognu da se to dogodi.
    3. Postoji svibanj biti programeri i institucije vani koji financiraju nove značajke za 2.x QGIS serije i to može utjecati na njihov rad. U planovima i proračunima tih projekata potrebno je uključiti neke alokacije za rješavanje migracije na platformu 3.x QGIS.
    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 potrajati dulje, osim ako ne postoji vjerna grupa programera koja radi na tome i pripremi ih za migraciju.

    prijedlozi

U svjetlu svih gore navedenih informacija, predlaže se jedno od dvije linije djelovanja:

1 prijedlog:

Izdajte privremenu 2.16 verziju i počnite raditi na verziji 3.0 kao prioritet, s prozorom razvoja od 8 mjeseci. Izmjene napravljene u verziji 2.16 izgledat će kompatibilne s verzijom 3.0 (vidi python3 / pytq5).

2 prijedlog:

Pokrenite 3.0 istodobno s prozorom duljeg trajanja na QT5, Python 3.0 i PyQt5 i zamolite programere da rade svoj posao na 3.0-u. Nastavite s verzijama 2.x u redovitim intervalima sve dok 3.0 nije spreman.

Alternativni prijedlozi

Imate li alternativni prijedlog? QGIS je zainteresiran za poznavanje mogućih alternativa. Ako želite podnijeti prijedlog, pošaljite ga tim@qgis.org s temom "QGIS 3.0 Proposal".

Trebali slijediti QGIS blog, gdje je ova publikacija izašla.

Ostavite odgovor

Vaša email adresa neće biti objavljen.

Ova web stranica koristi Akismet za smanjenje neželjene pošte. Saznajte kako se podaci vašeg komentara obrađuju.