title: composer update vs composer update --dev
body: <pre><code>composer --version
  Composer version 1.4.1 2017-03-10 09:29:45
  </code></pre>
  <p>and</p>
  <pre><code>Composer version 1.4.2 2017-05-17 08:17:52
  </code></pre>
  <p>As per the <a href="https://getcomposer.org/doc/03-cli.md#update" rel="nofollow noreferrer">composer documentation</a> when you run <code>composer update</code> it runs by default <code>composer update --dev</code></p>
  <pre><code>--dev: Install packages listed in require-dev (this is the default behavior).
  </code></pre>
  <p>But in my situation with this composer.json:</p>
  <pre><code>{
    &quot;minimum-stability&quot;: &quot;dev&quot;,
    &quot;require-dev&quot;: {
        &quot;vagrantin/wp-nonce&quot;: &quot;*&quot;
    },
    &quot;require&quot;: {
    }
  }
  </code></pre>
  <p>If I run <code>composer update</code> it's downloading <strong>only</strong> the corresponding package here <code>vagrantin/wp-nonce</code>.</p>
  <p>But if I run <code>composer update --dev</code> it will download <strong>all</strong> the dependencies on which this package (<code>vagrantin/wp-nonce</code>) depends on, which is the expected behavior.</p>
  <p>What i don't understand in this design is that <code>composer update --dev</code> is announced as deprecated.</p>
  <p>If someone as any clarification about this behavior it will be much appreciated.</p>
  <p><strong>EDIT</strong></p>
  <p>Here is the combinaison I identified to repro this behavior.</p>
  <p>In my brand new composer project I'm setting this <code>composer.json</code> file</p>
  <pre><code>{
   &quot;minimum-stability&quot;: &quot;dev&quot;,
   &quot;require-dev&quot;: {
     &quot;vagrantin/wp-nonce&quot;: &quot;^0.1&quot;
   },
   &quot;require&quot;: {
   }
  }
  </code></pre>
  <p>And in the package <code>vagrantin/wp-nonce</code> I'm setting this <code>composer.json</code></p>
  <pre><code>{
   &quot;name&quot;: &quot;vagrantin/wp-nonce&quot;,
   &quot;description&quot;: &quot;Playing and testing Wordpress nonces with phpunit tests&quot;,
   &quot;keywords&quot;: [&quot;wordpress&quot;, &quot;test&quot;, &quot;phpunit&quot;],
   &quot;type&quot;: &quot;library&quot;,
   &quot;license&quot;: &quot;GPLv2.0+&quot;,
   &quot;authors&quot;: [
   {
    &quot;name&quot;: &quot;Vagrantin&quot;,
    &quot;homepage&quot;: &quot;http://ll.ducorporation.com&quot;
   }
  ],
  &quot;require&quot;: {
      &quot;cyruscollier/wordpress-develop&quot; : &quot;*&quot;
  },
  &quot;require-dev&quot;: {
  },
  &quot;autoload&quot;: {
  &quot;classmap&quot;: [
    &quot;src&quot;
  ]
  }
  </code></pre>
  <p>}</p>
  <p>With this setup if i run <code>composer update</code> I download <em>only</em> &quot;wp-nonce&quot; package.
  But if i run <code>composer update --dev</code> I download &quot;wp-nonce&quot; package <strong>and all</strong> dependencies.</p>
  <p>Also in the <code>composer.json</code> of <code>vagrantin/wp-nonce</code>, if I'm setting <code>cyruscollier/wordpress-develop</code> in <code>require-dev</code> instead of <code>require</code>. I'm downloading <strong>only</strong> &quot;wp-nonce&quot; either with <code>composer update</code> or <code>composer update --dev</code>.</p>
  <p>would appreciate if someone which as a good understanding of composer could tell me if it's a normal behavior or not.</p>
  <p>Thanks !</p>