16. Ysgrifennu Meddalwedd - Fersiynau
⏪ Blaenorol | Nesaf ⏩ |
Mae nodi pa fersiwn o feddalwedd a ddefnyddiwyd mewn darn o waith yn hollbwysig ar gyfer ailgynhyrchadwyedd. Gall canlyniadau a generadwyd gan fersiwn henach neu mwy newydd o’r un meddalwedd bod yn wahanol, a gall y methodoleg (cystrawen y cod a ysgrifennwyd) newid o fersiwn i fersiwn.
Rhaid ystyried hyn wrth ysgrifennu meddalwedd:
- Nodwn rhif ferswn y meddalwedd yn glir o fewn y meddalwedd ei hun, yn y ddogfennaeth, ac ar unrhyw storfa lle gellir lawrlwytho’r meddalwedd.
- Gwnewn yn siŵr bod pob un hen fersiwn o’r meddalwedd ar gael yn hawdd.
- Nodwn yn ofalus y gwahaniaethau rhwng pob fersiwn mewn dogfen sydd ar gael o fewn y meddalwedd ac hefyd yn y dogfennaeth.
Fersiynu Semantig
Mae fersiynu semantig yn ffordd systematig o rhifo fersiynnau i’w wneud yn fwy ystyrlon a chlir.
Maent yn helpu adnabod ôl-gytunedd rhwng fersiynnau. Os oes ôl-gytunedd rhwng dau fersiwn, yna mae defnydd, cystrawen a canlyniadau yr hen fersiwn yn gweithio’n unfath yn y fersiwn newydd. Os yw ôl-gytunedd wedi torri rhwng fersiynnau, yna bydd defnydd, cystrawen neu canlyniadau’r fersiwn newydd yn gwahanol i’r hen fersiwn. Fel datblygwyr meddalwedd ceisiwn osgoi torri ôl-gytunedd yn amal gan ei fod yn gorfodi defnyddwyr ail-ddysgu’r meddalwedd ac ail-ysgrifennu hen waith, ac mae’n achosimethodoleg ymchwil mynd ‘out-of-date’.
Mae fersiynu semantig yn defnyddio pedwar lefel o fersiynu, a dynodir y fersiwn
gan tair rhif x.y.z
.
-
Y lefel isaf yw’r lefel ‘commit’. Mae newidiadau rhwng y lefelau yma yn bach iawn, fel arfer cwpl o llinellau o cod ar y tro. Defnyddir rhain ar gyfer ysgrifennu meddalwedd yn unig, a’i rheolir gan systemau rheolaeth fersiwn megis Git. NI RHYDDHEIR NEWIDIADAU AR Y LEFEL YMA, ac fellu nid ydym yn newid y rhif fersiwn.
-
Y lefel nesaf yw’r lefel ‘patch’. Ar ôl nifer o newidiadau ar y lefel commit bydd gennym fersiwn o’r meddalwedd sy’n gweithio ac sy’n barod i’w rhyddhau. Mae newidiadau ar y lefel yma yn fach, ac fel arfer yn trwsio bygs. Nid yw patch yn torri ôl-gytunedd. Cynyddir y rhif
z
pan rhyddheir newid fel hyn. -
Y lefel nesa yw’r lefel ‘mân’ (minor). Mae newidiadau ar y lefel yma fel arfer yn ychwanegu nodweddion newydd i’r meddalwedd. Nid yw newid mân yn torri ôl-gytunedd. Cynyddir y rhif
y
ac osodir y rhifz
i sero pan rhyddheir newid fel hyn. -
Y lefel nesa yw’r lefel ‘mawr’ (major). Mae newidiadau ar y lefel yma yn sylweddol, ac yn torri ôl-gytunedd. Cynyddir y rhif
x
ac osodir y rhifauy
az
i sero pan rhyddheir newid fel hyn.
Enghraifft: Gwyddon fod y gwahaniaeth rhwng fersiwn
1.1.3
ac1.1.4
yn fach megis trwsio byg.
Enghraifft: Gwyddon fod y gwahaniaeth rhwng fersiwn
1.1.3
ac1.2.0
yn sylweddol megis ychwanegu nodwedd newyhdd, ond nid y’r torri ôl-gytunedd.
Enghraifft: Gwyddon fod y gwahaniaeth rhwng fersiwn
1.0.3
ac2.0.0
yn sylweddol, ac bydd ôl-gytunedd wedi torri.
Log Newidiadau
Ffeil yw log newidiadau (changelog) sy’n cynnwys rhestr cronolegol o’r holl newidiadau sylweddol ar gyfer pob fersiwn o meddalwedd. Mae’n gwenud e’n haws i defnyddwyr y meddalwedd a chyfranwyr i’r meddalwedd gweld yn union pa newidiadau sydd rhwng pob fersiwn o’r meddalwedd. Pwrpas log newidiadau yw i cael ei ddarllen gan pobl, gan defnyddwyr.
Mae’n gwahanol i log ‘commit’ a rhoddir gan systemau rheolaeth fersiwn: dim ond nodi newidiadau rhwng fersiynnau a rhyddheir sydd angen (newidiadau ar lefel ‘patch’, ‘mân’, a ‘mawr’). Dylai esbonio newidiadau o safbwynt defnyddiwr.
Awgrymiadau:
- Dylai fod cofnod ar gyfer pob fersiwn;
- Dylai’r fersiwn diwethaf dod yn gyntaf, a pob fersiwn arall dod ar ei hôl mewn trefn gronolegol gwrthdro;
- Dylai dangos dyddiad rhyddhai pob fersiwn;
- Dylai newidiadau fod o’r fath:
Ychwanegu
nodweddion newydd,Newid
nodweddion,Dibrisio
nodweddion a ddileuir yn fuan,Dileu
nodweddion,Trwsio
bygs, aDiogelwch
ar gyfer gwendidau.
Cymerwch cipolwg ar yr enghraifft ffug isod.
Ffeil tecst, markdown neu .rst yw hwn o’r enw CHANGES
neu CHANGELOG
:
Cyfeiriadau
-
“Semantic Versioning: Why You Should Be Using it”, Hugo Giraudel,
https://www.sitepoint.com/semantic-versioning-why-you-should-using/
-
“Keep a changelog”, Olivier Lacan,
⏪ Blaenorol | Nesaf ⏩ |