Přeskočit obsah

Návrh nové funkce

Jsme vždy otevřeni návrhům a nápadům na nové funkce nebo dokumentaci pro BeeWare. Jak ale svůj nápad předložit k posouzení?

Než začnete

Máme již velmi dlouhý seznam funkcí, které bychom rádi implementovali, ale naše zdroje jsou velmi omezené. Pokud máte nápad, který by podle vás mohl BeeWare vylepšit, rádi si ho vyslechneme. Pokud bude stejný požadavek vyjádřit dostatečný počet lidí, hlavní tým tento nápad možná implementuje. Samotný požadavek na novou funkci však pravděpodobně nepovede k její implementaci v blízké budoucnosti.

BeeWare je komunita Open Source. Nejúčinnějším způsobem, jak zajistit implementaci určité funkce, je implementovat ji sami. Uděláme vše, co je v našich silách, abychom přispěvatelům pomohli implementovat funkce, které by rádi viděli přidány. Požadavky, aby jádrový tým implementoval funkci zdarma, pravděpodobně nebudou dobře přijaty.

Pokud nemáte možnost implementovat funkci sami, dalším způsobem, jak urychlit vývoj vaší funkce, je zaplatit někomu, aby ji za vás implementoval. Pokud byste chtěli projednat možnost zaplatit za upřednostnění vývoje konkrétní funkce, kontaktujte tým BeeWare.

Nejviditelnější možností je navrhnout nové API nebo funkci. Pokud máte případ použití, který BeeWare v současné době nepodporuje, nebo existuje nativní funkce platformy, kterou BeeWare v současné době nemůže využívat, můžete navrhnout změnu, která tuto mezeru vyřeší.

Při navrhování nové funkce mějte na paměti, že sada nástrojů BeeWare podporuje více platforem. To znamená, že každá nová funkce musí:

  • Být vhodný a implementovatelný na všech platformách (např. každý GUI toolkit má koncept „tlačítka“); nebo
  • Být vhodný pro platformy stejného „typu“ a vhodný k ignorování na jiných platformách (např. všechny mobilní telefony mají akcelerometry; mnoho stolních počítačů je nemá, a proto má smysl, aby API akcelerometru existovalo pro iOS a Android, ale ne pro stolní počítače nebo webové platformy); nebo
  • Umožněte přístup k interní funkci platformy bez změny veřejné API (např. nemůžete přidat funkci, která je jasně specifická pro Android, ale můžete koncovým uživatelům usnadnit přístup k funkci specifické pro Android z jejich vlastního kódu).

To neznamená, že musíte být zodpovědní za implementaci funkce na každé platformě. Pokud nemáte přístup k hardwaru Apple, není rozumné očekávat, že poskytnete implementaci funkce pro macOS nebo iOS. V rámci procesu návrhu však musíme zjistit, zda je možné implementovat funkci tak, jak popisujete.

Navrhování nové dokumentace

Další věcí, kterou byste mohli navrhnout, je vylepšení dokumentace. Pokud máte nápad, jak vylepšit dokumentaci pro BeeWare, zvažte následující:

  • Překrývá se váš návrh se stávající dokumentací? Navrhujete nový průvodce nebo doplnění stávajícího průvodce?
  • Jak to zapadá do zbytku ekosystému BeeWare? Je tento projekt správným místem pro zdokumentování této myšlenky? Nebo bychom měli zdokumentovat funkci v jiném projektu a odkazovat na tuto dokumentaci?
  • Existuje nějaký obecný pojem, který je třeba vysvětlit, aby konkrétní pokyny dávaly smysl?
  • Má smysl, abychom toto téma vysvětlovali, nebo se jím již někdo jiný někde zabýval a můžeme na něj odkázat?

Pokud si nejste jisti, nebojte se! Pošlete nám svůj nápad a v úvodní diskusi nám sdělte, v čem si nejste jisti. Pomůžeme vám vaše nápady upravit do podoby, která bude vyhovovat dokumentaci BeeWare.

Přispění návrhem funkce

Návrh nové funkce

Máte tedy nápad, jak vylepšit BeeWare – jak tento nápad předložit k posouzení?

