<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" dir="ltr">
<p style="color: rgb(0, 0, 0); font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br>
</p>
<div style="color: rgb(0, 0, 0); font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<div id="divRplyFwdMsg" dir="ltr">
<div><span style="font-family: verdana, sans-serif; font-size: 12pt;">> </span><span style="font-family: verdana, sans-serif; font-size: 12pt;">It’s normal to define your dependencies using a looser interpretation of a version, using things like “~> 1.3” implying
anything from 1.3.0 -> 1.4.0 ( here’s a cute video from Google showing the</span><a href="https://www.youtube.com/watch?v=x4ARXyovvPc" style="font-family: verdana, sans-serif; font-size: 12pt;"> use-case in CocoaPods</a><span style="font-family: verdana, sans-serif; font-size: 12pt;"> )
so you would define your dependencies pretty loosely in the manifest ( e.g. package.swift ) but </span><br>
</div>
</div>
<div>
<div dir="ltr">
<div class="gmail_default" style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif"><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">I understand that most often the manifest version is less specific; I am very specific because in my experience the
swift community is not very stable at this point. I default to strict then loosen as necessary and acceptable. Anyway, </span><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">I assume that by "looser" you don't mean loose
enough to include versions that are incompatible with the project (intentionally or by negligence, I assume this is bad).</span><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif">
<p style="font-size: 12pt; font-family: Calibri, Arial, Helvetica, sans-serif;"><span style="font-size: 12pt;"></p>
<div><br>
</div>
</span>
<p></p>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif">> then let the lock/pin file keep track of the exact resolution of those dependencies.</div>
<div class="gmail_default" style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif"><span style="font-family: Calibri, Arial, Helvetica, sans-serif;">But the pins file doesn't just "keep track" </span><span style="font-family: Calibri, Arial, Helvetica, sans-serif;">of the exact
resolution, it actually forces it. Unless you disable automatic pinning the loose specification in the manifest is basically meaningless - you have an exact version defined by the pins file. Then you need to manage two files, the manifest with some meaningless
loose range and the pins file with the actual version that is being used. Why? Why not just manage the package manifest directly? I still don't see the point.</span><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif"><br>
</div>
<div class="gmail_default" style="font-family:verdana,sans-serif"><span style="font-size: 12pt;">> </span><span style="font-size: 12pt;">This tends to make more sense when you have more than a few dependencies.</span><br>
</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div class="gmail_signature">
<div dir="ltr">I would actually think it the opposite. If I have a project with many dependencies constantly updating and changing I would want to be as strict as possible with the versions that are allowable. I believe many other people would too, this is
why the pins file exists to begin with. It allows very specific management of the versions of the dependencies in a way that the package manifest somehow (I do not yet understand this somehow) cannot.</div>
<div dir="ltr"></div>
<div dir="ltr"><br>
</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">Steven</div>
<div dir="ltr"><br>
</div>
<div dir="ltr"><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>