I detta inlägg så kommer jag att använda QGIS som exempel och hur vem som helst kan hjälpa till med exempelvis översättning av programmet, även om just översättning av QGIS görs bäst på ett annat sätt (se inlägg från gårdagen).
QGIS utvecklas på GitHub så det första steget blir att skapa sig ett konto där.
Det är enkelt, gratis och går att använda på massor med olika sätt. Jag använder bland annat GitHub för många av mina skript som andra skall kunna ladda hem och köra. För mindre filer så går det dessutom utmärkt att redigera innehållet direkt via GitHub.
För att kunna bidra till ett projekt på GitHub så gäller det först att skapa en ”gaffel”. I QGIS källkodsbibliotek på https://github.com/qgis/QGIS så kan man klicka på knappen ”Fork” uppe till höger (se bild ovan). Detta skapar en ”kopia” på hela biblioteket under ditt eget konto där du kan göra vad du vill med källkoden utan att något ändras i originalfilerna.
Som jag nämnde tidigare så kan vissa mindre filer redigeras online, men när det gäller översättningsfilerna så är dessa lite för stora för detta. Då får man göra på ett annat sätt. Det går dock att klicka sig fram bland filerna och kika på koden antingen online eller genom att ladda hem den först.
Översättningsfilerna finns under ”i18n” och den svenska översättningen finns i filen ”QGIS_sv.ts” (en vanlig textfil).
Det går att ladda hem, redigera och sedan ladda upp och ersätta filer, men då bryter man kedjan och det är inte så det är tänkt att man skall arbeta. Därför behöver man programmet ”Git”.
I Linux installerar man med ”sudo apt-get install git” och för Windows och OS X är det inte mycket svårare. Det finns sedan många hjälpprogram för att hantera git-filer men här använder jag terminalen (kommandofönstret).
Din ”gaffel” kopierar du till den lokala datorn med kommandot: git clone https://github.com/klakar/QGIS.git där du ersätter ”klakar” med ditt eget användarnamn. Det går att kopiera sökvägen direkt via en länk på den gafflade sidan.
QGIS är ett stort bibliotek så det kan ta ett tag att hämta alla filer, men fördelen är sedan att man bara skickar ändringar fram och tillbaka när man synkroniserar biblioteken på servern och lokalt.
När allt är klart kan man göra sina ändringar i valfritt program och sedan kör man ett nytt git kommando från sökvägen där allt är lagrat, i mitt fall ”QGIS/” i min hemmakatalog.
När man kör git status så får man reda på vilka ändringar som gjorts lokalt. Dessa kan man sedan välja att lägga till i ett ”uppdateringsuppdrag” med kommandot git add filnamn följt av git commit -m ”Förklarande text”.
Det kan hända att man tillfrågas om e-post och användarnamn, men det framgår då ganska tydligt vilket kommando som skall skrivas in.
Om man inte ”trycker tillbaka” ändringarna direkt så behöver man även ange vilken plats man skall ”trycka” till.
git remote add origin https://github.com/klakar/QGIS.git
Som tidigare så får du ersätta ”klakar” med ditt eget användarnamn.
För att ”trycka tillbaka” (engelska ”Push”) så skriver man bara kommandot git push. Här får man ange användarnamn och lösenord för det egna kontot på GitHub sedan så sker överflyttningen till biblioteket.
Nu kan du kontrollera din uppdatering på GitHub och exempelvis granska vilka ändringar som gjorts (bild ovan). När man sedan är nöjd och vill skicka in sina ändringar till QGIS projektet så skapar man en ”Pull request” (en av flikarna till höger). Detta skickar en signal till de som ansvarar för projektet och de kan gå in och granska de ändringsförslag som du gjort. De kan sedan välja att kommentera ändringarna eller helt enkelt acceptera dem och baka in dem i källkoden.
När ändringarna är skickade så är det bara att vänta på en ny kompilering av programmet och sedan testa så att alla ändringar fungerar.
Avslutning
Även om det nu i fallet med QGIS rekommenderas en annan metod än den beskrivna, så fungerar metoden på alla projekt på GitHub oavsett filtyp, när man nu bestämmer sig för att bidraga till öppen källkod.