Proveďte průzkum

Prvním krokem je prohledat systém pro sledování problémů BeeWare a najít existující problémy s funkcemi (problémy označené „vylepšení”), problémy s dokumentací (problémy označené „dokumentace”), nebo diskusní vlákna, abyste zjistili, zda již někdo tento nápad nenavrhl. Pokud ano a máte nové souvislosti nebo nápady, které chcete přidat, zahrňte je do existujícího vlákna. Pokud potřebujete pomoc s výzkumem, můžete se zeptat v kanálu #dev na BeeWare Discord. Možná vám budeme moci ukázat směr existujících vláken, poskytnout souvislosti, o kterých možná nevíte, nebo propojit váš nápad s jiným nápadem, který se na první pohled nemusí zdát související.

Diskutujte o této myšlence

Pokud nenajdete žádné existující odkazy na svůj nápad, založte diskusní vlákno. Uveďte obecný popis účelu a použití svého nápadu. Uveďte také své představy o tom, jak by daná funkce vypadala, pokud by byla implementována, například obecný tvar API, vizuální podoba funkce nebo dokument, který by byl přidán. Pokud je to relevantní, uveďte také veškerý výzkum, který jste provedli ohledně toho, jak by se váš nápad projevil na různých platformách.

Jakmile bude diskusní vlákno otevřeno, tým BeeWare a zbytek komunity na něj zareagují. Jádro týmu se bude snažit poskytnout alespoň první dojem z vašeho nápadu do dvou pracovních dnů. Pokud je nápad obzvláště složitý, může podrobnější analýza trvat až týden. Události jako svátky a konference mohou tyto lhůty mírně prodloužit.

Toto je vaše příležitost zapojit se do diskuse o vašem nápadu. Můžeme vás požádat o další podrobnosti nebo kontext. Do diskuse se mohou zapojit i další členové komunity, kteří mohou přinést jiné pohledy, návrhy nebo protinávrhy. Výsledek této diskuse určí další kroky.

Je důležité si uvědomit, že ne všechny nápady budou přijaty. Důvodem, proč tento proces začíná návrhem, je zabránit tomu, abyste vynaložili veškeré úsilí, jen abyste zjistili, že existuje důvod, proč vaše změna nebude přijata.

To ale neznamená, že to nebyl dobrý nápad! Může existovat technické důvody, proč jej nelze realizovat. Například můžeme nápad zamítnout, pokud:

  • Bylo by obtížné nebo nemožné jej spolehlivě implementovat na všech podporovaných platformách; nebo
  • Bylo by obtížné jej udržovat nebo by údržba vyžadovala přístup k technologii nebo softwaru, který není široce dostupný; nebo
  • Slouží úzké skupině uživatelů, ale ostatním uživatelům způsobuje značné náklady.

Pokud usoudíme, že váš nápad není vhodný, nemusí to nutně znamenat, že byste ho měli vzdát. I když můžeme odmítnout konkrétní nápad, můžeme být mnohem vstřícnější k přidání rozhraní pluginu nebo jiného rozšíření, které by vám umožnilo zachovat stejnou funkci jako externí knihovna. Tímto způsobem můžete mít danou funkci, ale bez konkrétních problémů s údržbou nebo omezeními, která by se stala překážkou pro samotný projekt.

Převést na formální požadavek na funkci

Jakmile se v diskusi dosáhne shody ohledně podoby funkce, můžete v systému pro sledování problémů beeware vytvořit nový požadavek na funkci, který shrne diskusi a bude obsahovat odkaz na diskusi pro kontext.

Nemusíte svůj návrh funkce implementovat sami; můžete otevřít issue s podrobnostmi o tom, co navrhujete. Pouhé zveřejnění issue však neznamená, že bude pro vás implementováno. Budete muset počkat, až se ho ujme někdo jiný, kdo má o stejnou funkci zájem, ať už se jedná o jiného člena komunity nebo členy hlavního týmu; není však zaručeno, že se tak stane. Pokud chcete mít jistotu, že bude funkce implementována, budete ji muset implementovat sami nebo zaplatit někoho, kdo to udělá za vás.