Proponowanie nowej funkcji¶
Jesteśmy zawsze otwarci na sugestie i pomysły dotyczące nowych funkcji lub dokumentacji dla BeeWare. Ale jak zgłosić swój pomysł do rozpatrzenia?
Zanim zaczniesz¶
Mamy już długą listę funkcji, które chcielibyśmy wdrożyć, ale nasze zasoby są bardzo ograniczone. Jeśli masz pomysł, który Twoim zdaniem poprawiłby działanie BeeWare, chętnie go poznamy. Jeśli wystarczająca liczba osób zgłosi tę samą prośbę, główny zespół może wdrożyć ten pomysł. Jednak samo zgłoszenie prośby o dodanie funkcji raczej nie spowoduje, że zostanie ona wdrożona w najbliższej przyszłości.
BeeWare jest społecznością Open Source. Najskuteczniejszym sposobem zapewnienia wdrożenia danej funkcji jest samodzielne jej wdrożenie. Dołożymy wszelkich starań, aby pomóc współpracownikom we wdrożeniu funkcji, które chcieliby dodać. Żądania, aby główny zespół wdrożył daną funkcję bezpłatnie, prawdopodobnie nie zostaną dobrze przyjęte.
Jeśli nie jesteś w stanie samodzielnie wdrożyć danej funkcji, innym sposobem na przyspieszenie jej rozwoju jest zapłacenie komuś za jej wdrożenie. Jeśli chcesz omówić kwestię opłacenia priorytetowego rozwoju konkretnej funkcji, skontaktuj się z zespołem BeeWare.
Proponowanie nowych funkcji¶
Najbardziej oczywistą rzeczą, którą można zasugerować, jest nowe API lub nowa funkcja. Jeśli masz przypadek użycia, którego BeeWare obecnie nie obsługuje, lub istnieje natywna funkcja platformy, której BeeWare obecnie nie może wykorzystać, możesz zaproponować zmianę, aby wypełnić tę lukę.
Proponując nową funkcję, należy pamiętać, że pakiet narzędzi BeeWare obsługuje wiele platform. Oznacza to, że każda nowa funkcja musi:
- Być odpowiednim i możliwym do wdrożenia na wszystkich platformach (np. każdy zestaw narzędzi GUI posiada pojęcie „przycisku”); lub
- Być odpowiednim dla platform tego samego „typu” i odpowiednim do pominięcia na innych platformach (np. wszystkie telefony komórkowe mają akcelerometry; niewiele komputerów stacjonarnych je posiada, dlatego sensowne jest istnienie interfejsu API akcelerometru dla systemów iOS i Android, ale nie dla platform stacjonarnych lub internetowych); lub
- Zezwól na dostęp do funkcji platformy wewnętrznej bez zmiany publicznego interfejsu API (np. nie można dodać funkcji, która jest wyraźnie specyficzna dla systemu Android, ale można ułatwić użytkownikom końcowym dostęp do funkcji specyficznej dla systemu Android z poziomu ich własnego kodu).
Nie oznacza to, że musisz być odpowiedzialny za wdrożenie funkcji na każdej platformie. Jeśli nie masz dostępu do sprzętu Apple, nie możemy oczekiwać, że zapewnisz implementację funkcji w systemie macOS lub iOS. Jednak w ramach procesu projektowania musimy ustalić, czy wdrożenie funkcji w opisany przez Ciebie sposób jest możliwe.
Proponowanie nowej dokumentacji¶
Kolejną rzeczą, którą warto zasugerować, jest ulepszenie dokumentacji. Jeśli masz pomysł na ulepszenie dokumentacji dla BeeWare, weź pod uwagę następujące kwestie:
- Czy Twoja sugestia pokrywa się z istniejącą dokumentacją? Czy proponujesz nowy przewodnik, czy dodatek do istniejącego przewodnika?
- Jak to pasuje do reszty ekosystemu BeeWare? Czy ten projekt jest odpowiednim miejscem do udokumentowania tego pomysłu? A może powinniśmy udokumentować tę funkcję w innym projekcie i zamieścić link do tej dokumentacji?
- Czy istnieje ogólna koncepcja, którą należy wyjaśnić, aby konkretne instrukcje miały sens?
- Czy warto wyjaśniać ten temat, czy może ktoś już to zrobił i możemy się do tego odnieść?
Jeśli nie jesteś pewien co do którejkolwiek z tych kwestii, nie martw się! Prześlij swój pomysł i poinformuj nas podczas wstępnej dyskusji, co budzi Twoje wątpliwości, a my pomożemy Ci nadać Twoim pomysłom formę, która będzie pasować do dokumentacji BeeWare.
Wnoszenie propozycji funkcji¶
Proponowanie nowej funkcji
Masz pomysł na ulepszenie BeeWare – jak zgłosić ten pomysł do rozpatrzenia?
Zrób swoje badania¶
Pierwszym krokiem jest przeszukanie systemu śledzenia problemów BeeWare pod kątem istniejących problemów dotyczących funkcji (problemy oznaczone tagiem „enhancement”), problemów dotyczących dokumentacji (problemy oznaczone tagiem „documentation”) lub wątków dyskusyjnych, aby sprawdzić, czy pomysł został już wcześniej zgłoszony. Jeśli tak, a masz nowe informacje lub pomysły do dodania, dołącz je do istniejącego wątku. Jeśli potrzebujesz pomocy w poszukiwaniach, możesz poprosić o nią na kanale #dev na BeeWare Discord. Być może będziemy w stanie wskazać Ci istniejące wątki, dostarczyć informacji, których możesz nie znać, lub połączyć Twój pomysł z innym, który na pierwszy rzut oka może wydawać się niepowiązany.
Omów pomysł¶
Jeśli nie znajdziesz żadnych istniejących odniesień do swojego pomysłu, rozpocznij wątek dyskusji. Przedstaw ogólny opis celu i zastosowania swojego pomysłu. Dodaj wszelkie przemyślenia na temat tego, jak wyglądałaby ta funkcja, gdyby została wdrożona, np. ogólny kształt interfejsu API, wygląd wizualny funkcji lub dokument, który zostałby dodany. W stosownych przypadkach należy również dołączyć wszelkie badania dotyczące tego, jak pomysł zostałby zrealizowany na różnych platformach.
Po otwarciu wątku dyskusji zespół BeeWare i reszta społeczności udzielą odpowiedzi. Główny zespół postara się przedstawić przynajmniej wstępną opinię na temat Twojego pomysłu w ciągu dwóch dni roboczych. Jeśli pomysł jest szczególnie złożony, bardziej szczegółowa analiza może potrwać do tygodnia. Wydarzenia takie jak święta i konferencje mogą spowodować nieznaczne wydłużenie tych terminów.
To Twoja szansa, aby wziąć udział w dyskusji na temat Twojego pomysłu. Możemy poprosić Cię o podanie dodatkowych szczegółów lub kontekstu. Inni członkowie społeczności również mogą włączyć się do dyskusji, przedstawiając inne perspektywy, sugestie lub kontrpropozycje. Wynik tej dyskusji będzie decydował o kolejnych krokach.
Ważne jest, aby zrozumieć, że nie wszystkie pomysły zostaną zaakceptowane. Proces ten rozpoczyna się od złożenia wniosku, aby uniknąć sytuacji, w której wykonasz całą pracę, a następnie dowiesz się, że istnieje powód, dla którego Twoja zmiana nie zostanie zaakceptowana.
Nie oznacza to, że nie był to dobry pomysł! Mogą istnieć techniczne powody, dla których nie można go wdrożyć. Na przykład możemy odrzucić pomysł, jeśli:
- Byłoby to trudne lub niemożliwe do wdrożenia w sposób niezawodny na wszystkich obsługiwanych platformach; lub
- Byłoby to trudne do utrzymania lub konserwacja wymagałaby dostępu do technologii lub oprogramowania, które nie są powszechnie dostępne; lub
- Obsługuje niszową grupę odbiorców, ale nakłada znaczne obciążenia na innych użytkowników.
Jeśli uznamy, że Twój pomysł nie pasuje, nie oznacza to koniecznie, że powinieneś z niego zrezygnować. Chociaż możemy odrzucić konkretny pomysł, możemy być znacznie bardziej skłonni do dodania interfejsu wtyczki lub innego punktu rozszerzenia, który pozwoliłby Ci zachować tę samą funkcję jako bibliotekę zewnętrzną. W ten sposób możesz mieć tę funkcję, ale bez konkretnych problemów związanych z utrzymaniem lub ograniczeń funkcji, które stałyby się ograniczeniem dla samego projektu.
Przekształć w formalną prośbę o dodanie funkcji¶
Gdy dyskusja doprowadzi do konsensusu w sprawie formy funkcji, można utworzyć nowe zgłoszenie dotyczące funkcji (https://github.com/beeware/beeware/issues/new/choose) w systemie śledzenia zgłoszeń BeeWare, które podsumowuje dyskusję i zawiera link do niej dla kontekstu.
Nie musisz samodzielnie wdrażać swojej propozycji funkcji; możesz zgłosić problem, podając szczegóły swojej propozycji. Jednak samo zgłoszenie problemu nie oznacza, że zostanie on wdrożony. Musisz poczekać, aż ktoś inny zainteresowany tą samą funkcją, czy to inny członek społeczności, czy zespół główny, potencjalnie ją wybierze; nie ma jednak gwarancji, że tak się stanie. Jeśli chcesz mieć gwarancję wdrożenia, musisz wdrożyć ją samodzielnie lub zapłacić komuś, kto zrobi to za Ciebie.