Home

versionoinnin

Versionoinnin käsite viittaa järjestelmälliseen tapaan antaa ohjelmistolle tai muulle digitaaliselle tuotteelle versio, jonka perusteella voidaan tunnistaa muutokset, julkaisuvaiheet sekä yhteensopivuus riippuvuuksien kanssa. Versionointi helpottaa kehittäjien, käyttäjien ja ylläpitäjien työskentelyä seuraamalla historiaa, suunnittelemalla päivityksiä ja hallitsemalla kompromisseja yhteensopivuuden ja uusien ominaisuuksien välillä.

Yleisimmät versiointijärjestelmät ovat semanttinen versionointi (semver), kalenteripohjainen versionointi (CalVer) sekä perinteinen päivämääräpohjainen versionointi. Semver määrittelee kolminumeron

Semanttinen versionointi on yleisimmin käytetty erityisesti ohjelmistokirjastojen ja API:en yhteydessä. Versionumeron kasvu kertoo yhteensopivuudesta: Major-nosto merkitsee

Käytännöt voivat sisältää julkaisutyön, versionhallinnan taggaus, changelogin pitäminen sekä automatisoidun työnkulun. Eri projektit voivat valita yhtä

Versionoinnin suunnittelussa on hyvä määritellä alusta alkaen käytettävä järjestelmä, säilyttää tai hallita yhteensopivuutta sekä antaa deprekaatiosta

Major.Minor.Patch
ja
tyypillisesti
mahdollisia
etuliitteitä,
kuten
-alpha
tai
-rc.
CalVer
puolestaan
rakentuu
ajan
perusteella,
esimerkiksi
julkaisuvuoden
ja
kuukauden
tai
päivän
mukaan
(esim.
2024.11
tai
2024.11.03).
Päivämääräpohjaisessa
järjestelmässä
julkaisun
numero
kuvaa
suoraan
ajankohtaa,
jolloin
historiallinen
jatkuvuus
näkyy
ilman
erillistä
riippuvuustaulua.
breaking
changes,
Minor
lisää
uusia
ominaisuuksia
säilyttäen
taustajärjestelmän
yhteensopivuuden,
Patch
korjaa
bugeja
ilman
toiminnallisuuden
muuttamista.
Esikatselu-
tai
rakennusvaiheen
tiedot
sekä
rakennusmetatiedot
voidaan
merkitä
-pre-release-
sekä
+build-tageilla.
Tämä
mahdollistaa
ennakoitavan
julkaisun
ja
CI/CD-automatisoinnin.
järjestelmää,
mutta
semver
ja
CalVer
ovat
yleisimpiä,
ja
työkalut
kuten
CI/CD
tukevat
niiden
käyttöönottoa.
selkeä
aikataulu.
Hyvä
dokumentaatio,
selkeät
konventiot
ja
riippuvuuksien
hallinta
auttavat
sekä
käyttäjiä
että
kehittäjiä
tulkitsemaan
päivityksiä.