提出新功能¶
我們隨時歡迎您對 BeeWare 的新功能或文件提出建議和想法。但是如何提交您的想法以供考慮呢?
開始之前¶
我們已經有一長串想要實作的功能,但資源非常有限。如果您有能讓 BeeWare 變得更好的想法,我們很樂意聆聽。如果有足夠的人提出相同的要求,核心團隊可能會實作該想法。不過,提出功能請求本身不太可能導致該功能在短期內實現。
BeeWare 是一個開放原始碼的社群。確保功能實現的最有效方法就是自己去實現。我們會盡我們所能幫助貢獻者實現他們希望看到的功能。要求核心團隊免費為您實作某項功能,是不可能得到好評的。
如果您沒有能力自己實現某個功能,另一個加速功能開發的方法是付費請人幫您實現。如果您想討論付費讓人優先開發某個功能,請聯絡BeeWare團隊。
建議新功能¶
最明顯的建議就是新的 API 或功能。如果您有 BeeWare 目前不支援的使用個案,或是有 BeeWare 目前無法利用的原生平台功能,您可能需要提出變更來解決這個缺口。
提出新功能時,請記住 BeeWare 套裝工具支援多種平台。這意味著任何新功能都必須
- 適用於所有平台並可在所有平台上實作(例如:每個 GUI 工具包都有「按鈕」的概念);或
- 適用於相同「類型」的平台,並適宜忽略其他平台(例如,所有手機都有加速度計;但有加速度計的桌上型電腦不多,因此加速度計 API 存在於 iOS 和 Android 是合理的,但不適用於桌上型電腦或網頁平台);或
- 允許存取內部平台功能而不改變公開 API (例如:您不能新增明顯是 Android 特有的功能,但您可以讓終端使用者更容易從自己的程式碼存取 Android 特有的功能)。
這並不表示您需要負責在每個平台上實作某項功能。如果您無法使用 Apple 硬體,我們期望您提供某項功能的 macOS 或 iOS 實作是不合理的。但是,作為設計流程的一部分,我們需要確定以您所描述的方式實作功能是可能的。
建議新的文件¶
您可能想要建議的另一件事是改善文件。如果您有改善 BeeWare 的文件的想法,考慮因素包括:
- 您的建議是否與現有文件重疊?您是建議新的指南,還是對現有指南的補充?
- 它如何融入 BeeWare 生態系統的其他部分?這個專案是記錄這個想法的正確地點嗎?還是我們應該在另一個專案中記錄功能,並連結到該文件?
- 在任何具體指示變得有意義之前,是否有需要解釋的高階概念?
- 這個主題對我們來說是否有解釋的意義,或者是否有其他人已經在某個地方講過,我們可以參考?
如果您有任何不確定的地方,請不要擔心!提交您的想法,並在最初的討論中讓我們知道您不確定的地方,我們可以幫助您將您的想法塑造成符合BeeWare文件的形式。
貢獻功能提案¶
提出新功能
您對 {{ 正式名稱 }} 有了改進的想法。- 您該如何提交該想法以供考慮?
進行研究¶
第一步是搜尋 BeeWare 問題追蹤器中現有的 feature issues (標示為「enhancement」的問題), documentation issues (issues tagged "documentation"),或 Discussion threads 看看這個想法之前是否有人提過。如果有,而且您有新的背景或想法要補充,請將它們包含在現有的主題中。如果您在研究過程中需要協助,您可以在 BeeWare Discord 的 #dev channel 中詢問。我們或許能夠為您指出現有主題的方向,提供您可能不知道的背景,或將您的想法與另一個可能看起來沒有立即關聯的想法連結起來。
討論想法¶
如果您沒有找到任何與您的構想相關的現有參考資料,請開始一個 討論主題.提供您的想法的目的和用例的高層級描述。包含您對該功能實作後的外觀的任何想法,例如 API 的一般形狀、功能的視覺外觀,或將新增的文件。如果適用的話,您也應該包含您對於您的想法在不同平台上的表現所做的任何研究。
一旦討論主題被開啟,BeeWare團隊和社群的其他成員將會回應。核心團隊的目標是在兩個工作天內對您的想法提供至少一個初步印象。如果一個想法特別複雜,更詳細的分析可能需要一個星期。假日和會議等活動可能會導致這些時間略微延長。
這是您參與有關構想對話的機會。我們可能會詢問更多細節或背景。社區的其他成員也可能參與討論,提供其他觀點、建議或反提案。討論結果將決定下一步的步驟。
重要的是要了解並非所有的想法都會被接受。這個過程之所以從提案開始,是為了避免您投入了所有的工作,卻發現您的變更不被接受是有原因的。
這並不表示這不是個好主意!可能有技術上的原因導致無法實現。例如,我們可能會拒絕一個想法,如果:
- 難以或不可能在所有支援的平台上可靠地執行;或
- 難以維護,或維護需要使用尚未普及的技術或軟體;或
- 它服務的是利基受眾,但對其他使用者造成顯著的開銷。
如果我們認為您的想法不適合,這並不表示您應該放棄。雖然我們可能會拒絕某個*特定的想法,但我們可能會更樂意加入外掛介面或其他延伸點,讓您可以維護與外部函式庫相同的功能。這樣您就可以擁有這個功能,但不會因為特定的維護問題或功能限制而對專案本身造成束縛。
轉換為正式的功能請求¶
一旦討論就功能的形式達成共識,您就可以在 BeeWare 問題追蹤中,建立一個新的 feature request issue 來總結討論內容,並連結到討論的上下文。
您不一定要自己實作您的功能提案;您可以開啟一個包含您提案內容細節的問題。然而,單單張貼問題並不代表它會為您實作。您需要等待它有可能被其他對相同功能有興趣的人採納,無論那是指其他社群成員或核心團隊;但這並不保證一定會發生。如果您想要保證實作,您需要自己實作,或是付錢給其他人替您實作。