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?

QGis_LogoParasti 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: Tas ir bibliotēku pamatkomplekts, kurā QGIS ir veidots visaugstākajā līmenī, mēs runājam par platformas CORE-funkcionālo līmeni. QT nodrošina bibliotēkas arī atmiņas pārvaldības, savienojamības un grafikas pārvaldības veikšanai. Qt4 (uz kura šobrīd balstās QGIS) pašlaik neattīsta tie, kas ir atbildīgi par Qt bibliotēku, un tam var būt problēmas saistībā ar funkcionalitāti ar dažām platformām (piemēram, OS X) un pat atvieglot bināro versiju pārvaldību (piemēram, Debian testēšana un gaidāmā Debian "Stretch" versija). QGIS ieviešanas procesam QT5 jau ir svarīgs progress (galvenokārt tas, ko ir darījis Matiass Kuhns), kurš kopā ar Marko Bernasocchi smēķē Android «QField», pilnībā balstoties uz QT5. Tomēr jaunā QT5 palaišanā ir daži ierobežojumi, jo tas ietekmē QGIS, jo īpaši ar tīmekļa pārlūka logrīkiem (galvenokārt tos 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 iespējām ilgtermiņā. QGIS tiek darīts viss iespējamais, lai nesalauztu API virknē nelielu izlaidumu. QGIS versijas 3.0 izlaišana ar API, kas nav saderīga ar pašreizējo, dos iespēju "iztīrīt māju", salabojot API esošās lietas, ar kurām mēs esam, un ka rodas domstarpības. Jūs varat redzēt provizorisko sarakstu 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?
Rēķini 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)

Qt5

Garām QWebView - jauns nomaiņa nevis uz visām platformām. Arī Garām QPainter Dzinējs.

Si Si
PyQt4 Si Si
PyQt5 Si Si
Python 2 Si Si
Python 3 Si Si
tīrīšanas API Si
Rituāli
PyQt5 -> PyQt4
~ 90% paredz atpakaļ saderību
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ā pie "pilnīgām izmaiņām", būs salīdzinoši īss laiks, kurā QGIS būs nestabila un pastāvīgi mainīsies, pateicoties notiekošajiem QGIS 3.0 atjauninājumiem.
    4. Ja attīstāties „evolucionāri”, jūs riskējat, ka 3.0 izstrāde var aizņemt ilgāku laiku, ja vien pie tā nav lojālas izstrādātāju grupas, kas gatavotos migrēt.

    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 tematu "QGIS 3.0 priekšlikums".

Ja izpildiet QGIS blogNo kurienes nāca šī publikācija.

Atstājiet atbildi

Jūsu e-pasta adrese netiks publicēta.

Šī vietne izmanto Akismet, lai samazinātu surogātpastu. Uzziniet, kā tiek apstrādāti jūsu komentāru dati.