title: Why does MIX dependencies have a "~>" before the semantic version of the dependency?
body: <p>On <code>mix.exs</code> you can declare dependencies like:</p>
  
  <pre><code>def deps do
    [{:plug, "~&gt; 1.0"}]
  end
  </code></pre>
  
  <p>Why does it need to have "~>" instead of simply the version on the second part of the tuple.</p>
  
  <p>I have seen that if it gets the dependency from git, you can write the dependency like:</p>
  
  <pre><code>def deps do
    [{:plug, git: "git://github.com/elixir-lang/plug.git"}]
  end
  </code></pre>