Přispívat do GNOME nebylo nikdy jednodušší

GNOME tento týden představilo nové workflow pro nováčky. Chcete začít do GNOME přispívat? První kroky jsou teď výrazně jednodušší a musím říct, že je výsledek je opravdu působivý a může být příkladem pro ostatní open-source projekty.

Zapojit se do programování nějakého open-source projektu není tak jednoduché, že si jenom stáhnete zdrojáky a začnete psát kód. U těch jednodušších to platit může, u těch velkých jako GNOME už ne. Abyste výsledek své práce mohli průběžně zkoušet, potřebujete danou komponentu sestavit. A master třeba Nautilu jen tak na své distribuci nesestavíte. Zažili jsme hackatony, kde došli lidi s Ubuntu, které je někdy verzemi i několik let vzdálené od masteru, prakticky celý hackaton strávili přípravou prostředí pro vývoj.

U GNOME to znamená, že si prakticky celé GNOME sestavíte ze zdrojových kódů pomocí nástroje JHBuild. To je zdlouhavá a otravná práce. Když jsem to dělal poprvé, trvalo mi to několik hodin a potřeboval jsem pomoc někoho zkušenějšího.

Před necelými třemi lety přišel Christian Hergert s vizí tohle změnit. Do té doby se snažil rozjet program pro nováčky pod názvem GNOME University, ale čím dál více narážel na nepřívětivost stávajícího toolingu. Rozhodl se tedy, že vytvoří specializované IDE nazvané Builder, které pokryje celé workflow vývoje. Christian má hromadu zkušeností, pracoval třeba na MonoDevelopu a měl docela jasnou představu, co by mělo IDE pokrývat. Mělo používat již existující nástroje, ale dát je dohromady do fungujícího a přehledného celku, nemělo by pokrývat kdejakou pokročilou funkci, kterou chce zkušený vývojář, ale zaměřit se spíš na to, aby pomohlo nováčkům a méně zkušeným vývojářům.

Christian nejdříve spustil crowdsourcingovou kampaň, kde vybral dost peněz na to, aby mohl na Builderu rok pracovat. Projekt nabral docela zajímavé kontury a Christiana najal Red Hat, v kterém na Builderu dál pracuje.

Další kamínkem do mozaiky byl Flatpak. Ten umožňuje běh aplikace bez ohledu na samotný systém. A to je přesně to, co potřebujete, když chcete rychle rozjet vývojové prostředí na systému, který k tomu není jinak připravený.

Třetím kamínkem do mozaiky byla dokumentace, která by nováčka přehledně provedla od nápadu začít do GNOME přispívat k poslání prvního patche. Tato dokumentace byla zveřejněná tento týden.

Díky Builderu a Flatpaku se podařila celá příprava prostředí stáhnout do několika jednoduchých kroků:

  1. Pokud nemáte nejnovější Builder, můžete si jej stáhnout a nainstalovat přes Flatpak. Takto dostanete to nejnovější IDE i na několik let staré distribuci.
  2. Vyberete si komponentu, do které chcete přispět, třeba nějakou aplikaci. Zkopírujete si adresu jejího git repozitáře a v Builderu vyberete „Klonovat“, zadáte adresu a necháte Builder vytvořit lokální kopii repozitáře.
  3. V momentě, kdy chcete komponentu sestavit, kliknete na tlačítko „Spustit“. Prakticky všechny aplikace GNOME obsahují manifest pro Flatpak, který stáhne příslušný runtime a SDK a aplikaci sestaví a Builder vám ji rovnou spustí.

Chcete výsledek práce „exportovat“ a dát k instalaci někomu jinému? Opět něco, co je s Builderem velmi jednoduché. V Builderu vyberete Exportovat jako Flatpak bundle a Builder vám vygeneruje soubor .flatpak s aplikací, který potom můžete nainstalovat na libovolný systém, který Flatpak podporuje.

Mezi vybráním aplikace, do které chcete přispívat, a jejím sestavením a vygenerováním instalačního souboru tak dneska je opravdu jen několik kliknutí. Samozřejmě mezi tím je ještě psaní samotného kódu, to za vás Builder ještě neudělá 🙂 Ale autorům se podařil původní cíl: dosáhnout toho, aby lidi netrávili čas přípravou vývojového prostředí a sestavováním výsledku, ale mohli se soustředit čistě na psaní a studování kódu.

Chcete-li si vyzkoušet, jak je to jednoduché, zamiřte na wiki GNOME do sekce Newcomers.

6 komentářů: „Přispívat do GNOME nebylo nikdy jednodušší“

  1. pokgklskjdfememd;klsjksdfgp;we99838jr avatar
    pokgklskjdfememd;klsjksdfgp;we99838jr

    Proboha, co je to zas za móresy nutit lidem vlastní IDE (když potřebuje jenom build-systém) a nutit lidem vlastní balíčkovací systém, který jenom v systému dělá bordel a představuje nesystematičnost (distribuční balíčkovací systémy jsou dostatečně dobré) !!!???

    1. eischmann avatar

      Kdo chtěl vyvíjet pro GNOME, musel si aktuální master sestavovat JHBuildem, který je výrazně nesystematičtější než Flatpak. Chtěl bych vidět toho, kdo si aktuální master v GNOME sestavuje v balíčcích. Takže tu zjevně rétorickou otázkou považuji za bezpředmětnou bez ohledu na to, kolik za ní následuje vykřičníků a otazníků 🙂

      1. Gargamel avatar
        Gargamel

        No, existuji distribuce, kde krome radnych releasnutych verzi je oficialne k dispozici i metaverze pro git master. Ve vysledku pak muzes mit cast nebo cele Gnome cerstve a v systemu neni mezi takovymi balicky rozdil. Tyka se to i binarnich distribuci. Kdy tohle bude umet Fedora?

      2. eischmann avatar

        Popravdě asi nikdy. Co se týče Workstation, tak je spíš poptávka po tom mít stabilní systém a vyvíjet v nějakém izolovaném prostředí než si dělat vývojové prostředí ze samotného systému. A třeba s Fedora Atomic Workstation už to ani jinak nepůjde. Podobné věci rádi necháme na Gentoo 😉

    2. AsciiWolf avatar

      >distribuční balíčkovací systémy jsou dostatečně dobré
      O tom by se dalo diskutovat. Krom toho, cílem Flatpaku, pokud se nemýlím, není nahrazení distribučních balíčkovacích systémů, nýbrž jejich doplnění – jednoduchá instalace aplikací, které v distribučních repozitářích chybí nebo jsou přítomny pouze ve starých verzích, případně jednoduchá instalace vývojových verzí aplikací.

  2. Lukáš avatar
    Lukáš

    Myslím, že to je skvělý počin. Když jsem chtěl vyvíjet pro GNOME 2-3 roky nazpět a zabrousil jsem na web s dokumentací, tak mě to po pár dnech přešlo. Pokud toto za uživatele plně připraví prostředí, je to fajn a můžu se soustředit přímo na coding aplikací místo nastavovaní IDE atd. Za mě rozhodně palec nahoru.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *