Strukturelle ændringer i Ding hovedsporet

 

Resumé: Efter release 1.6.0, vil der blive lukket for commit adgang til https://github.com/dingproject/ for alle andre end Ding.Core team medlemmer. Hvis et eksisterende repository skal ændres, skal det forkes og ændringen skal oprettes som pull request. Pull requests vil blive reviewet af Ding.Core teamet.

 

Antallet af Ding.Ting (Ding) biblioteker vokser hurtig og Ding er blevet et udbredt CMS til de danske folkebiblioteker. Mange vil gerne bidrage til den fortsatte udvikling af Ding, og det er super positivt.
 
TING-community’et og ding.bibliotekerne er imidlertid også interesserede i, at vi har et stærkt og stabilt hovedspor 1), der er sikret vedligeholdelse og konsistens, og hvor koden er gennemgået af mere end én udvikler, testet og dokumenteret, inden det releases.
 
Derfor har vi i ding.TING::core-team besluttet at foretage nu nogle ændringer i måden hvorpå vi vedligeholder hovedsporet.
 
Ændringerne har to mål:
 
  • Vi vil opnå et mere stabilt hovedspor, hvor et bidrag til Ding lever op til de overordnede retningslinjer besluttet af Ting bibliotekerne.
  • Vi vil sikre det enkelte biblioteks muligheder for at lave ændringer og nyudvikling
Som udviklere er vi opmærksomme på, at disse ændringer vil gøre det mere kompliceret at udvikle Ding projekter, end det har været hidtil. Spørgsmål og kommentarer er velkomne, og vi er åbne overfor forslag, der kan være med til at sikre begge mål.
 
Den første ændring er:
 
  • Efter release 1.6.0, vil der blive lukket for commit adgang til hovedsporet for alle andre end ding.TING::core-team medlemmer. Der indføres en teknisk procedure, for at sikre kodes kvalitet
 
Nedenfor gennemgår vi, hvordan dette påvirker arbejdet med udvikling af Ding.

Sådan bidrager man til hovedsporet

(Se opdateret information omkring bidrag til hovedsportet her)

Når udviklere - hvad enten der er tale om biblioteksansatte, tekniske leverandører eller frivillige udviklere - vil foretage ændringer, skal nedenstående procedurer følges.
 

Udvidelser og fejlrettelser til eksisterende moduler

  1. Lav en fork af det repository fra http://github.com/dingproject/, som skal modificeres til din  organisations eller din kundes profil 
  2. Ret fejlen i det forkede repository
  3. Lav en pull request mod det originale repository
  4. Et eller flere medlemmer af ding.TING::core-team vil gennemgå ændringen og komme med kommentarer under pull requestet. Andre udviklere er velkomne til at bidrage med kommentarer. Disse vil også blive taget i betragtning.
  5. Hvis koden accepteres, vil ding.TING::core-team merge koden ind i hovedsporet. Herefter gennemføres en test, inden en ny release af hovedsporet. 
  6. Hvis koden ikke accepteres vil ding.TING::core-team kommentere på koden, og udviklere kan foretage de nødvendige ændringer. Herefter foretages et nyt re-view, og hvis koden accepteres, vil ding.TING::core-team merge koden ind i hovedsporet.
  7. Hvis du har brug for at ændringen træder i kraft med det samme i dit lokale projekt, kan du opdatere projektets ding.make fil og referere til det forkede repository i stedet for. I så fald skal du være opmærksom på, at projektet selv er ansvarlig for at holde projektets fork opdateret, så I får efterfølgende opdateringer og fejlrettelser med.
 

Udvidelser i form af nye selvstændige moduler

  1. Send en mail til ding.TING::core-team på dingcore@ting.dk med link til repositoriet på github.com.
  2. ding.TING::core-team laver et fork, foretager et review af koden og laver evt. et pull request tilbage til dit repository med ændringer og kommentar.
  3. Efter evt. kommentarer og kodeændringer er blevet accepter og diskuteret, vil ding.TING::core-team lave et fork over i hovedsporet, hvor efter dette vil blive det nye repository for udvidelsen.
 
