Medverka i utvecklingen av Drupal

Events happening in the community are now at Drupal community events on www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Det här är en snabb introduktion till hur open source-projektet Drupal utvecklas. Det är tänkt som en guide för dig som själv vill hjälpa till med Drupals utveckling, buggfixning, översättning och dokumentation, men fungerar också ganska bra som en generell beskrivning av hur open source-utveckling går till i allmänhet.

Projekthanteringssystemet

Allt utveckling i Drupal sker med hjälp av systemet för projekthantering och buggrapportering (kallas issue queue eller bug tracker på engelska). Systemet liknar i grunden ett vanligt dikussionsforum och är uppbyggt kring enskilda uppgifter eller buggrapporter (issues, tasks och bug reports är de vanligaste engelska begreppen för detta). Ett sådant inlägg tar upp en specifik, väl avgränsad fråga som kan handla om att exempelvis rätta en bugg eller lägga till en funktion i Drupal eller i någon av alla de moduler och teman som finns tillgängliga. Det kan också handla om uppdateringar och tillägg i olika översättningar. De olika typerna av uppgifter anges med kategorierna bug reports, tasks, feature requests och support requests.

En uppgift eller buggrapport består av en rubrik, en text och oftast också en eller flera bifogade filer. Kommentarer till originalinlägget är en viktig del av poängen med systemet – här sker all diskussion som för projektet framåt och här rapporteras tester och granskningar (reviews) av olika förslag till ändringar. Peer review är en grundprincip från den akademiska världen som också tillämpas inom open source-utveckling. I det här sammanhanget betyder det att minst en oberoende testare och/eller granskare bör ha gett sitt godkännande utifrån olika kriterier innan en ändring läggs in (blir committed).

Varje modul, tema och översättning för Drupal representeras av ett projekt i systemet. Även Drupal självt har ett sådant projekt, med tillhörande uppgifter och buggrapporter. Inom varje projekt är ofta uppgifterna indelade i olika komponenter, som kod, dokumentation och användargränssnitt. Varje projekt har en ansvarig administratör (maintainer) – ibland flera (s.k. comaintainers) – som har den slutgiltiga beslutsmakten över respektive projekt.

Ett bra sätt att komma igång och få inblick i Drupals utveckling är att följa diskussionerna i dessa uppgifter/buggrapporter, granska patchar (se nedan) och lära sig hur processen brukar går till.

Ändringar förmedlas i form av patchar

En patch är en automatisk genererad textfil som beskriver skillnaden mellan två olika versioner av en och samma fil. Med andra ord visar vad man ändrat i en viss fil som man arbetar med. Man skapar patchen genom att antingen jämföra två filer på sin dator eller också jämföra den fil man arbetar med mot originalfilen i CVS (se nedan).

Patchar är relativt lätta att läsa och är ett smidigt sätt att visa andra hur man tänker sig en viss ändring. De används också för att utföra en viss ändring på ("patcha") valda filer. På så sätt är det lätt att testa en annan utvecklares förändringar utan att behöva kopiera över hela filerna.

I allmänhet bör en patch innehålla en väl avgränsad ändring – inte stora, svepande förändringar av flera olika aspekter i det aktuella projektet. (Samma princip gäller för projektuppgifter (issues) – och i allmänhet leder en uppgift fram till en patch, inte flera.) Däremot kan en patch gärna påverka fler än en fil åt gången.

Patchar är en mycket viktig del i hur Drupal utvecklas. I stort sett varje kodändring kräver att en riktig patch skapas innan den kan granskas, testas och läggas in. Även översättningar och till viss del också dokumentation utvecklas i form av patchar. Patchar kan skapas och användas på alla vanliga operativsystem. I Windows behöver man dock ladda ner ett extra programWinMerge tycks vara ett bra alternativ [någon med Windows, bekräfta gärna!].

Versionshantering: CVS

All källkod sparas i ett versionshanteringssystem som heter CVS. Med hjälp av det kan man hålla ordning på olika versioner av alla filer och exempelvis skapa pathar mot en viss version av en fil. Drupals CVS-utrymmen (respositories) är öppna för anonym inloggning så att man kan läsa och ladda ner samtliga versioner av samtliga filer. För att kunna spara något i systemet behöver man dels ett CVS-konto och dels behöver man tilldelas rättigheter för de projekt man ska jobba med.

Det är inte alls nödvändigt att själv ha ett CVS-konto för att kunna medverka i utvecklingen. Kan man arbeta med patchar – skapa och/eller testa dem – så kan man göra i stort sett hela arbetet med en ändring ändå. Varje projekt har administratörer som gärna lägger in väl genomförda och testade ändringar i CVS åt dig. Däremot kan det vara bra att kunna hämta filer direkt ur CVS-utrymmet och att kunna göra patchar direkt mot CVS. Det finns flera olika sätt att göra det på – med kommandoradsgränssnitt eller med olika grafiska CVS-program. En lista över sådana program finns i Drupals handbok. Flera av dem hanterar både CVS och patchar (diff) samtidigt.

Utgåvor/releaser

När ett visst projekt nått en punkt som man vill ge ut som en utgåva/release av projektet skapar administratören för det aktuella projektet först en ny version i CVS och därefter en release på drupal.org som motsvarar den versionen. Ett script kommer då automatisk att packetera ihop filerna i CVS till ett filarkiv i formatet .tar.gz och lägga ut denna på projektets hemsida.

Mer information

Getting involved i Drupals handbok – under utveckling!
Developing for Drupal i Drupals handbok.
Contributing to Drupal – podcast som handlar om olika sätt att medverka.