Sidverktyg

Första patchen inskickad – rättar en bugg med reserverade böcker i Opac

Ett av de stora målen med det pågående projekten är att bygga upp mer kunskap om Koha och dela med oss av den. Med Hylte igång med Koha sedan i höstas får vi mycket nya kunskaper om hur systemet är att arbeta i under svenska förhållanden. Med pågående projekt i Skåne och Mölndal finns det också fler som bidrar till den kunskapsbanken. Vi har också erfarenhet av migrering, anpassning av utseende, översättning och i viss mån anpassning av gränssnittet med jQuery/javascript men något som saknats är inhemsk erfarenhet av är buggrättning och vidareutveckling av systemet. Ett konkret mål för mig som har viss bakgrund inom programmering har därför varit att få in åtminstone en egen rad kod i Koha.

Målet är nu på god väg att uppfyllas i.o.m. att jag skickade in en rättning för ett problem där författaren inte visades för reserverade böcker under ”Mina sidor” i Opac. Tack och lov är det dock inte klart där utan nu när min patch har testats av någon annan än mig som gjort en ”sign off” hamnar den hos ”QA”-teamet som kollar att den följer riktlinjerna för hur koden skall se ut. Efter det nålsögat är det release manager som avgör om rättningen skall inkluderas i ett kommande släpp av Koha eller inte. Det kan verka som mycket kontroller för en enkel sak men är nödvändigt i ett så stort system som Koha för hålla behålla hög kvalitet. Den som vill är också fri att förändra sin egen installation efter eget huvud – kvalitetsgranskningen gäller bara det man vill inkludera i den officiella versionen från koha-community.org.

För att klara det här har jag varit tvungen att dels lära mig mer om hur innanmätet av Koha ser ut generellt, lära mig en del om Perl (som är programmeringsspråket Koha använder), lära mig arbetsflödet i utvecklargemenskapen och inte minst lära mig installera Koha på en egen utvecklingsserver och anpassa installationen för att använda versionshanteringssystemet Git och git-bz. För mig som har viss erfarenhet av att jobba med terminalen i Linux (men långt ifrån den ”better then average [..]”-nivå som rekommenderas) och åtminstone emellanåt fått betalt för att programmera får jag säga att den största tröskeln inte var att läsa och skriva Perl-kod. Betydligt värre var att lista ut hur en installation skulle skapas som kunde använda versionshanteringssystemet Git och verktyget git-bz för att skicka min kod till den Bugzilla-installation Koha använder för att hantera buggar och förbättringar.

Det viktigaste jag lärt mig av de senaste årens Kohajobb är hur viktig den sociala dimensionen är. Med ett fyrtiotal företag globalt som säljer tjänster kring Koha har man etablerat en kultur där samarbete premieras. När det gäller min insats för att rätta det aktuella felet kan jag heller inte ta åt mig särskilt mycket av äran. Jag har fått oerhört tålmodig och kompetent hjälp på Kohas internationella chatkanal med såväl installation, felsökning, att reda ut vad som pågår i själva skriptet, använda git och git bz. Sedan tillkommer processen med att testa patchen (tack Magnus), kvalitetsgranska koden och förhoppningsvis plocka upp den i en kommande Koha-version. Såhär fortsätter det också även när man själv blir duktigare. Ju komplexare problem man ger sig på desto mer påverkar man delar av systemet som man behöver stämma av med andra. Ju mer man lär sig desto större ansvar tycker jag också att man har för att själv hjälpa andra när man kan. Som cait på IRC uttryckte det när jag tackade för hjälpen från cait, magnuse och ashimema ”Det var någon som lärde oss också”.

De resurser jag till slut pusslade ihop mitt system utifrån var:

  • Installation i Virtual Box för att göra det enkelt att börja om, skapa återställningspunkter under arbetets gång och klona färdiga maskiner.
  • Operativsystem – Laddade ned en ISO-fil med en nätverksinstallation av Debian och ställde in min maskin i VirtualBox att boota från den filen (inställningen för optisk enhet i VirtualBox). Webbserver och databasserver installerade jag i efterhand.
  • Installation av Koha utifrån det mesta av instruktionerna Koha-gitify Jag kunde dock inte följa instruktionerna fullt ut utan själva skriptet gitify kraschade och lämnade mig med en Koha-installation där hälften av filerna kördes ifrån Debian-paketen och hälften utifrån det som klonats med Git. Antagligen kunde det ha reparerats manuellt men jag backade och efter att ha klonat med ”git clone git://git.koha-community.org/koha.git” så hoppade jag ur dessa instruktioner.
  • För att använda min klonade kod där jag gör ändringarna följde jag instruktionerna under rubriken ”Update multiple files to point to the kohaclone” på wikisidan om att installera Koha för att använda Git. Notera att det bara är den delen av dessa anvisningar som användes i sin helhet- systemet var ju redan installerat och även klonat med Git sedan innan. Däremot finns det ett relevant avsnitt om hur man konfigurerar Git. Jag satte dock inte upp någon e-postserver då jag skulle använda git-bz för att skicka patchen direkt till Bugzilla.
  • Utifrån tidigare använda instruktioner ovan pusslade jag ihop hur apache startas om och hur man kör den nödvändiga webbaserade installationen av Koha. Tips i vår del av världen är att aktivera Marc21 om du skall plocka poster från Libris och att ta med all exempeldata. Sedan behöver man sätta en låneregel för ”alla medietyper och alla låntagare” om man skall jobba med cirkulation i sitt demosystem.
  • Installation av git-bz har också instruktioner på wikin. Jag har några gånger stött på att jag kör kommandon i terminalen i min virtuella maskin som inte verkar ”bita”. Så var det också här och en del krångel med git-bz när patchen skulle skickas kunde härledas till att installationen inte var komplett konfigurerad. Värt att veta är dock att e-post inte nödvändigt (utöver som användarnamn i Bugzilla – men inte smpt-server). För att kontrollera hur konfigurationen ser ut kan man använda ”git config –list” från terminalen i den mapp där man har sin klonade kod.
  • Andras kunskaper och vilja att fundera på vad som kunde ha gått fel. Ovärderligt.

Skall jag sammanfatta erfarenheten med ett ord blir det: mersmak.