Kohan 21.11-versiojulkaisu häämöttää

Jos kaikki menee hyvin meillä on uusi versio Koha-kirjastojärjestelmästä tämän viikon perjantaina, 26.11! Vielä pieni loppupinnistys! Fuugin säätiö myönsi apurahaa aikaisemmin tänä vuonna alkusyksystä Kohan virheiden korjailuun ja nyt haluaisinkin kertoa mitä ollaan saatu aikaan tässä syksyn aikana ja mitä odottaa uuteen versioon.

Projektin skooppina oli siis keskittyä virheiden vähentämiseen Kohassa. Tätä tavoitetta tuli edistettyä muutamalla tavalla: koodimuutoksien katselmointeina (58 kpl), koodimuutoksina (19 kpl) sekä uusien bugiraporttien tekemisen kautta. Lukumääristäkin saattaa jo päätellä, Koha-yhteisöllä on huutava pula koodinkatselmoijista, ja päätinkin käyttää siihen ison osan ajasta. Työtä tuli tehtyä niin yksittäisten ohjelmiston virheen korjaavien bugiraporttien kanssa, että myös refaktorointiraporttien kanssa.

Mainittakoon tässä nyt muutama konkreettinen virhe minkä saralla työtä tuli tehtyä. Ensimmäinen ilouutinen on, että nyt vihdoin ja viimein on korjattu ongelma, jonka takia äärimmäisen monessa Kohaa käyttävässä kirjastossa on jouduttu keksimään ratkaisu miten päivittää lainaussäännöt lainausautomaateille sen jälkeen kun niitä on kirjastojärjestelmässä vaihdettu! Joissain kirjastoissa on joka yö käynnistelty palvelimia uudelleen, toisissa jopa fyysisesti lainausautomaatteja, mikään näistä ei ole ollut ihan optimaalista. Tästä korjauksesta on oletettavasti monelle siis hyötyä, kuten bugiraportin 26871 kommenteista voi päätellä. Katselmoimani bugiraportti 28803 korjaa sähköpostien lähettämättömyysongelman, jos tietokantaan on päässyt virheellisiä sähköpostiosoitteita. Muutokseni bugiraportissa 29380 korjaa regression kehitysversiossa, joka rikkoin useamman lainaustoiminnan kannalta kriittisen työkalun. Onneksi vika huomattiin ajoissa ja saatiin korjattua se ennen 21.11-version julkaisua!

Toinen osa-alue mihin aikaa kului oli refaktoroinnit. Refaktoroinnin tavoitteena oli tehdä koodista luettavampaa pilkkomalla sitä pienempiin funktiohin, jotka pienemmän kokonsa vuoksi on helpompi ymmärtää. Esimerkiksi tekemäni bugikorjaus (bugi 29476) Kohan funktioon, joka laskee aikaisimman mahdollisen uusintapäivämäärän lainalle mahdollisti Kohan lainaukseen liittyvissä ydinfunktioissa koodin duplikaation poistamisen, ks. pätsi raportista 29537. Aikaisemmin siis oli kaksi paikkaa missä virheen olisi voinut tehdä, nyt vain yksi paikka. Tämä vähentää myös tarvittavien yksikkötestien määrää puolella. Kohan lainaukseen liittyvässä koodimoduulisssa (C4/Circulation.pm) on vielä paljon refaktorointimahdollisuuksia, ja refaktorointia on käytännössä pakollista tehdä joskus bugikorjauksia tehdessä, koska muutoksien ymmärtäminen ja oikeellisuuden varmistaminen saattaa muuten olla ”mahdotonta” funktioiden pituuden takia. Onneksi funktioista on nyt tullut/tulossa (kaikki muutokset eivät ole vielä mergetty kehityshaaraan) pienempiä ja helpommin ymmärrettävämpiä.

Löysin projektin loppupuolella myös viisi tietoturvaongelmaa Kohasta, jotka raportoin Koha-projektin Bugzillan Security-osioon. Valitettavasti korjauksia niihin en kerennyt tämän projektin puitteissa enää tekemään, mutta eiköhän korjaukset jonkun muun toimesta ilmene lähipäivinä!

Tässä kaikki tällä kertaa, odottakaamme siis vielä muutama päivä uuden version julkaisua ja sitten käyttämään entistä parempaa Kohaa 🙂

Jätä kommentti