在 Sails 核心中,我們接受兩種程式碼貢獻類型:修補程式和新功能。
修補程式(Patches) 是小的修正,範圍從錯字到時序問題。從檔案頂部移除未使用的 require()
,或是修正導致 Travis 上主要分支測試崩潰的錯字,都是修補程式的好例子。跨多個檔案更改空格和變數名稱的大型重構專案不是修補程式。此外,請記住,即使看似微不足道的變更,如果它影響了 Sails 已記錄功能的用法,或如果它新增了未記錄的公共函數,則也不是修補程式。
新功能(New features) 是 Sails 路線圖 檔案中總結的 TODO,並在隨附的 Pull Request 中提供更多資訊。任何未明確列在 ROADMAP.md 檔案中的內容,都不應作為新功能提交。
如果您不確定您想做的變更是否會被視為「修補程式」,請在 Issue 追蹤器 中開啟一個 Issue,或在您開始處理 Pull Request 之前,在 Twitter 上聯絡我們 核心團隊 的成員。如果您計劃處理大型專案,尤其如此。沒有什麼比看到您的辛勤工作付諸東流更令人沮喪的了,因為您的願景與專案維護者的計劃或正在進行的開發工作不一致。
Sails 核心內的子模組的 API 穩定性層級各不相同。我們隨時歡迎錯誤修正(修補程式),但未經嚴謹的規劃,API 或行為變更無法合併,如上述功能提案流程中所記錄。
Sails 在 package.json
檔案中引用了幾個不屬於專案本身的依賴項。任何對這些依賴項或它們的依賴項的擬議變更都應發送到它們各自的專案(例如 Express、Socket.io 等)。請不要將您的修補程式或功能請求發送到 Sails 儲存庫,我們無法接受或滿足它。(不過,如果您透過聊天聯繫我們,我們會盡力提供協助。)
如果 Adapter 是核心的一部分(程式碼庫位於 Sails 儲存庫中),請遵循貢獻到 Sails 核心的一般最佳實務。如果它位於不同的儲存庫中,請將功能請求和修補程式發送到那裡。
Sails Adapter 將 Waterline 查詢語法轉換為整合資料庫的底層語言,並從資料庫取得結果,並將其對應到 Waterline(Sails 框架的 ORM)期望的回應。雖然建立新的 Adapter 不應輕率看待,但在許多情況下,編寫 Adapter 並不像聽起來那麼困難(因為您通常最終會包裝現有的 npm 套件),而且這是讓您開始接觸 Sails 中 ORM Hook 和 Waterline 程式碼庫的好方法。
在開始開發新的 Adapter 之前,只需確保在 npm、Google 和 Github 上進行徹底搜尋,以檢查是否有人已經開始處理相同的內容。請在 概念 > 擴展 Sails > Adapters 中閱讀更多關於 Adapter 的資訊。
如果 Hook 是核心的一部分(程式碼庫位於 Sails 儲存庫中),請遵循貢獻到 Sails 核心的一般最佳實務。如果 Hook 位於不同的儲存庫中,請將功能請求、修補程式和 Issue 發送到那裡。許多核心 Hook 都有 README.md 檔案,其中包含對其用途、它們附加的方法、它們觸發的事件以及任何其他與其實作相關資訊的廣泛文件。
建立 Hook 是在 Sails 核心中完成幾乎任何事情的好方法。在開始開發新的自訂 Hook 之前,只需確保在 npm、Google 和 Github 上進行徹底搜尋,以確保沒有其他人已經開始處理相同的內容。請在 概念 > 擴展 Sails > Hooks 中閱讀更多關於自訂 Hook 的資訊。
如果產生器是核心的一部分(程式碼庫位於 Sails 儲存庫中),請遵循貢獻到 Sails 核心的一般最佳實務。如果它位於不同的儲存庫中,請將功能請求、修補程式和 Issue 發送到那裡。
自訂產生器 API 尚未 100% 穩定,但正在趨於穩定。您可以隨時開始開發新的自訂產生器,但首先請確保在 npm、Google 和 Github 上進行徹底搜尋,以確保沒有其他人已經開始處理相同的內容。自訂產生器是讓您開始接觸 Sails 程式碼庫的好方法。