跳到主要內容

版本控制

我們遵循語意化版本控制 (semver)。此頁面有助於訂定準則,說明我們認為屬於每個 semver 類別的範圍。

此專案中的所有套件都使用相同版本號碼發布,以便更輕鬆地協調版本和安裝。

重大變更

在考慮是否應將變更計為「重大變更」時,我們首先需要考慮它會影響哪個(些)套件。例如,parser 套件的重大變更對於 ESLint 外掛而言有不同的標準。這是因為它們不僅有非常不同的 API 外部介面,它們的消耗方式也截然不同。

請注意,下方提供的清單並非詳盡清單,目的是作為範例,協助維護人員在規劃和檢閱變更時作為參考。

ast-specvisitor-keys

如果變更符合下列情形,則 視為會造成中斷:

  • 移除或重新命名現有的 AST 節點。
  • 移除或重新命名 AST 節點上的現有屬性。
  • 以非精緻化的方式變更類型(亦即,將 字串 變更為 數字)。

如果變更符合下列情形,則 不應 視為會造成中斷:

  • 新增 AST 屬性。
  • 新增 AST 節點類型。
  • 新增節點類型至現有的聯合類型。
  • 將類型精緻化以使其更具體(亦即,將 字串 變更為 「文字」|「聯合」)。
  • 從聯合類型中移除錯誤新增且與執行時期 AST 不符的類型。

eslint-plugin

如果變更符合下列情形,則 視為會造成外掛程式的中斷,尤其會要求使用者變更其設定檔:

  • 移除或重新命名選項。
  • 變更規則的預設選項。
  • 將規則的架構變更為更嚴格。
  • 使用先前未使用過型別資訊的規則來使用此型別資訊。
  • 移除或重新命名規則。
  • 變更任何推薦的設定檔。
  • 以在一般程式碼庫中大部分情況造成新的回報方式變更規則的預設行為。

如果變更符合下列情形,則 不應 視為會造成外掛程式的中斷:

  • 新增預設上不會移除現有功能的選項。
  • 新增規則。
  • 宣告規則已過時。
  • 新增額外的檢查至現有規則,以造成一般程式碼庫中少數至中等情況的新回報。
  • 重構規則的程式碼,以不造成額外回報的方式進行。
  • 變更規則說明或其他元資料。
  • 新增修正工具或建議修正工具。
  • 移除修正工具或建議修正工具。
  • 修正規則中的不正確行為,這可能會造成額外的回報,也可能不會。

parsertypescript-estreescope-managertypestype-utilsutils

如果變更符合下列情形,則 視為會造成這些套件的中斷:

  • 以向後不相容的方式變更 API 外觀(移除或重新命名函式、類型等)。

如果變更符合下列情形,則 不應 視為會造成這些套件的中斷:

  • 新增至 API 外觀(新增函式、類型等)。
  • 宣告 API 外觀的部分已過時。
  • 加入可選參數至函式或輸入類型屬性。
  • 加入其他屬性至輸出類型。
  • 加入說明文件 JSDoc 註解形式。

內部套件

此專案中,未包含於我們公開 API 表面(例如 `eslint-plugin-internal` 或 `website`)的所有套件在計算新套件版本時不予考慮。