檢視原始碼 Mix.SCM 行為 (Mix v1.16.2)
此模組提供輔助函式,並定義 Mix 使用的任何原始碼管理員 (SCM) 所需的行為。
摘要
呼叫函式
此行為函式接收 opts
的關鍵字清單,並應在 SCM 使用可用選項的情況下傳回更新的清單。例如,當開發人員指定相依項時
此行為函式在相依項可用時傳回布林值。
此行為函式檢出相依項。
接收兩個選項,如果它們參照同一個儲存庫,則必須傳回 true
。保證選項屬於同一個 SCM。
傳回布林值,表示相依項是否可以擷取,或是否應事先在檔案系統中提供。
傳回表示 SCM 的字串。這用於列印相依項,而非用於檢查,因此資訊量應簡潔且易於辨識。
傳回表示 SCM 的字串。這用於列印相依項,而非用於檢查,因此資訊量應簡潔且易於辨識。
此行為函式檢查鎖定狀態。特別是,它會檢查儲存在鎖定中的版本是否與目前所在的儲存庫相同。
傳回此依賴項可用的管理員。如果 SCM 對此依賴項有額外的資訊,可以使用此功能,否則應傳回一個空清單。
此行為函式會更新依賴項。它可能會由 deps.get
或 deps.update
呼叫。
函式
將指定的 SCM 模組新增到可用 SCM 清單中。
傳回所有可用的 SCM。會依序嘗試每個 SCM,直到找到相符的 SCM 為止。
從可用 SCM 清單中刪除指定的 SCM。
將指定的 SCM 模組新增到可用 SCM 清單的最前面。
類型
回呼
此行為函式接收 opts
的關鍵字清單,並應在 SCM 使用可用選項的情況下傳回更新的清單。例如,當開發人員指定相依項時
{:foo, "0.1.0", github: "foo/bar"}
每個已註冊的 SCM 都會被詢問是否使用此依賴項,並接收 [github: "foo/bar"]
作為引數。由於此選項對 Git SCM 有意義,因此它會傳回一個更新的選項清單,而其他 SCM 則會傳回 nil
。
此行為函式在相依項可用時傳回布林值。
此行為函式檢出相依項。
如果依賴項已鎖定,則會在 opts
中收到鎖定,並且必須在鎖定處簽出儲存庫。否則,不會提供鎖定,並且可以簽出儲存庫至最新版本。
它必須傳回目前的鎖定。
接收兩個選項,如果它們參照同一個儲存庫,則必須傳回 true
。保證選項屬於同一個 SCM。
@callback fetchable?() :: boolean()
傳回布林值,表示相依項是否可以擷取,或是否應事先在檔案系統中提供。
每次編譯父專案時,都會自動重新編譯本機依賴項(即無法擷取的依賴項)。
傳回表示 SCM 的字串。這用於列印相依項,而非用於檢查,因此資訊量應簡潔且易於辨識。
傳回表示 SCM 的字串。這用於列印相依項,而非用於檢查,因此資訊量應簡潔且易於辨識。
如果傳回 nil,表示沒有鎖定資訊可用。
@callback lock_status(opts()) :: :mismatch | :outdated | :ok
此行為函式檢查鎖定狀態。特別是,它會檢查儲存在鎖定中的版本是否與目前所在的儲存庫相同。
它可能會傳回
:mismatch
- 如果鎖定不符,我們需要簡單地移至最新的鎖定:outdated
- 儲存庫選項在鎖定中已過時,我們需要觸發完整的更新:ok
- 一切正常
鎖定是透過 opts[:lock]
傳送的,但它可能並不總是可用。在這種情況下,如果 SCM 需要鎖定,它必須傳回 :mismatch
,否則只需 :ok
。
請注意,鎖定也可能屬於另一個 SCM,因此需要進行結構檢查。結構不匹配應始終傳回 :outdated
。
傳回此依賴項可用的管理員。如果 SCM 對此依賴項有額外的資訊,可以使用此功能,否則應傳回一個空清單。
此行為函式會更新依賴項。它可能會由 deps.get
或 deps.update
呼叫。
在第一個場景中,在 opts
中收到鎖定,並且必須將儲存庫更新到鎖定。在第二個場景中,沒有給出鎖定,並且可以自由更新儲存庫。
它必須傳回目前的鎖定。