Swift 存储库子目录中的包管理器依赖项
Swift Package Manager dependency in a repository subdirectory
我在 GitHub 内的 git 存储库的子目录中有一个 Swift 包。这棵树看起来像这样:
.
├── swift-package
│ ├── Package.swift
│ └── Sources
│ └── SomeLibrary
│ └── Library.swift
└── some-other-files
我想添加 swift-package
作为对另一个项目的依赖。
但我知道 specifying a dependency 使用 Swift 包管理器的唯一方法是当包位于存储库的顶层时:
dependencies: [
.package(url: "http://github.com/Some/Repository", from: "1.2.3"),
],
我需要的是 .package(url: "http://github.com/Some/Repository, dir: "swift-package"...)
。
我无法将包移出到单独的存储库。
有没有什么方法可以使用 Swift 包管理器实现类似的功能?如果没有,我有什么选择?另外,向 Swift Package Manger 开发人员提交功能请求的最佳方式是什么?
同一个 git 存储库中不能有两个 Swift 包。 Swift Package manager defines a package 为:
Packages are Git repositories, tagged with semantic versions, containing a Package.swift file at their root. Initializing the
package created a Package.swift file, but to make it a usable package
we need to initialize a Git repository with at least one version tag.
您的选择是为您的依赖项单独 repositories/packages,或者使用一个存储库并将代码移动到单独的 modules/targets。
如果您需要提交功能,我会先在 Swift forums describing your goals and requesting feedback from the community. The code for the Swift PM is hosted in github you can always submit a pull request with a new feature. More information about the process is described here 中发起讨论。
不完全是正确的答案,但我想知道,作为一种解决方法,我们是否可以将相应的回购添加为 Git submodule,然后将包集成为 local 包从相应的子目录。但是,我们将失去通过 SPM 更新(或更改版本)包的能力。另一方面,我们仍然可以通过将 Git 子模块固定到版本标签(或 branches/commits/whatever)来控制包的版本,这应该在 Git 存储库中无论如何SPM,如果我没记错的话。
我在 GitHub 内的 git 存储库的子目录中有一个 Swift 包。这棵树看起来像这样:
.
├── swift-package
│ ├── Package.swift
│ └── Sources
│ └── SomeLibrary
│ └── Library.swift
└── some-other-files
我想添加 swift-package
作为对另一个项目的依赖。
但我知道 specifying a dependency 使用 Swift 包管理器的唯一方法是当包位于存储库的顶层时:
dependencies: [
.package(url: "http://github.com/Some/Repository", from: "1.2.3"),
],
我需要的是 .package(url: "http://github.com/Some/Repository, dir: "swift-package"...)
。
我无法将包移出到单独的存储库。
有没有什么方法可以使用 Swift 包管理器实现类似的功能?如果没有,我有什么选择?另外,向 Swift Package Manger 开发人员提交功能请求的最佳方式是什么?
同一个 git 存储库中不能有两个 Swift 包。 Swift Package manager defines a package 为:
Packages are Git repositories, tagged with semantic versions, containing a Package.swift file at their root. Initializing the package created a Package.swift file, but to make it a usable package we need to initialize a Git repository with at least one version tag.
您的选择是为您的依赖项单独 repositories/packages,或者使用一个存储库并将代码移动到单独的 modules/targets。
如果您需要提交功能,我会先在 Swift forums describing your goals and requesting feedback from the community. The code for the Swift PM is hosted in github you can always submit a pull request with a new feature. More information about the process is described here 中发起讨论。
不完全是正确的答案,但我想知道,作为一种解决方法,我们是否可以将相应的回购添加为 Git submodule,然后将包集成为 local 包从相应的子目录。但是,我们将失去通过 SPM 更新(或更改版本)包的能力。另一方面,我们仍然可以通过将 Git 子模块固定到版本标签(或 branches/commits/whatever)来控制包的版本,这应该在 Git 存储库中无论如何SPM,如果我没记错的话。