QGIS 3.0 - kā, kad un ko; tas nozīmē
Daudzi no mums ir jautā:
Kad būs atbrīvots QGIS 3.0?
Pagājušajā gadā (2015) projekta komanda sāka pētīt, kad un kā būtu jāatbrīvo QGIS 3.0. Viņi solīja, saskaņā ar ziņu no Anita Graser, ko viņi pirms QGIS 3.0 palaišanas skaidri nodeva lietotājiem un savu plānu izstrādātājiem. Viņi nesen ir mēģinājuši atmaskot dažus apsvērumus par QGIS 3.0 izlaišanu, un ziņas beigās mums ir iespēja iepazīstināt ar savām idejām.
Kāpēc 3.0?
Parasti galvenā versija ir rezervēta tiem laikiem, kad tiek veiktas lielas izmaiņas jūsu programmatūras API. Šis pārtraukums nav niecīgs lēmums attiecībā uz QGIS projektu, jo mēs esam simtiem tūkstošu lietotāju, kuri ir atkarīgi no QGIS gan mūsu pašu vajadzībām, gan pakalpojumiem, ko sniedz trešajām personām.
Reizēm laužot API ir nepieciešama, lai pielāgotos atjaunināt arhitektūru ar uzlabotām, jaunas bibliotēkas un labojumiem lēmumiem pagātnē.
Kādas ir sekas pārkāpj API?
Viens no iemesliem, kāpēc šis API pārrāvums QGIS 3.0 ir tas, ka tam būs liela ietekme, kas varētu sabojāt simtiem izstrādātu spraudņu, kas vairs nebūs saderīgi ar jauno API, un to autoriem būtu jādara pārskats par to attīstību, lai nodrošinātu saderību ar jauno API.
Par izmaiņām, kas nepieciešami apjoms lielā mērā ir atkarīgs:
- Daudzi API izmaiņas ietekmē pašreizējo funkcionalitāti.
Cik punktus plugins autori ir izmantojuši daļu no API, kas varētu mainīt. -
Kādas ir galvenās izmaiņas 3.0?
Ir četras galvenās jomas, kas meklē pārmaiņām 3.0:
Qt4 uz QT5 atjauninājumu: Šis ir pamata bibliotēku komplekts, kurā QGIS ir veidots visaugstākajā līmenī, mēs runājam par platformas CORE funkcionālo līmeni. QT nodrošina arī bibliotēkas, lai veiktu atmiņas pārvaldību, savienojamības darbības un grafikas pārvaldību. Qt4 (uz kuru pašlaik ir balstīts QGIS) pašlaik neizstrādā Qt bibliotēkas uzturētāji, un var rasties funkcionalitātes problēmas ar dažām platformām (piemēram, OS X) un pat atvieglot bināro versiju pārvaldību (piemēram, Debian testēšana un nākamā Debian versija “Izstiept”). QGIS ieviešanas procesam QT5 jau ir nozīmīgs progress (galvenokārt tas, ko ir paveicis Matiass Kūns), kas kopā ar Marko Bernasoki smēķē Android "QField", kas pilnībā balstīts uz QT5. Tomēr ir daži ierobežojumi jaunā QT5 iedarbināšanai, jo tas ietekmē QGIS, jo īpaši tīmekļa pārlūkprogrammas logrīkus (galvenokārt izmanto Composer un arī dažās citās vietās QGIS).
PyQt4 uz PyQt5 atjauninājumu: Tās ir relatīvās izmaiņas Ptona valodā Qt, uz kuru balstās QGIS Python API. Ir ierosināts mainīt QT5 C ++ bibliotēku, kā arī ir paredzēts pārvietot Python bibliotēku uz PyQt5, lai varētu izmantot jaunās QT5 API priekšrocības Python.
Atjaunināšana Python Python 2.7 3 uz: Pašlaik viss darbojas uz Python 2.7. Python 3 ir jaunākā pitona versija, un to iesaka tie, kas vada šo projektu. Python 2 ir nedaudz nesaderīgs ar Python 3 (gandrīz proporcionāls QGIS 2 un Qgis 3 nesaderībai). Daudzi izstrādātāji ir padarījuši Python Python 3 lielā mērā savietojamu ar Python 2, taču savietojamība ar atpakaļejošo versiju nav tik liela.
Uzlabojot QGIS ir sava API: Viena no problēmām, kas saistītas ar API saderības uzturēšanu starp versijām, ir tā, ka jums ir jādzīvo ar savām dizaina izvēlēm ilgtermiņā. QGIS tiek darīts viss iespējamais, lai nepārkāptu API virknē nelielu izlaidumu. QGIS versijas izlaišana versijai 3.0 ar pašlaik neatbalstītu API dos mums iespēju "tīrīt māju", izlabojot lietas API, kurām mēs neatbilstam. Jūs varat redzēt provizorisku sarakstu ar 3.0 ierosināja izmaiņas API.
Kā atbalstīt mainot 3.0 API
Kā jau minēts, versija 3.0 pārtrauks QGIS versiju 2.x, un pastāv iespēja, ka daudzi spraudņi, esošās lietojumprogrammas un citi kodi, kas balstīti uz pašreizējo API, saplīsīs. Tātad, ko var darīt, lai mazinātu izmaiņas? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias un citi labākie izstrādātāji ir meklējuši veidus, kā mazināt API pārtraukumu izmaiņu skaitu, turpinot virzīt QGIS koda bāzi, pamatojoties uz nākamās paaudzes bibliotēkām un savu iekšējo API. Pēdējās QGIS projekta vadības komitejas sanāksmes laikā mēs izpētījām dažādas iespējas. Šajā tabulā ir apkopots tas, ko Matiass Kuhs laipni apkopoja un ko mēs šajā rakstā daļēji esam mēģinājuši transliterēt atbilstoši tam, Viņi publicēja savā blogā:
QGIS 2.14 LTR |
QGIS 2.16? | QGIS 3.0 | |
Izdošanas datums | Beigas februāris | 4 2.14 mēnešiem | ¿Cycle 8 mēnešiem? |
Atzīmes | Atjaunināšana kodols QGIS python kodu Python 3 būt atbilstošu un atbalsta PyQt5 (daļēju izpildi attiecībā uz galveno funkcionalitāti, piemēram, konsole, python galvenie plugins utt) | ||
Qt4 | Si
Novecojusi ir Debian Stretch (jāmaksā gadā) (-webkit noņemts) |
Jā | Nē |
Qt5 | Nē
Garām QWebView - jauns nomaiņa nevis uz visām platformām. Arī Garām QPainter Dzinējs. |
Si | Si |
PyQt4 | Si | Si | Nē |
PyQt5 | Nē | Si | Si |
Python 2 | Si | Si | Nē |
Python 3 | Nē | Si | Si |
tīrīšanas API | Nē | Nē | Si |
Rituāli PyQt5 -> PyQt4 ~ 90% paredz atpakaļ saderību |
Nē | Si | Si |
mainstream Binary | Pamatojoties Qt4 | Pamatojoties Qt4 | Pamatojoties Qt5 |
Finansējums prioritāte | Python ietinēji |
Ir divas svarīgas lietas, kas jāatceras par priekšlikuma Matthias:
Pirmajā posmāDarbs tiek veikts sērijā pabeigt 2.x atbalsta QT5, PyQt5 izmantojot Python 3.0, atbalstot Qt4, PyQt4 un Python 2.7. Tas nozīmē, ka visas izmaiņas, kas veiktas pirmajā posmā būtu saderīgs ar iepriekšējām versijām 2.x. Python funkcijas tiks iekļauti tiks ieviesta, lai veco API PyQt4 joprojām var izmantot, jo īpaši, kad tie ir apkopoti pret QT5, PyQt5, Python 3.0. Izmantojot QGIS apkopota pret Qt4, PyQt4 un Python 2.7 nelūst saderību.
Otrajā posmāTā strādās, lai ražotu QGIS 3.0, ieviešot jaunu API, pilnībā noņemt Python 2.7, tostarp atbalstu Qt4 un PyQt4. Jaunas funkcijas python ienāk pirmais posms tiks saglabāta, ņemot vērā visus python kodu un attīstību attiecībā uz 2.x versijas QGIS turpināt strādāt pie 3.x versijām QGIS. Šis posms ir arī paredzēts ieviest izmaiņas QGIS API, kas var tikt bojātas dažas plugins. Lai risinātu šo sniegs vadlīnijas aa migrāciju, lai mēģinātu atvieglot migrāciju versijas 2.x QGIS 3.x ar QGIS versijas.
caveat emptor
Ir dažas viltības, kas jāuzdod, lai nodrošinātu, ka migrācija uz QGIS 3.0 skaņu mazāk sāpīga.
- 1. SJāatzīmē, ka, lai gan iepriekš izklāstītā pieeja mēģina līdz minimumam samazināt darbu ar python skriptiem spraudņos, tas ne vienmēr būs 100%. Visticamāk būs gadījumi, kad kods būs jāpielāgo un vismaz visos gadījumos tas, visticamāk, būs jāpārskata, lai pārliecinātos, ka tas turpina darboties pareizi.
2. Nav oficiāli izveidota finanšu resursa, ko maksāt izstrādātājiem, kuri brīvprātīgi iegulda savu laiku šim migrācijas procesam. Tādēļ būs ļoti grūti precīzi norādīt laika posmus, cik ilgu laiku aizņems katra procesa daļa. Šī nenoteiktība jāņem vērā, plānojot. Protams, ir laipni aicināti ziedojumi, lai tas notiktu.
3. Tur var būt izstrādātāji un iestādes, kas finansē jaunas QGIS 2.x sērijas funkcijas, un tas var ietekmēt jūsu darbu. Šo projektu plānos un budžetos ir jāiekļauj noteikts piešķīrums, lai risinātu migrāciju uz platformu QGIS 3.x.
4. Ja QGIS komanda strādās pie "totālām izmaiņām", QGIS būs salīdzinoši īss laiks, kurā QGIS būs nestabils un pastāvīgi mainīsies sakarā ar notiekošajiem QGIS 3.0 atjauninājumiem.
4. Ja jūs izstrādājat "evolucionārā" veidā, jūs riskējat, ka 3.0 izstrāde var aizņemt ilgāku laiku, ja vien jums nav lojāla izstrādātāju grupa, kas strādā pie tā un nesagatavo to pārnešanai.priekšlikumi
Ņemot vērā visu iepriekš minēto informāciju, tiek ierosināts viens no diviem darbības virzieniem:
1 priekšlikums:
Izlaidiet provizorisko versiju 2.16 un pēc tam sāciet strādāt ar 3.0 versiju kā prioritāti ar 8 mēnešu attīstības periodu. Izmaiņas, kas veiktas 2.16 versijā, centīsies būt saderīgas ar 3.0 versiju (sk. Python3 / pytq5).
2 priekšlikums:
Lunging reizi 3.0 ar daudz ilgāku ilguma loga QT5, Python 3.0 un PyQt5 un lūgt izstrādātājiem veikt savu darbu 3.0. Turpināt 2.x versijām ar parasto frekvenci līdz 3.0 ir gatava.
alternatīvi priekšlikumi
Vai jums ir alternatīvs priekšlikums? QGIS ir ieinteresēts uzzināt par iespējamām alternatīvām. Ja vēlaties iesniegt priekšlikumu, lūdzu, nosūtiet uz Tim@qgis.org ar tēmu “QGIS 3.0 priekšlikums”.
Ja izpildiet QGIS blogNo kurienes nāca šī publikācija.