Hi Martin, > On 25 Jan 2017, at 10:40, Martin Waitz via swift-evolution > <swift-evolution@swift.org> wrote: > > Hello, > > Am 2017-01-24 19:18, schrieb Daniel Dunbar via swift-evolution: >> The review of SE-0150 “ Package Manager Support for branches" begins >> now and runs through January 31, 2017. The proposal is available here: >> https://github.com/apple/swift-evolution/blob/master/proposals/0150-package-manager-branch-support.md > >> What is your evaluation of the proposal? > > -1 > I think we should more clearly separate the contents of the manifest and the > version pins file. > I don't like to have two competing ways to do the same thing. > > The manifest file (`Packages.swift`) should contain all required dependencies > while the pins file should contain specific versions. > > If there the dependency has no released version yet that is fine! > But instead of hard-coding some version into the manifest, we should allow to > specify dependencies without any version requirement. > The concrete branch/version specification should always be stored in the > `Package.pins` file. > This way, we also don't have any problem with conflicting branch > specifications.
While this is true for most packages, some have a development model where they will always depend on a branch and never on a version. In that case, it is more semantically correct to have the branch definition in the manifest, otherwise the package would not be able to build without a pins file. This is especially true for the example from the proposal: A -> (B:master, C:master) B -> D:branch1 C -> D:branch2 Since the pins file of packages B and C would not be considered when building A, you would need to lift the pinning that is inherent to those packages up to the pins file of A. Additionally, I think the proposed errors for invalid dependencies should ensure that this will not become an issue in practice. Cheers, Boris > > >> Is the problem being addressed significant enough to warrant a change to >> Swift? > > yes. > Bootstrapping and the ability to work with unreleased dependencies are > important. > > >> Does this proposal fit well with the feel and direction of Swift? > > no. > I'd like to keep the clear separation between `Package.swift` and > `Package.pins`. > > >> If you have used other languages or libraries with a similar feature, how do >> you feel that this proposal compares to those? > > - > >> How much effort did you put into your review? A glance, a quick reading, or >> an in-depth study? > > Quick Reading. > > > -- > Martin > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution