Daniel Duan Sent from my iPhone
On Nov 2, 2016, at 11:17 PM, Martin Waitz <[email protected]> wrote: >> Am 03.11.2016 um 03:22 schrieb Daniel Duan <[email protected]>: >> On Nov 2, 2016, at 3:46 PM, Martin Waitz via swift-evolution >> <[email protected]> wrote: >> >>>> What is your evaluation of the proposal? >>> >>> +1 for using reproducible versions of dependencies >>> -1 for the actual proposal >>> >>> My problem with this proposal is that it tries to please everybody by >>> introducing options everywhere. >>> … >>> We should just drop all these problems and design a system which works for >>> all use-cases >>> without having to manually pin dependencies. >> >> The second half of the sentence contradicts with the first half. What if I >> need to only pin some of the dependencies, have have the rest update >> automatically? > > No contradiction: > Storing versions of all dependencies and having reproducible builds is > independent from updating dependencies. Ok, agreed. > What you need is some automatic (e.g. driven by CI) system to update your > dependencies. When you say "update", I assume you mean the action of increasing version numbers of certain dependency? I don't see how CI is going to help with that. > When performing an update is the right time to select what you want to update. > Then you can also test the new set and document that you chose to update them. What kind of "documenting" are we talking about? I thought the .pins is a place record precise version of the dependency we need. > Updates should always be explicit actions, not happening randomly at checkout > time. I agree strongly that update should be explicit. Which is why running a pin command for a specific dependency *after* it's been tested is better. I'm guessing you are saying this because I mentioned dependencies that aren't pinned. If you have worked with internal frameworks that gets changed frequently with a CI running unit tests and integration tests, you'd realize that pinning it is a waste of your teams time. But there's nothing to prevent you from doing it with this proposal. > > — Martin It comes down to this: if you want automatic pinning, your build script should run the pin commands whenever you deem necessary. The converse isn't true: if you force everyone to automatically pin, then there's no way to opt-out. Whether that's desirable is not up to anyone to decide. _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
