QGIS 3.0 - Kako, kada i šta; to 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, koju će jasno prenijeti korisnicima i programerima svojih planova prije objavljivanja QGIS 3.0. Nedavno su pokušali izložiti neke od razmatranja za QGIS 3.0 izdanje i na kraju posta postoji prilika da predstavimo svoje ideje.

Zašto 3.0?

QGis_LogoObično je glavna verzija rezervirana za vrijeme kada se izvrši velika promjena u API-ju vašeg softvera. Ova stanka nije trivijalna odluka za QGIS projekt jer imamo stotine hiljada korisnika koji ovise o QGIS-u, kako za vlastitu 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 kojima je QGIS izgrađen na najvišem nivou, govorimo o CORE-funkcionalnom nivou platforme. QT takođe nudi biblioteke za izvršavanje upravljanja memorijom, operacija povezivanja i upravljanja grafikom. Qt4 (na kojem se trenutno temelji QGIS) trenutno ne razvijaju odgovorni za Qt biblioteku i mogao bi imati problema u pogledu funkcionalnosti nekih platformi (na primjer, OS X), pa čak i olakšati upravljanje binarnim verzijama (na primjer Debian testiranje i nadolazeća verzija Debiana "Stretch"). Proces uvođenja QGIS-a u QT5 već ima važan napredak (uglavnom ono što je učinio Matthias Kuhn) koji je zajedno s Marcom Bernasocchijem pušio na Androidu «QField» koji je u potpunosti zasnovan na QT5. Međutim, postoje određena ograničenja u pokretanju novog QT5 zbog njegovog utjecaja na QGIS - posebno s widgetima web pregledača (koji se uglavnom koriste u Composeru i nekim drugim mjestima u QGIS-u).

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 Pythonu 2.7. Python 3 je najnovija verzija pythona i preporučuju ga oni koji vode taj projekat. Python 2 je blago nekompatibilan sa Python 3 (gotovo proporcionalan nekompatibilnosti između QGIS 2 i Qgis 3). Mnogi programeri su python Python 3 učinili uglavnom kompatibilnim s Pythonom 2, ali kompatibilnost unazad nije tako dobra.
Poboljšanje QGIS vlastitu API: Jedan od problema s održavanjem kompatibilnosti API-ja između verzija je taj što dugoročno morate živjeti sa svojim mogućnostima dizajna. U QGIS-u čine se svi napori da se API ne razbije u nizu manjih izdanja. Objavljivanje verzije QGIS za 3.0 s API-jem koji nije kompatibilan s trenutnim pružit će priliku da se "očisti kuća" popravljanjem stvari u API-u s kojima se nalazimo i da postoji neslaganje. 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 prekinut će se s QGIS verzijom 2.x i postoji mogućnost da se pokvare mnogi dodaci, postojeće aplikacije i drugi kod koji se temelji na trenutnom API-ju. Dakle, šta se može učiniti da se promjene ublaže? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias i drugi vrhunski programeri tragaju za načinima za ublažavanje broja promjena API prekida, nastavljajući unaprjeđivati ​​bazu QGIS koda koja se temelji na sljedećoj generaciji knjižnica i vlastitom internom API-ju. Tokom našeg posljednjeg sastanka Upravnog odbora QGIS projekta geofumirali smo kroz razne mogućnosti. Sljedeća tablica sažima ono što je Matija Kuhn ljubazno sažeo i što smo u ovom članku dijelom pokušali transliterirati 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. STreba napomenuti da, iako gore navedeni pristup pokušava smanjiti količinu rada na python skriptiranju u dodacima, to ne mora nužno biti 100%. Najvjerojatnije će biti slučajeva kada se kôd mora doraditi i u najmanju ruku će se u svakom slučaju morati revidirati kako bi se osiguralo da i dalje pravilno funkcionira.
    2. Ne postoji formalno uspostavljen finansijski resurs za plaćanje programerima koji dobrovoljno ulažu svoje vrijeme za ovaj proces migracije. Zbog toga će biti vrlo teško odrediti tačne vremenske okvire za trajanje pojedinog dijela procesa. Ova nesigurnost mora se uzeti u obzir prilikom planiranja. Donacije su naravno dobrodošle da pomognu da se ovo dogodi.
    3. Možda postoje programeri i institucije koji financiraju nove značajke za QGIS 2.x seriju i to može utjecati na vaš rad. U planove i budžete ovih projekata potrebno je uključiti određenu alokaciju za suočavanje sa migracijom na QGIS 3.x 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 tekućih ažuriranja QGIS-a 3.0.
    4. Ako se razvijate na 'evolucijski' način, riskirate da razvoj 3.0 može potrajati duže ako lojalna grupa programera ne radi na tome i ne pripremi vas za migraciju.

    prijedloga

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

1 prijedlog:

Izbacite privremenu verziju 2.16, a zatim započnite s radom na verziji 3.0 kao prioritet, s razvojnim periodom od 8 mjeseci. Promjene napravljene u verziji 2.16 nastojat će biti kompatibilne s verzijom 3.0 (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

Imate li alternativni prijedlog? QGIS je zainteresovan da zna o mogućim alternativama. Ako želite predati prijedlog, pošaljite na 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.