QGIS 3.0 - Sut, pryd a beth; yn awgrymu

Mae llawer yn gofyn ein hunain:

Pryd fydd QGIS 3.0 yn cael ei ryddhau?

Y llynedd (2015) dechreuodd y tîm prosiect ymchwilio pryd a sut y byddai QGIS 3.0 i'w ryddhau. Fe wnaethon nhw addo, yn ôl swydd o Anita Graser, y byddent yn egluro'n glir i'r defnyddwyr a'r datblygwyr eu cynlluniau cyn lansio QGIS 3.0. Yn ddiweddar maent wedi ceisio datgelu rhai o'r ystyriaethau ar gyfer lansiad QGIS 3.0 ac ar ddiwedd y swydd mae cyfle i ni gyflwyno ein syniadau.

Pam 3.0?

QGis_LogoFel arfer, cedwir fersiwn fawr ar gyfer adegau pan wneir newid mawr i API eich meddalwedd. Nid yw'r seibiant hwn yn benderfyniad dibwys ar gyfer y prosiect QGIS gan ein bod ni'n gannoedd o filoedd o ddefnyddwyr sy'n dibynnu ar QGIS, ar gyfer eu defnydd eu hunain ac am wasanaeth a ddarperir i drydydd partïon.

Mae angen torri'r API o bryd i'w gilydd i ddarparu ar gyfer diweddaru'r pensaernïaeth gyda dulliau gwell, llyfrgelloedd newydd a chywiriadau i benderfyniadau a wnaed yn y gorffennol.

Beth yw canlyniadau torri'r API?

Un rheswm pam y toriad hwn o'r API yn QGIS 3.0 yw y bydd yn cael effaith fawr, a allai dorri cannoedd o ategion datblygedig a fyddai bellach yn gydnaws â'r API newydd ac awduron o'r rhain wedi ei wneud adolygiad o'u datblygiadau i sicrhau cydnaws â'r API newydd.

Mae maint y newidiadau angenrheidiol yn dibynnu i raddau helaeth ar:

  • Faint o newidiadau i'r API sy'n effeithio ar y swyddogaeth gyfredol.
    Ar sawl pwynt y mae'r awduron ategyn wedi defnyddio rhannau o'r API y byddent yn newid.
  • Beth fydd y prif newidiadau ar gyfer 3.0?

Mae pedwar maes allweddol yr ydych yn dymuno eu newid yn 3.0:

