[Review] SE-0175 Package Manager Revised Dependency Resolution

Hello Swift community,

The review of "SE-0175 Package Manager Revised Dependency Resolution" begins now and runs through May 9, 2017. The proposal is available here:

  https://github.com/apple/swift-evolution/blob/master/proposals/0175-package-manager-revised-dependency-resolution.md

Reviews are an important part of the Swift evolution process. All Swift Package Manager reviews should be sent to the swift-evolution and swift-build-dev mailing lists at

  https://lists.swift.org/mailman/listinfo/swift-evolution
  https://lists.swift.org/mailman/listinfo/swift-build-dev

or, if you would like to keep your feedback private, directly to the review manager. When replying, please try to keep the proposal link at the top of the message:

Proposal link:

https://github.com/apple/swift-evolution/blob/master/proposals/0175-package-manager-revised-dependency-resolution.md

Reply text

Other replies

What goes into a review?

The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of Swift. When writing your review, here are some questions you might want to answer in your review:

* What is your evaluation of the proposal?
* Is the problem being addressed significant enough to warrant a change to the Swift Package Manager?
* Does this proposal fit well with the feel and direction of Swift?
* If you have used other languages, libraries, or package managers 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?

More information about the Swift evolution process is available at

  https://github.com/apple/swift-evolution/blob/master/process.md

Thank you,

- Ankit Aggarwal

Review Manager

* What is your evaluation of the proposal?

I’m in favour of this proposal.
It solves the problems I have with the current behaviour of the swift package manager.

* Is the problem being addressed significant enough to warrant a change to the Swift Package Manager?

yes.
While the existing auto-pinning feature can be used to get reproducible dependency versions,
it has some deficiencies which make it more complicated than required for the common cases without really solving the more exotic use cases.
Package pinning vs. requiring a specific revision in Package.swift also felt like two overlapping features without a clear motivation for one versus the other.

* Does this proposal fit well with the feel and direction of Swift?

yes.
It focuses on doing one thing well without precluding other user use cases.
The new behaviour defaults does the right thing(TM) for the common use cases and is easily explained.
Especially now that we are already able to require specific versions within Package.swift, SE-0150+SE-0175 provide a nice set of orthogonal features.

* If you have used other languages, libraries, or package managers with a similar feature, how do you feel that this proposal compares to those?

Never used a package manager with this kind of dependency resolution and always wanted to have one.

* How much effort did you put into your review? A glance, a quick reading, or an in-depth study?

Took part in the discussions for SE-0145 and now read SE-0175.

···


Martin

* What is your evaluation of the proposal?
+1

* Is the problem being addressed significant enough to warrant a change to
the Swift Package Manager?
Yes, pinning was fairly confusing to reason about

* Does this proposal fit well with the feel and direction of Swift?
I think so.

* If you have used other languages, libraries, or package managers with a
similar feature, how do you feel that this proposal compares to those?
This fits in pretty well. It isn't a huge deviation.

* How much effort did you put into your review? A glance, a quick reading,
or an in-depth study?
A quick reading.

···

On Fri, May 5, 2017 at 2:55 AM, Martin Waitz via swift-evolution < swift-evolution@swift.org> wrote:

> * What is your evaluation of the proposal?

I’m in favour of this proposal.
It solves the problems I have with the current behaviour of the swift
package manager.

> * Is the problem being addressed significant enough to warrant a change
to the Swift Package Manager?

yes.
While the existing auto-pinning feature can be used to get reproducible
dependency versions,
it has some deficiencies which make it more complicated than required for
the common cases without really solving the more exotic use cases.
Package pinning vs. requiring a specific revision in Package.swift also
felt like two overlapping features without a clear motivation for one
versus the other.

> * Does this proposal fit well with the feel and direction of Swift?

yes.
It focuses on doing one thing well without precluding other user use cases.
The new behaviour defaults does the right thing(TM) for the common use
cases and is easily explained.
Especially now that we are already able to require specific versions
within Package.swift, SE-0150+SE-0175 provide a nice set of orthogonal
features.

> * If you have used other languages, libraries, or package managers with
a similar feature, how do you feel that this proposal compares to those?

Never used a package manager with this kind of dependency resolution and
always wanted to have one.

> * How much effort did you put into your review? A glance, a quick
reading, or an in-depth study?

Took part in the discussions for SE-0145 and now read SE-0175.


Martin
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution