<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi!<br>
    <br>
    I might be a bit paranoid, but after loosing half a day due to an
    "update" to a dependency given with {branch, "master"} I have
    resorted to the following approach: I fork all the dependencies so
    that I am in control if I cannot get a proper tag from the
    dependency itself.<br>
    <br>
    This means that:<br>
    <ol>
      <li>I control when to take in new stuff.</li>
      <li>I can add my own tags to ease upgrades.</li>
      <li>If the author removes his repo I still have access to the
        source.</li>
    </ol>
    <p>The main problem is that version numbering is not so popular
      these days - what's the point when you have a sha?<br>
      Well, it harder to say intelligent things about the magnitude of a
      change from looking at the sha compared to a version number that
      follows semantic versioning (semver.org).</p>
    <p>With semantic versioning you know that a change to the major
      number will - at the very least - require serious investigation
      before you can be sure that your code with work with the updated
      dependency. And so on.<br>
    </p>
    <p>It is actually easy to do semver with git - just tag your code.<br>
      But easy is not enough to get people to do this. Unfortunately.<br>
    </p>
    <p>I am of the opinion that it becomes easier to re-use software
      that uses semver - you get some info from the version number and
      people that takes the time to do proper semver knows about
      software maintenance, which speaks volumes for their code. <br>
    </p>
    Cheers,<br>
    Torben<br>
    <br>
    On 24/4/12 21:43 , Heinz N. Gies wrote:
    <blockquote
      cite="mid:C82CC20E-7E13-42D1-B0FC-BA72EBF004E7@licenser.net"
      type="cite">
      <pre wrap="">Hi I've noticed that a lot of libraires depend on bleeding edge data I kind of find that disturbing it makes maintaining a stable environment close to impossible since one never knows


what I mean are lines like this:

{alog, ".*", {git, <a class="moz-txt-link-rfc2396E" href="https://github.com/siberian-fast-food/alogger.git">"https://github.com/siberian-fast-food/alogger.git"</a>, {branch, "master"}}}

now if the alogger people push a breaking change your application breaks when depending on it, even worst if you don't even use alogger yourself but a library you use uses it a change in alogger would break your application without you having direct influence on it :(.

So what I'd love to ask people who maintain libraries is use dependencies that have a fixed version and tag your own versions so people can do the same when using your stuff - please?

Regards,
Heinz

PS: I just choose alogger as an example since it was the first I found - I love the thing :)

--
Heinz N. Gies
<a class="moz-txt-link-abbreviated" href="mailto:heinz@licenser.net">heinz@licenser.net</a>
<a class="moz-txt-link-freetext" href="http://licenser.net">http://licenser.net</a>

_______________________________________________
erlang-questions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
<a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/torbenhoffmann">http://www.linkedin.com/in/torbenhoffmann</a></pre>
  </body>
</html>