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?
Yn 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 y mae QGIS wedi'u hadeiladu ar y lefel uchaf, rydyn ni'n siarad am lefel swyddogaethol CORE y platfform. Mae QT hefyd yn darparu llyfrgelloedd i berfformio rheoli cof, gweithrediadau cysylltedd, a rheoli graffeg. Nid yw Qt4 (y mae QGIS yn seiliedig arno ar hyn o bryd) yn cael ei ddatblygu gan gynhalwyr llyfrgell Qt ac efallai y bydd ganddo broblemau ymarferoldeb gyda rhai platfformau (ee OS X) a hyd yn oed ei gwneud hi'n haws rheoli fersiynau deuaidd (ee Debian Testing a'r datganiad Debian nesaf “Ymestyn”). Mae'r broses o ddod â QGIS i QT5 eisoes wedi symud ymlaen yn bwysig (yn bennaf yr hyn y mae Matthias Kuhn wedi'i wneud) sydd ynghyd â mwg Marco Bernasocchi ar yr Android "QField" yn seiliedig yn gyfan gwbl ar QT5. Fodd bynnag, mae rhai cyfyngiadau o ran cael y QT5 newydd ar waith oherwydd ei effaith ar QGIS - yn enwedig gyda widgets porwr gwe (a ddefnyddir yn bennaf yn Composer a hefyd ychydig o leoedd 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 dewisiadau dylunio ar gyfer y tymor hir. Gwneir pob ymdrech yn QGIS i beidio â thorri'r API mewn cyfres o fân ddatganiadau. Bydd rhyddhau fersiwn QGIS ar gyfer 3.0 gydag API nad yw'n cael ei gefnogi ar hyn o bryd yn rhoi cyfle i ni "lanhau tŷ" trwy osod pethau yn yr API nad ydym yn cydymffurfio â nhw. Gallwch weld rhestr dros dro o 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) |
Ydy | 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 tîm QGIS yn gweithio ar "newid llwyr", bydd amser cymharol fyr pan fydd QGIS yn ansefydlog ac yn newid yn gyson oherwydd diweddariadau parhaus i QGIS 3.0.
4. Os byddwch yn datblygu mewn ffordd 'esblygiadol', rydych mewn perygl y gallai datblygiad 3.0 gymryd mwy o amser oni bai bod gennych grŵp ffyddlon o ddatblygwyr yn gweithio arno ac yn ei baratoi i'w gludo.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 testun “Cynnig QGIS 3.0”.
Y QGIS blog, lle daeth y cyhoeddiad hwn allan.