Пропозиція щодо нової функції¶
Ми завжди відкриті до пропозицій та ідей щодо нових функцій або документації для BeeWare. Але як саме можна подати свою ідею на розгляд?
Перш ніж почати¶
У нас уже є дуже довгий список функцій, які ми хотіли б реалізувати, але ресурси в нас дуже обмежені. Якщо у вас є ідея, яка, на вашу думку, могла б покращити BeeWare, ми будемо раді про неї дізнатися. Якщо достатня кількість людей висловить таке саме побажання, основна команда може реалізувати цю ідею. Однак саме по собі подання пропозиції щодо функції навряд чи призведе до її впровадження в найближчому майбутньому.
BeeWare — це спільнота з відкритим кодом. Найефективніший спосіб забезпечити реалізацію тієї чи іншої функції — це реалізувати її самостійно. Ми зробимо все, що в наших силах, щоб допомогти учасникам спільноти реалізувати ті функції, які вони хотіли б бачити в програмі. Вимоги до основної команди реалізувати функцію за вас і безкоштовно, швидше за все, не будуть сприйняті позитивно.
Якщо ви не маєте можливості реалізувати функцію самостійно, іншим способом прискорити її розробку є оплата послуг фахівця, який зробить це за вас. Якщо ви бажаєте обговорити можливість оплати послуг для надання пріоритету розробці конкретної функції, будь ласка, зверніться до команди BeeWare.
Пропозиції щодо нових функцій¶
Найбільш очевидним варіантом є пропозиція щодо нового API або нової функції. Якщо у вас є сценарій використання, який BeeWare наразі не підтримує, або існує вбудована функція платформи, яку BeeWare наразі не може використовувати, ви можете запропонувати зміни, щоб усунути цю прогалину.
Пропонуючи нову функцію, майте на увазі, що набір інструментів BeeWare підтримує кілька платформ. Це означає, що будь-яка нова функція повинна:
- бути сумісними та реалізованими на всіх платформах (наприклад, кожен набір інструментів для створення графічного інтерфейсу користувача має поняття «кнопки»); або
- бути придатними для платформ того самого «типу» і доцільними для ігнорування на інших платформах (наприклад, усі мобільні телефони мають акселерометри; натомість на настільних комп’ютерах їх небагато, і тому доцільно, щоб API акселерометра існував для iOS та Android, але не для настільних комп’ютерів чи веб-платформ); або
- Надайте доступ до функції внутрішньої платформи без внесення змін до публічного API (наприклад, ви не можете додати функцію, яка явно призначена виключно для Android, але можете спростити кінцевим користувачам доступ до функції, призначеної для Android, з їхнього власного коду).
Це не означає, що ви повинні нести відповідальність за реалізацію функції на кожній платформі. Якщо у вас немає доступу до обладнання Apple, від вас нерозумно очікувати реалізації функції для macOS або iOS. Однак у рамках процесу проектування нам потрібно встановити, що реалізація функції саме так, як ви описуєте, є можливою.
Пропозиції щодо нової документації¶
Ще одна пропозиція, яку ви, можливо, захочете висловити, — це вдосконалення документації. Якщо у вас є ідея щодо вдосконалення документації для BeeWare, варто врахувати такі аспекти:
- Чи не дублює ваша пропозиція вже наявну документацію? Ви пропонуєте створити новий посібник чи доповнити існуючий?
- Як це вписується в решту екосистеми BeeWare? Чи є цей проєкт правильним місцем для документування цієї ідеї? Або ж нам слід описати цю функцію в іншому проєкті та надати посилання на цю документацію?
- Чи існує якась загальна концепція, яку слід пояснити, перш ніж конкретні інструкції стануть зрозумілими?
- Чи має сенс нам пояснювати цю тему, чи, можливо, хтось інший уже висвітлював її десь, і ми можемо послатися на це джерело?
Якщо у вас виникли сумніви щодо будь-якого з цих питань, не хвилюйтеся! Надішліть свою ідею та повідомте нам під час першої обговорення, у чому саме ви не впевнені, — і ми допоможемо втілити ваші ідеї у формі, яка відповідатиме вимогам документації BeeWare.
Подання пропозиції щодо нової функції¶
Пропозиція щодо нової функції
Пропозиція щодо нової функції¶
Отже, у вас є пропозиція щодо вдосконалення BeeWare — як подати цю пропозицію на розгляд?
Проведіть дослідження¶
Першим кроком є пошук у системі відстеження проблем BeeWare існуючих запитів щодо нових функцій (запитів з тегом «enhancement»), проблем з документацією (записів із тегом «documentation»), або тем для обговорення, щоб перевірити, чи ця ідея вже пропонувалася раніше. Якщо так, і у вас є нові деталі чи ідеї, додайте їх до існуючої теми. Якщо вам потрібна допомога з пошуком, ви можете звернутися у каналі #dev на BeeWare Discord. Ми можемо вказати вам на існуючі теми, надати контекст, про який ви, можливо, не знаєте, або пов’язати вашу ідею з іншою, яка на перший погляд може здаватися не пов’язаною.
Обговоріть цю ідею¶
Якщо ви не знайшли жодних існуючих згадок про вашу ідею, створіть обговорення. Надайте загальний опис мети та сценарію використання вашої ідеї. Додайте свої думки щодо того, як ця функція могла б виглядати в разі її реалізації, наприклад, загальну структуру API, візуальне оформлення функції або документ, який би додавався. Якщо це доречно, також слід додати результати досліджень, які ви провели щодо того, як ваша ідея реалізовувалася б на різних платформах.
Після відкриття теми для обговорення команда BeeWare та решта спільноти нададуть відповіді. Основна команда постарається надати принаймні перше враження щодо вашої ідеї протягом двох робочих днів. Якщо ідея є особливо складною, більш детальний аналіз може зайняти до тижня. Такі події, як свята та конференції, можуть призвести до незначного подовження цих термінів.
Це ваша можливість долучитися до обговорення вашої ідеї. Ми можемо попросити вас надати додаткові деталі або контекст. До обговорення можуть долучитися й інші учасники спільноти, які висловлять інші точки зору, пропозиції чи альтернативні варіанти. Результат цього обговорення визначить подальші кроки.
Важливо розуміти, що не всі ідеї будуть прийняті. Цей процес починається саме з подання пропозиції, щоб уникнути ситуації, коли ви докладете всіх зусиль, а потім з’ясуєте, що ваша пропозиція не буде прийнята з певних причин.
Це не означає, що це була погана ідея! Можливо, існують технічні причини, через які її неможливо реалізувати. Наприклад, ми можемо відхилити ідею, якщо:
- було б складно або неможливо забезпечити надійне функціонування на всіх підтримуваних платформах; або
- Це було б складно підтримувати, або для обслуговування знадобився б доступ до технологій чи програмного забезпечення, які не є широко доступними; або
- Він орієнтований на вузьку аудиторію, але створює значні додаткові витрати для інших користувачів.
Якщо ми вирішимо, що ваша ідея не підходить, це не обов’язково означає, що вам слід від неї відмовитися. Хоча ми можемо відхилити конкретну ідею, ми можемо бути набагато більш схильні до додавання інтерфейсу плагіна або іншої точки розширення, що дозволить вам підтримувати ту саму функцію як зовнішню бібліотеку. Таким чином, ви зможете мати цю функцію, але без конкретних проблем з її підтримкою або обмежень, які можуть стати перешкодою для самого проєкту.
Перетворити на офіційну пропозицію щодо функції¶
Як тільки під час обговорення буде досягнуто консенсусу щодо форми функції, ви можете створити нову заявку на додавання функції у системі відстеження проблем BeeWare, в якій підсумуйте результати обговорення та вкажіть посилання на саму дискусію для розуміння контексту.
Вам не обов’язково самостійно реалізовувати свою пропозицію щодо нової функції; ви можете створити запит із докладним описом того, що ви пропонуєте. Однак саме по собі створення запиту ще не означає, що ця функція буде реалізована саме для вас. Вам доведеться чекати, поки її, можливо, підхопить хтось інший, зацікавлений у цій же функції — чи то інший учасник спільноти, чи то основна команда; однак це не гарантовано. Якщо ви хочете гарантованої реалізації, вам доведеться реалізувати її самостійно або заплатити комусь іншому, щоб він реалізував її за вас.
Якщо вас це зацікавило, ви можете розпочати реалізацію нової функції.