Hex v0.20 发布

· 作者 Eric Meadows-Jönsson

组织管理的公共包

一年前,我们发布了组织的私有包。有了它,你可以将成员添加到你的组织并发布只有组织成员才能访问的私有包。私有包发布到一个单独的存储库(由 hex.pm 托管),确保它们与公共包分离。

现在,我们添加了通过组织管理公共包的功能。这意味着像 Plataformatec 这样的公司可以使用 Hex 组织来管理开源 Hex 包,就像组织可以管理私有包一样。它也可以用于管理多个包和多个维护者的开源项目。

当你首次发布新包时,系统会询问你是否要自己拥有它,或者是否应该由你所属的组织管理。已经发布的包可以通过运行 mix hex.owner transfer PACKAGE ORGANIZATION 转移到组织。

请注意,由组织管理的公共包不会更改其命名空间,所有公共包仍然属于同一个全局命名空间,此功能只改变了包的所有权。

对比包版本

新的 mix hex.package diff 命令在命令行中直接显示了两个包版本之间的差异。通过调用 mix hex.package diff decimal 1.6.0..1.7.0,你将看到这两个版本的差异。请参阅下面的视频,了解如何将其与 colordiffless 结合使用的示例。

Diff 对于调试和代码审计都是一个很好的工具,有关更多信息和文档,请运行 mix help hex.package

每个项目的配置

从这个版本开始,你可以在你的 mix 项目中配置 Hex。例如,如果你在自托管的私有存储库中有一些包,这可能很有用。与其让每个包的用户都设置正确的配置,不如将此配置添加到项目本身。

# mix.exs

defmodule MyApp.MixProject
  def project() do
    [
      # ...
      hex: hex()
    ]
  end

  defp hex() do
    [
      api_url: "https://hex.example.com/api"
    ]
  end
end

有关 Hex 配置的更多信息,请运行 mix help hex.config

通过运行 mix local.hex 安装最新版本的 Hex。该版本包括一些其他改进和错误修复,有关完整变更列表,请查看 发布说明