NOT: Det här inlägget är skrivet utifrån ett privat utvecklarperspektiv, och har inget att göra med min arbetsgivares åsikter.

Efter att ha funderat på det ett tag så har jag börjat att migrera mina aktiva FOSS-projekt från GitHub till Codeberg. Codeberg ett europeiskt öppen källkod-alternativ som övergripande liknar GitHub - en kodsamverkansplattform.mina

Varför då? Jo, en sak med GitHub att jag alltmer upplevt att man ignorerar grundläggande viktiga funktioner för utvecklare, medan man prioriterar annat. Exempel på sådant jag saknar är: avsaknad av fast-forward merges för linjär historik, rebase-only repos, SHA256-stöd, ordentlig AsciiDoc-rendering saknas fortfarande eller är trasiga. Hela markup-renderingen är en röra med ojämnt stöd för olika format. Fullständig Token-säkerhet har efterfrågats sedan länge, men ändå måste fortfarande använda gamla, osäkra Classic tokens för paketskrivning (fine-grained tokens är inte färdiga). Det finns alltså en hel del lösningar som blir bara 80% färdiga och sedan verkar stanna upp. Kanske är det talande att de delar av lösningen som är öppen källkod, som GitHub markup-repot, verkar helt övergivna. Där ligger många ärenden med åratal på nacken, och commit-historiken avslöjar att ingen beständig förvaltning sker. Överlag får man känslan av att GitHub har i delar slutat att prioritera utvecklargemenskapens behov och teknisk excellens. Mycket av GitHub är historiskt bra också förstås, men jag förväntar mig mycket mer av teknisk driv att lyssna på utvecklargemenskapens från en så välanvänd och global lösning som GitHub.

Men inte bara det, jag har på sistone har jag också tänkt alltmer på hur viktigt digital suveränitet är; inte konstigt med omvärldens kriser kanske. GitHub lyder under amerikansk lag, något som tyvärr har blivit ett negativt försäljningsargument. Tanken på att utvecklare blir avskurna från sina projekt på grund av “tweet-of-the-day-and-it’s-consequences”-politik är inte långsökt längre. Utvecklare har historiskt blivit avstängda från projekt och plattform på grund av amerikanska sanktioner. Mitt, och många andras förtroende för amerikanska tjänster kring data i sig var skadat efter historierna med FISA702 och NSA tillbaka i tiden, och det har inte blivit starkare med de senaste årens händelser, kanske framför allt de två sista. Med ovan i bakgrunden, så är valet att istället stödja ett intiativ i Europa, under EU-lagar, motiverande och enkelt.

Så, om inte GitHub, vad då tänkte jag? Jag tittade runt. GitLab? Jag gillar GitLab starkt också och har använt det i åratal på jobbet, samt privat. Det är delvis öppen källkod, vilket är bättre än GitHub helt svarta låda. Men jag ville ha något europeiskt, mer community-drivet – något där jag kunde fixa en funktion själv om plattformen inte gjorde det. Sourcehut då? Nej, för avskalat.

Valet föll på Codeberg. Codeberg förvaltas av en ideell organisation som kör öppen källkodsprojektet Forgejo i grunden. Du kan själv driftsätta komponenter som Runners (Körare), du kan bidra med lösningsförslag och framtid, och den förvaltande stiftelsen är EU-baserad. Det är inte bara ännu en “GitHub”-klon. Till exempel arbetar de med att lägga till federationsstöd. Forgejo är skrivet i Go, och det märks då plattformen känns rapp och snabb.

Att överföra kod, funktioner som Pages, och Renovate var ganska lätt. Att sätta upp mer avancerade CI-flöden krävde ytterligare jobb dock, delvis på att det finns en del olösta ärenden ännu. Man måste också sätta upp egna körare (runners) (jag använde Podman-baserade). Medan Forgejo Actions liknar GitHub Actions finns det några skillnader i hur de fungerar. Förvänta dig alltså att sakna funktioner du är med från GitHub Actions och kanske GitLab CI.

Visst, målet är nog inte för Codeberg att de ska ha identisk funktionalitet med GitHub/GitLab, men som slutanvändare hjälper ju var sådan funktion mig att migrera. Så personligen hoppas jag att de når en ännu bättre sådan. Det utesluter ju inte möjligheterna att lösa samma användarbehov på ännu bättre sätt ändå.

Jag kommer fortfarande att arbeta på GitHub, och kommer fortsätta bidra till projekt där, både för mig själv och för min jobbroll. Min poäng med hela det här är väl egentligen att det är bra att fundera vem som äger FOSS-infrastruktur och vem som kontrollerar den ibland. Finns det likvärdiga alternativ kanske man ska välja dem istället.

Slutsats: Om du är en teknikintresserad individ med konton eller projekt på GitHub, GitLab m.fl redan skulle jag definitivt säga - ge Codeberg ett försök för dina projekt. Sätt upp en Körare och kom igång. Om du är en organisation, skulle jag föreslå att vänta tills några av de saknade funktionerna jag skriver om nedan är lösta (eller hjälpa till att fixa dem).

PS Här ett inlägg om de skavsår jag stötte på vid migrationen:

Övriga relevanta länkar#