Semanttisesta versioinnista

Versionumerointi tuntuu monella olevan hakusessa. Onneksi maailmalla on useita de-facto -standardeja, joista Semantic Versioning, tai lyhyesti vain Semver, on hyväksytyin. Mutta ihmiset panevat silti liikaa painoarvoa numeroihin.

Kehittäjille suunnatut API-rajapintoja tarjoavat kirjastot tarvitsevat erityisen paljon mainittua semanttista versiointia, koska koodi on (jopa) ihmistä herkempi muutoksille. Siellä on fiksua noudattaa semver_0ccbf3fc65901bbff2b74edadf5c601cc2043be7.png -kuviota, jossa major-versio semver_3773bfa0a05421f0f67e6c4791a370dbe60310e2.png on suuri sovellusversion haara, jota kasvatetaan silloin kun hajotetaan jotain vanhaa toiminnallisuutta. Minor-versioluku semver_f4b063b0f80936b36f97c50c99cf1c25baca9522.png kasvaa silloin, kun tehdään lisäyksiä tai pieniä muutoksia, jotka eivät kuitenkaan hajota vanhaa koodia. Pikkupaikkaukset ja bugikorjaukset, eli luku semver_87596482ce53325ca7d4bd470c6fbdc163cfb5a7.png, kattavat sitten kaikki muut korjaukset. Lisämäärettä semver_8855477fe2b44285bd474a3879ca21c992ab70c7.png saa käyttää halutessaan, vaikka mitään pakottavaa syytä ei tavallisesti ole. Koevedokset, julkaisukandidaatit, betaversiot ja sen sellaiset sinne yleensä tyrkätään.

Loppukäyttäjille suunnattujen softien kanssa tilanne on eri. Erityisesti Mac- ja Windows-puolen ihmisiä tuntuu kismittävän ohjelmat, joiden versionumero liikkuu heidän mielestään liian alhaalla. Siellä sovellusbisnes on ollut versionumeroista riippuvaista ja päivityksiä ei voi kaupata ilman uutta ja kiiltelevää numeroa. Ihmiset ovat tottuneet aloittamaan laskemisen ykkösestä. Unix-puolella ja muutenkin useissa harrastetason jutuissa ei ole kenenkään pakko myydä mitään, ja numerot jäävät toisarvoisiksi. Numerointi aloitetaan nollasta ja lisäillään hyvin verkkaiseen tapaan. On jopa varsin yleistä skipata numerointi kokonaan: Githubista saa aina uusinta.

Ja eihän se numero tosiaan kerro mitään ohjelman kypsyydestä. Niitä numeroita ei myöskään mikään motivoi ylläpitämään, ellei ole jotakuta asiakasta tai käyttäjäryhmää, joka odottaa jonkinlaista virstanpylvästä. En yhtään tiedä, minkä luvun lätkäisisin omiin softiini, koska vaatimukset ovat mitä ovat. Jos joku haluaisi softan tietyillä ominaisuuksilla, voisin siinä tapauksessa ilomielin lätkäistä sen 1.0-lätkän valmistuneen projektin kunniaksi. Nyt ei projekteissani ole edes mitään numeroita. Jos joku tulee vinkumaan numeroista, aloittanen luultavasti versionumerolla 42. Mutta jos saan jonkun windows-juntin päivän pilalle lopullista tuotosta kuvaavalla versionumerolla 0.4.2, niin olen tyytyväinen.


Kommentit, kehitysehdotukset ja keskustelunavaukset ovat tervetulleita sähköpostitse.