Hvis ding.TING::core-team bliver opmærksomme på ændringer eller udvidelser foretaget af et lokalt bibliotek forebeholder vi os ret til at hive kode fra biblioteket ind under hovedsporet.

Håndtering af lokale ændringer

Det er ikke alle ændringer eller forslag om bidrag til hovedsporet, der vil blive accepteret.
Dette gælder eksempelvis ændringer, der er bundet så tæt op imod ét bestemt Ding site, at de ikke kan benyttes til andre Ding web-sites. Dette gælder specielt ændringer, der ligger sig tæt op af udformningen af temaet til sitet. Dette kan eksempelvis være i form af sidestruktur, grafik og farver. En sådan ændring eller udvidelse bør forblive i det lokale projekt, det er udviklet til. 
 
Hvis du gerne vil bibeholde en ændring, som ikke er blevet accepteret af ding.TING::core-team, kan du opdatere projektets ding.make fil og referere til det forkede repository i stedet for. I så fald skal du være opmærksom på, at projektet selv er ansvarlig for at holde projektets fork opdateret, så I får efterfølgende opdateringer og fejlrettelser med. 
 

Uenigheder

ding.TING::core-team beslutter suverænt, hvilke ændringer af teknisk karakter, der vil blive accepteret og hvilke der forbliver lokale ændringer.
 
Hvis en ændring har forretningsmæssig karakter, og der opstår uenigheder omkring en given ændring, vil ding.TING::core-team tage dette op med Ding.Council, som har den endelige beslutningskraft.

Om ding.TING::core-team

Ding.Core teamet er en gruppe af udviklere, der arbejder med Ding.Ting. Formålet med ding.TING::core-team er at sikre den tekniske kvalitet af Ding.Ting projektet.
 
Nuværende medlemmer af ding.TING::core-team er:
 
  • Kasper Garnæs, Reload! A/S
  • Jesper Kristensen, Aarhus Kommunes Biblioteker, ITK
  • Gitte Barlach, Aarhus Kommunes Biblioteker, ITK

------------------------------------------------------------------------

1) Al kode under http://github.com/dingproject/.

Grupper:

Kommentarer

God ændring

Uden at være programmør har jeg fulgt Moodle systemets tracker http://tracker.moodle.org i flere år og mange gange været imponeret over den måde de har arbejdet med deres kode i et internationalt fællesskab.

Den beskrevne strukturelle ændring i Ding hovedsporet ligger sig så vidt jeg lige kan bedømme meget tæt op Moodle fællesskabets måde at gøre det på med central vedligeholdelse hvor alle bidrag trækkes ind til central kodeevaluering og ikke mindst tests... før det centralt besluttes om bidrag skal integreres i hovedspor / andre spor. Deres tracker-system gør det virkelig nemt at følge udvalgte issues/bidrag, se fx http://tracker.moodle.org/browse/MDL-28172

Stor respekt for al det I gør!

 

Rettigheder i Ding.Core team

Jeg vil gerne understrege, at medlemmer af Ding.Core er underlagt samme kriterier som alle andre udviklere ift. forking og review af kode.

Dermed bliver Jespers og mit arbejde med Ding påvirket i lige så høj grad som alle andre udvikleres. 

Ændring gennemført. Husk at watche!

Ding 1.6.0 er blevet releaset og derfor har nu også fjernet rettighederne som beskrevet ovenfor.

Mikkel Høgh har gjort opmærksom på at brugere, der har commit-rettigheder til et repository normalt vil blive notificeret vedr. kommentarer, pull requests etc. Eftersom disse rettigheder er blevet fjernet, vil vi gerne opfordre interesserede udviklere til at benytte GitHubs watch funktionalitet til fortsat at holde sig opdateret med ændringer og deltage i diskussionen.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.