存储库子目录中的 Swift 包管理器依赖项

nak*_*nis 14 github swift swift-package-manager

我在 GitHub 内的 git 存储库的子目录中有一个 Swift 包。这棵树看起来像这样:

\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 swift-package\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Package.swift\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Sources\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 SomeLibrary\n\xe2\x94\x82           \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Library.swift\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 some-other-files\n
Run Code Online (Sandbox Code Playgroud)\n

我想添加swift-package为另一个项目的依赖项。

\n

但指定依赖关系的唯一方法是当包位于存储库的顶层时:

\n
dependencies: [\n    .package(url: "http://github.com/Some/Repository", from: "1.2.3"),\n],\n
Run Code Online (Sandbox Code Playgroud)\n

我需要的是类似的东西.package(url: "http://github.com/Some/Repository, dir: "swift-package"...)

\n

我无法将包移至单独的存储库。

\n

有没有办法使用 Swift Package Manager 来实现这样的事情?如果没有,我有什么选择?另外,向 Swift Package Manger 开发人员提交功能请求的最佳方式是什么?

\n

Chr*_*nis 10

同一个 git 存储库中不能有两个 Swift 包。Swift 包管理器将包定义为:

包是 Git 存储库,标记有语义版本,根目录下包含一个 Package.swift 文件。初始化包创建了一个 Package.swift 文件,但为了使其成为一个可用的包,我们需要使用至少一个版本标签来初始化 Git 存储库。

您的选择是为您的依赖项使用单独的存储库/包,或者使用一个存储库并将代码移动到单独的模块/目标中。

如果您需要提交一项功能,我会首先在Swift 论坛中开始讨论,描述您的目标并请求社区的反馈。Swift PM 的代码托管在github中,您可以随时提交包含新功能的拉取请求。有关该过程的更多信息将在此处描述