QGIS 3.0 - Sut, pryd a beth; mae'n 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, yr oeddent am eu cyfleu'n glir i ddefnyddwyr a datblygwyr eu cynlluniau cyn lansio QGIS 3.0. Yn ddiweddar maent wedi ceisio nodi rhai o'r ystyriaethau ar gyfer datganiad QGIS 3.0 ac ar ddiwedd y swydd mae cyfle inni gyflwyno ein syniadau.

Pam 3.0?

QGis_LogoYn nodweddiadol, mae fersiwn fawr wedi'i chadw ar gyfer adegau pan fydd newid mawr yn cael ei wneud i API eich meddalwedd. Nid yw'r toriad hwn yn benderfyniad dibwys i'r prosiect QGIS gan ein bod ni'n gannoedd o filoedd o ddefnyddwyr sy'n dibynnu ar QGIS, at ein defnydd ein hunain ac am wasanaethau 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, rydym yn siarad am lefel swyddogaethol CORE y platfform. Mae'r QT hefyd yn darparu llyfrgelloedd i reoli cof, gweithrediadau cysylltedd a rheoli graffeg. Nid yw 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'r gwaith o reoli fersiynau deuaidd. (er enghraifft Debian Testing a fersiwn "Stretch" Debian sydd ar ddod). Mae'r broses o ddod â QGIS i QT5 eisoes â chynnydd pwysig (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 ddiweddaraf o python ac mae'n cael ei argymell gan y rhai sy'n arwain y prosiect hwnnw. Mae Python 2 ychydig yn anghydnaws â Python 3 (bron yn gymesur â'r anghydnawsedd rhwng QGIS 2 a Qgis 3). Mae llawer o ddatblygwyr wedi gwneud python Python 3 yn ôl-gydnaws i raddau helaeth â Python 2, ond nid yw'r cydnawsedd yn ôl mor wych â hynny.
Gwella'r API QGIS ei hun: Un o'r problemau gyda chynnal cydweddoldeb API rhwng fersiynau yw bod yn rhaid i chi fyw gyda'ch opsiynau dylunio ar gyfer y tymor hir. Yn QGIS gwneir pob ymdrech i beidio â thorri'r API o fewn cyfres o fân ddatganiadau. Bydd rhyddhau fersiwn o QGIS ar gyfer 3.0 gydag API nad yw'n gydnaws â'r un gyfredol yn rhoi cyfle i "lanhau'r tŷ" trwy atgyweirio'r pethau yn yr API yr ydym ni gyda nhw nad oes cydymffurfiaeth. 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, bydd fersiwn 3.0 yn torri gyda fersiwn 2.x QGIS ac mae posibilrwydd y bydd llawer o ategion, cymwysiadau presennol a chod arall sy'n seiliedig ar yr API cyfredol yn torri. Felly beth ellir ei wneud i liniaru'r newidiadau? Mae Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias a datblygwyr gorau eraill wedi bod yn chwilio am ffyrdd i liniaru nifer y newidiadau i egwyl API wrth barhau i hyrwyddo'r cod-cod QGIS yn seiliedig ar y genhedlaeth nesaf o lyfrgelloedd a'i API mewnol ei hun. Yn ystod ein cyfarfod diwethaf o Bwyllgor Llywio Prosiect QGIS, aethom trwy amrywiol bosibiliadau. Mae'r tabl canlynol yn crynhoi'r hyn a grynhodd Matthias Kuhn yn raslon a'n bod wedi ceisio trawslythrennu yn yr erthygl hon yn rhannol 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. S.Dylid nodi, er bod y dull a nodir uchod yn ceisio lleihau faint o waith ar sgriptio python mewn ategion, ni fydd hyn o reidrwydd yn 100%. Yn fwyaf tebygol, bydd achosion lle mae'n rhaid newid y cod ac ym mhob achos o leiaf, mae'n debygol y bydd yn rhaid ei ddiwygio er mwyn sicrhau ei fod yn parhau i weithredu'n iawn.
    2. Nid oes adnodd ariannol wedi'i sefydlu'n ffurfiol i dalu datblygwyr sy'n buddsoddi eu hamser o'u gwirfodd ar gyfer y broses fudo hon. Oherwydd hyn, bydd yn anodd iawn rhoi union fframiau amser ar gyfer pa mor hir 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 i hyn ddigwydd.
    3. Efallai bod datblygwyr a sefydliadau allan yna sy'n ariannu nodweddion newydd ar gyfer cyfresi QGIS 2.x a gallai hyn effeithio ar eich gwaith. Mae angen cynnwys dyraniad penodol yng nghynlluniau a chyllidebau'r prosiectau hyn i wynebu'r ymfudiad i blatfform QGIS 3.x.
    4. Os yw'r tîm QGIS yn gweithio ar "newid llwyr", bydd amser cymharol fyr pan fydd QGIS yn ansefydlog ac yn newid yn gyson oherwydd y diweddariadau parhaus i QGIS 3.0.
    4. Os byddwch chi'n datblygu mewn ffordd 'esblygiadol', rydych chi'n peryglu y gallai datblygiad 3.0 gymryd mwy o amser oni bai bod gennych chi grŵp ffyddlon o ddatblygwyr yn gweithio arno ac yn eich paratoi chi i fudo.

    Awgrymiadau

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

Cynnig 1:

Rhyddhewch fersiwn dros dro 2.16 ac yna dechreuwch weithio ar fersiwn 3.0 fel blaenoriaeth, gyda ffenestr ddatblygu o 8 mis. Bydd newidiadau a wneir yn fersiwn 2.16 yn ceisio bod yn gydnaws â 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 amgen posib. Os ydych chi am gyflwyno cynnig, anfonwch ef at 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.