Diweddariad Qt4 i QT5: Dyma'r set sylfaenol o lyfrgelloedd lle mae QGIS wedi'i adeiladu ar y lefel uchaf, rydyn ni'n siarad am lefel swyddogaethol CORE y platfform. Mae'r QT hefyd yn darparu llyfrgelloedd ar gyfer rheoli mummy, gweithrediadau cysylltedd a rheoli graffeg. Nid yw'r Qt4 (y mae QGIS wedi'i seilio arno ar hyn o bryd) yn cael ei ddatblygu ar hyn o bryd gan y rhai sy'n gyfrifol am y llyfrgell Qt a gallai gael problemau o ran ymarferoldeb gyda rhai platfformau (er enghraifft, OS X) a hyd yn oed hwyluso rheoli fersiynau deuaidd. (er enghraifft Debian Testing a'r fersiwn nesaf o Debian "Stretch"). Mae gan y broses o ddod â QGIS i QT5 ddatblygiad arloesol eisoes (yn bennaf yr hyn y mae Matthias Kuhn wedi'i wneud) sydd, ynghyd â Marco Bernasocchi yn ysmygu ar yr Android «QField» wedi'i seilio'n llwyr ar QT5. Fodd bynnag, mae rhai cyfyngiadau wrth lansio'r QT5 newydd oherwydd ei effaith ar QGIS - yn enwedig gyda barochr porwr gwe (a ddefnyddir yn bennaf yn y Cyfansoddwr a hefyd rhai lleoedd eraill yn QGIS).

Diweddaru PyQt4 i PyQt5: Dyma'r newidiadau cymharol i'r iaith Python ar gyfer Qt y mae API Python QGIS wedi'i seilio arno. Yn codi newid y QT5 C ++ llyfrgell, Mae disgwyl hefyd i drosglwyddo i lyfrgell python PyQt5 fel y gallant fanteisio ar y manteision y API newydd yn Python QT5.
2.7: Diweddaru Python 3 i Python Ar hyn o bryd mae popeth yn rhedeg ar Python 2.7. Python 3 yw'r fersiwn diweddaraf o python ac fe'i hargymellir gan y rhai sy'n arwain y prosiect hwnnw. Python ychydig yn anghydnaws â 2 3 Python (mewn bron yn gymesur â anghydnawsedd rhwng QGIS Bydd 2 3 a mesur Qgis). Mae nifer o ddatblygwyr wedi gwneud python Python 3 gydnaws i raddau helaeth gyda fersiynau cynharach o Python 2, ond nid yw cysondeb yn ôl cystal.
Gwella'r API QGIS ei hun: Un o'r problemau sy'n cynnal cydnawsedd API rhwng fersiynau yw bod yn rhaid i chi fyw gyda'ch opsiynau dylunio am dymor hir. Yn QGIS, gwneir pob ymdrech i beidio â thorri'r API o fewn cyfres o fân ddatganiadau. Bydd rhyddhau fersiwn QGIS ar gyfer 3.0 gydag API nad yw'n gydnaws â'r cerrynt yn rhoi cyfle i “lanhau'r tŷ” trwy osod pethau yn yr API yr ydym yn anghydffurfiaeth â nhw. Gallwch weld rhestr dros dro o'r newidiadau arfaethedig ar gyfer yr API 3.0.

Sut i gefnogi newid yr API 3.0

Fel y soniwyd eisoes, y fersiwn 3.0 2.x seibiant gyda fersiwn QGIS achosi ac mae posibilrwydd bod llawer o plugins, ceisiadau presennol a chodau eraill yn cael eu seilio ar y breakage API cyfredol. Felly beth ellir ei wneud i liniaru'r newidiadau? Mae Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias a datblygwyr blaenllaw eraill wedi bod yn chwilio am ffyrdd i liniaru'r nifer o ddatblygiadau API wrth i'r cod sylfaen QGIS barhau i fod yn seiliedig ar y genhedlaeth nesaf o lyfrgelloedd a'u API mewnol eu hunain. Yn ystod ein cyfarfod diwethaf y Pwyllgor Llywio Prosiect QGIS ei geofumó trwy wahanol bosibiliadau. Mae'r tabl canlynol yn crynhoi'r hyn Matthias Kuhn crynhoi ysgafn ac yn rhannol wedi ceisio drawslythrennu yn yr erthygl hon yn ôl yr hyn bostio ar eich blog:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Dyddiad Cyhoeddi Diwedd mis Chwefror 4 mis yn ddiweddarach 2.14 Beic 8 Misoedd?
Mesurau Diweddaru cod python QGIS craidd i fod yn Python 3 yn gydnaws a PyQt5 cydnaws (gweithredu rhannol ar gyfer ymarferoldeb allweddol ee consola, ategion craidd python ac ati)
Qt4 Si

Dibynadwy yn Debian Stretch (sy'n ddyledus mewn blwyddyn)

(dileu pecyn gwe)

Ydw Na
Qt5 Na

Misses QWebView - ailosod newydd nid ar bob llwyfan. Hefyd yn colli peiriant QPainter.

Si Si
PyQt4 Si Si Na
PyQt5 Na Si Si
Python 2 Si Si Na
Python 3 Na Si Si
API Glanhau Na Na Si
Cyflenwyr
PyQt5 -> PyQt4
Yn darparu ~ Cydweddu 90% Yn ôl
Na Si Si
Deuawd Prif Ffrwd Qt4 Seiliedig Qt4 Seiliedig Qt5 Seiliedig
Blaenoriaeth ariannu Cyflenwyr Python

Mae dau beth pwysig i'w cadw mewn cof ynghylch cynnig Matias:

Yn y cam cyntafMae'r gwaith yn cael ei wneud yn y gyfres i gwblhau QT2 cefnogi 5.x, PyQt5 gan ddefnyddio Python 3.0, cefnogi Qt4, PyQt4 a Python 2.7. Mae hyn yn awgrymu y byddai'r holl newidiadau a wnaed yn y cam cyntaf yn gydnaws â fersiynau cynharach 2.x. Bydd nodweddion Python yn cael eu hymgorffori yn cael eu cyflwyno fel y gall y API PyQt4 hen yn dal yn cael ei ddefnyddio yn enwedig pan luniwyd yn erbyn QT5, PyQt5, Python 3.0. Trwy ddefnyddio QGIS a luniwyd yn erbyn Qt4, PyQt4 a Python 2.7 ni fyddai torri yn gydnaws.
Yn yr ail gamByddai'n gweithio i gynhyrchu QGIS 3.0, cyflwyno'r API newydd, yn gyfan gwbl gael gwared ar y Python 2.7, gan gynnwys cymorth ar gyfer Qt4 a PyQt4. Bydd nodweddion newydd yn python mynd i mewn i'r cam cyntaf yn cael ei gynnal, gan gymryd i ystyriaeth yr holl cod Python a datblygiadau ar gyfer fersiynau 2.x o QGIS yn parhau i weithio ar y fersiynau 3.x o QGIS. Disgwylir hefyd y cam hwn i gyflwyno newidiadau yn y API QGIS allai dorri rhai plugins. I fynd i'r afael bydd hyn yn darparu mudo arweiniad aa i geisio hwyluso ymfudiad fersiynau 2.x QGIS 3.x QGIS fersiwn.

Emptor Caveat

Mae ychydig o driciau y dylid eu rhoi ar waith i sicrhau bod ymfudiad i QGIS 3.0 yn llai poenus.

  • 1. SDylid nodi, er bod yr ymagwedd a nodir uchod wedi'i fwriadu i leihau faint o waith sydd mewn sgriptio python mewn plwgiau, ni fydd hyn o reidrwydd mewn 100%. Yn fwyaf tebygol, bydd achosion lle mae'n rhaid addasu'r cod ac ym mhob achos o leiaf, mae'n debyg y bydd angen ei hadolygu er mwyn sicrhau ei fod yn parhau i weithredu'n iawn.
    2. Nid oes unrhyw adnodd ariannol a sefydlwyd yn ffurfiol i dalu datblygwyr sy'n buddsoddi eu hamser yn wirfoddol yn y broses ymfudo hon. Oherwydd hyn, bydd yn anodd iawn rhoi union linellau amser ar ba hyd y bydd pob rhan o'r broses yn ei gymryd. Rhaid ystyried yr ansicrwydd hwn wrth gynllunio. Wrth gwrs, mae croeso i roddion helpu i wneud hyn yn digwydd.
    3. Efallai y bydd datblygwyr a sefydliadau allan sydd ariannu nodweddion newydd ar gyfer y gyfres 2.x QGIS a gall hyn effeithio ar eu gwaith. Yn nhrefniadau a chyllidebau'r prosiectau hyn, mae'n rhaid cynnwys rhywfaint o ddyraniad i fynd i'r afael â'r ymfudo i lwyfan 3.x QGIS.
    4. Os bydd y tîm QGIS yn gweithio ar “newid llwyr”, bydd cyfnod cymharol fyr pan fydd QGIS yn ansefydlog ac yn newid yn gyson oherwydd diweddariadau parhaus i QGIS 3.0.
    4 Os yw'n datblygu mewn ffordd "esblygiadol", mae risg y gall datblygiad 3.0 gymryd mwy o amser oni bai bod grŵp ffyddlon o ddatblygwyr yn gweithio ar hyn ac yn eu cael yn barod i fudo.

    Awgrymiadau

Yng ngoleuni'r holl wybodaeth uchod, cynigir un o'r ddwy linell weithredu:

Cynnig 1:

Rhyddhewch fersiwn 2.16 dros dro ac yna dechreuwch weithio ar y fersiwn 3.0 fel blaenoriaeth, gyda ffenestr ddatblygiad o 8 mis. Bydd y newidiadau a wnaed yn y fersiwn 2.16 yn cyd-fynd â'r fersiwn 3.0 (gweler python3 / pytq5).

Cynnig 2:

Hyrddio unwaith 3.0 gyda mwy estynedig ffenestr hyd ar QT5, Python 3.0 a PyQt5 a gofyn i ddatblygwyr i wneud eu gwaith yn 3.0. Parhau gyda'r fersiynau 2.x gydag amlder arferol tan 3.0 yn barod.

Cynigion amgen

Oes gennych chi gynnig arall? Mae gan QGIS ddiddordeb mewn gwybod am ddewisiadau posib eraill. Os hoffech gyflwyno cynnig, anfonwch tim@qgis.org gyda'r pwnc "Cynnig XGIS 3.0".

Y QGIS blog, lle daeth y cyhoeddiad hwn allan.

Gadewch ateb

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi.

Mae'r wefan hon yn defnyddio Akismet i leihau sbam. Dysgwch sut mae eich data sylwadau yn cael ei brosesu.