> On Dec 5, 2016, at 8:09 PM, Paul Cantrell <[email protected]> wrote:
> 
> 
>> On Dec 2, 2016, at 11:11 AM, Daniel Dunbar <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>>> On Nov 28, 2016, at 8:25 PM, Paul Cantrell via swift-evolution 
>>> <[email protected] <mailto:[email protected]>> wrote:
>>> 
>>> This version of the proposal seems acceptable to me, though I have a 
>>> nagging feel that it’s more complex than it needs to be.
>> 
>> I agree with this feeling, but am not sure how much it will matter in 
>> practice.
> 
> As I said in my review, I suspect it will confuse newcomers and lead to a few 
> much-duplicated questions on Stack Overflow, but not hurt teams whose 
> workflow is already established. One-time cost, not so bad.
> 
>>> AFAICT, the one thing this simpler model wouldn’t allow is for a team to 
>>> share pinned versions of some individual ill-behaved dependencies without 
>>> pinning all of them. If that’s the only missing behavior, my gut tells me 
>>> there’s a way to do that with less cognitive burden on SwiftPM users.
>> 
>> This is a benefit I *really* want to retain, because we continue to feel it 
>> is important for people not to overly constraint the dependency graph, and I 
>> still feel this is the right model for users to follow (pin problematic 
>> dependencies, not everything). I really want to retain the technical ability 
>> to do it, even if it is off by default.
> 
> Understood.
> 
>> If you have a concrete proposal on a better way to implement this I would 
>> love to hear it.
> 
> I chewed this over, and sketched out a variant that I thought was simpler. I 
> then realized that what I came up with is basically identical to the existing 
> proposal, except:
> 
> 1. I renamed `--enable-autopin` to `pin --new`.
> 2. It doesn’t have the convenience of new requiring `--repin` if everything 
> is already pinned.
> 
> At least I _think_ what I came up with is nearly identical. Here it is in 
> case you want to check me on that:
> 
> https://gist.github.com/pcantrell/10cf1cc2cc2d8f1b5011e0ea5f828402 
> <https://gist.github.com/pcantrell/10cf1cc2cc2d8f1b5011e0ea5f828402>
Yeah, I think this is basically equivalent (the "private pin file" is 
effectively our current local storage of what versions are cloned).

The idea of having `--all` automatically drive the boolean did occur to me, but 
seemed too magic (and we would still want a way to turn it off).

Thanks for trying, though!
 - Daniel

>> At this point, what I want to do is get this implemented and in a usable 
>> state, and then gauge how problematic this behavior difference is. If it is 
>> a source of confusion, then we should iterate to try and address it.
> 
> Agreed! This is a fine starting point.
> 
> Cheers,
> 
> Paul
> 
> 

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to