Hex v0.21 已發佈

· 由 Wojtek Mach 發表

Hex v0.21 加入註冊自託管、diff 和相依性改良、mix hex.sponsor 任務,以及更多功能!

自我託管

Hex 隨附新的 mix hex.registry 任務,可輕鬆建置本機 Hex 註冊。請參閱新的 自我託管指南 以取得更多資訊。

Diff 和相依性

新的發行版也帶來許多進展,以更了解和管理 Mix 專案中的相依性。

mix hex.outdated 現在可輕鬆查看正在使用的版本和最新版本之間的相依性變更內容,它會輸出一個連結,顯示差異清單

$ mix hex.outdated

mix hex.outdated output

瀏覽至 https://hex.dev.org.tw/l/T16Wu 將會顯示

diff.hex.pm output

mix hex.package diff 現在可針對 mix.lock 中目前使用的版本,與任意版本進行差異比對

$ mix hex.package diff ecto 3.5.1
(...)
@@ -1,15 +1,16 @@
 defmodule Ecto.MixProject do
   use Mix.Project

-  @version "3.5.0"
+  @version "3.5.1"
(...)

現在,在非 Mix 專案外部執行時,它允許有更精簡的版本範圍規格

$ mix hex.package diff ecto 3.5.{0,1}
(...)
@@ -1,15 +1,16 @@
 defmodule Ecto.MixProject do
   use Mix.Project

-  @version "3.5.0"
+  @version "3.5.1"
(...)

感謝 @halostatue@RyanSiu1995@xinz 參與一些增強功能的開發!

贊助

Hex 現已讓您能輕易地找到帶有贊助的套件。執行下列指令,在您目前的專案中找到此類依賴項,輸出結果可能如下所示

$ mix hex.sponsor
Dependency  Sponsorship
cowboy      https://github.com/sponsors/essen
oban        https://getoban.pro

如果您要列出專案,請在您的 "Sponsor" 連結中加入 mix.exs (或 rebar.config 等)

links: %{
  "GitHub" => "https://github.com/sorentwo/oban",
  "Sponsor" => "https://getoban.pro"
}

感謝 @philss 為這項工作付出心力!

mix hex.publish --replace

首先,快速提醒您 Hex.pm 套件更新政策,節錄自 https://hex.dev.org.tw/docs/faq

Hex 資料庫是不可變的 (…)

此不可變規則有例外狀況,套件能在套件版本發行後 60 分鐘內,或在套件最初發行後 24 小時內,進行變更或取消發行。

現在,當您嘗試重新發布現有版本時,您需要明確傳送一個 --replace 標記。

值得一提的是,Hex.pm 私有套件 沒有重新發布時間限制,因此 --replace 選項在那裡特別實用。

儲存庫目前維護一個 latest 分支,表示你可以透過以下方式安裝 Hex

$ mix archive.install github hexpm/hex branch latest

當你使用 $ mix local.hex 執行預設安裝方式遇到問題(例如 HTTP 錯誤)時,這會很有用。

其他變更

Hex v0.21 帶來許多其他改善和錯誤修正,如需變更清單,請參閱 CHANGELOG。感謝所有促成這件事的貢獻者!