<h5 dir="auto">ISSUE TYPE</h5>
<ul dir="auto">
<li>Feature Idea</li>
</ul>
<h5 dir="auto">COMPONENT NAME</h5>
<p dir="auto">ansible-playbook</p>
<h5 dir="auto">ANSIBLE VERSION</h5>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="ansible 2.1.3.0
  config file = 
  configured module search path = Default w/o overrides"><pre class="notranslate"><code class="notranslate">ansible 2.1.3.0
  config file = 
  configured module search path = Default w/o overrides
</code></pre></div>
<h5 dir="auto">CONFIGURATION</h5>
<p dir="auto">Defaults from pip</p>
<h5 dir="auto">OS / ENVIRONMENT</h5>
<p dir="auto">N/A</p>
<h5 dir="auto">SUMMARY</h5>
<p dir="auto">When deprecated features disappear, the results of a playbook may change and yet not fail.<br>
Users would benefit from a mode in <code class="notranslate">ansible-playbook</code> where deprecated tasks would fail, so as to identify them early on.</p>
<p dir="auto">For example, in Ansible up to 2.1.x, this fake playbook should adds 4 configuration lines, but in 2.2 it would silently changes to adding a bogus line "my_config".</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="---
- hosts: bla
  vars:
    my_config:
      - &quot;vx200.configure=automagic&quot;
      - &quot;autofibulator.variation_mode=static&quot;
  tasks:
    - lineinfile:
        dest=/etc/some-critical-file
        line: &quot;{{ item }}&quot;
      with_flattened:
        - my_config
        - ['kevo=levo', 'ano=revo']"><pre class="notranslate"><code class="notranslate">---
- hosts: bla
  vars:
    my_config:
      - "vx200.configure=automagic"
      - "autofibulator.variation_mode=static"
  tasks:
    - lineinfile:
        dest=/etc/some-critical-file
        line: "{{ item }}"
      with_flattened:
        - my_config
        - ['kevo=levo', 'ano=revo']
</code></pre></div>
<h5 dir="auto">STEPS TO REPRODUCE</h5>
<p dir="auto">The default would remain to not throw errors on deprecation.</p>
<p dir="auto">Deprecation errors would be enabled/disabled through :</p>
<ul dir="auto">
<li>environment variable <code class="notranslate">ANSIBLE_ERROR_ON_DEPRECATION</code></li>
<li>configuration option <code class="notranslate">error_on_deprecation</code></li>
<li>command-line option <code class="notranslate">--error-on-deprecation</code></li>
</ul>
<h5 dir="auto">EXPECTED RESULTS</h5>
<p dir="auto">Playbooks plainly fail when they are not upgrade-proof regarding Ansible.</p>
<h5 dir="auto">ACTUAL RESULTS</h5>
<p dir="auto">Playbooks run with deprecation warnings which are non-blocking and may be difficult to spot in the output flow.</p>
<p dir="auto">Greetings!</p>
<p dir="auto">I'm using the <code class="notranslate">path</code> property in my <code class="notranslate">galaxy_roles.yml</code> file to specify where the roles should be installed. Likewise:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="
---
    - src: modX
    - path: pathX"><pre class="notranslate"><code class="notranslate">
---
    - src: modX
    - path: pathX
</code></pre></div>
<p dir="auto">Unfortunately, <code class="notranslate">modX</code> dependencies are not installed in <code class="notranslate">pathX</code> - the system default is used instead (or - in recent enough ansibles, ansible.cfg <code class="notranslate">roles_path</code> should be used here).</p>
<p dir="auto">This is inconsistent with the behavior of <code class="notranslate">ansible-galaxy install modX -p pathX</code> which will install dependencies in <code class="notranslate">pathX</code> as well.</p>
<p dir="auto">Is this a bug?</p>