<h3 dir="auto">Apache Airflow version</h3>
<p dir="auto">2.2.4 (latest released)</p>
<h3 dir="auto">What happened</h3>
<p dir="auto">After setting up alert emails using AWS SES as instructed <a href="https://airflow.apache.org/docs/apache-airflow/stable/howto/email-config.html#send-email-using-aws-ses" rel="nofollow">here</a>, I received the following error message:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Traceback (most recent call last):
  File &quot;/usr/local/lib/python3.8/site-packages/airflow/models/taskinstance.py&quot;, line 2103, in email_alert
    send_email(self.task.email, subject, html_content)
  File &quot;/usr/local/lib/python3.8/site-packages/airflow/utils/email.py&quot;, line 57, in send_email
    return backend(
TypeError: send_email() got multiple values for argument 'from_email'"><pre class="notranslate"><code class="notranslate">Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/airflow/models/taskinstance.py", line 2103, in email_alert
    send_email(self.task.email, subject, html_content)
  File "/usr/local/lib/python3.8/site-packages/airflow/utils/email.py", line 57, in send_email
    return backend(
TypeError: send_email() got multiple values for argument 'from_email'
</code></pre></div>
<h3 dir="auto">What you expected to happen</h3>
<p dir="auto">the <code class="notranslate">send_email</code> method in </p><div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/apache/airflow/blob/d94fa378305957358b910cfb1fe7cb14bc793804/airflow/providers/amazon/aws/utils/emailer.py#L25-L37">airflow/airflow/providers/amazon/aws/utils/emailer.py</a>
    </p>
    <p class="mb-0 color-fg-muted">
        Lines 25 to 37
      in
      <a data-pjax="true" class="commit-tease-sha" href="/apache/airflow/commit/d94fa378305957358b910cfb1fe7cb14bc793804">d94fa37</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L25" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="25"></td>
          <td id="LC25" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-k">def</span> <span class="pl-en">send_email</span>( </td>
        </tr>

        <tr class="border-0">
          <td id="L26" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="26"></td>
          <td id="LC26" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">from_email</span>: <span class="pl-s1">str</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L27" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="27"></td>
          <td id="LC27" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">to</span>: <span class="pl-v">Union</span>[<span class="pl-v">List</span>[<span class="pl-s1">str</span>], <span class="pl-s1">str</span>], </td>
        </tr>

        <tr class="border-0">
          <td id="L28" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="28"></td>
          <td id="LC28" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">subject</span>: <span class="pl-s1">str</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L29" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="29"></td>
          <td id="LC29" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">html_content</span>: <span class="pl-s1">str</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L30" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="30"></td>
          <td id="LC30" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">files</span>: <span class="pl-v">Optional</span>[<span class="pl-v">List</span>] <span class="pl-c1">=</span> <span class="pl-c1">None</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L31" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="31"></td>
          <td id="LC31" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">cc</span>: <span class="pl-v">Optional</span>[<span class="pl-v">Union</span>[<span class="pl-v">List</span>[<span class="pl-s1">str</span>], <span class="pl-s1">str</span>]] <span class="pl-c1">=</span> <span class="pl-c1">None</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L32" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="32"></td>
          <td id="LC32" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">bcc</span>: <span class="pl-v">Optional</span>[<span class="pl-v">Union</span>[<span class="pl-v">List</span>[<span class="pl-s1">str</span>], <span class="pl-s1">str</span>]] <span class="pl-c1">=</span> <span class="pl-c1">None</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L33" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="33"></td>
          <td id="LC33" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">mime_subtype</span>: <span class="pl-s1">str</span> <span class="pl-c1">=</span> <span class="pl-s">'mixed'</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L34" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="34"></td>
          <td id="LC34" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">mime_charset</span>: <span class="pl-s1">str</span> <span class="pl-c1">=</span> <span class="pl-s">'utf-8'</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L35" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="35"></td>
          <td id="LC35" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">conn_id</span>: <span class="pl-s1">str</span> <span class="pl-c1">=</span> <span class="pl-s">'aws_default'</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L36" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="36"></td>
          <td id="LC36" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-c1">**</span><span class="pl-s1">kwargs</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L37" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="37"></td>
          <td id="LC37" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> ) <span class="pl-c1">-&gt;</span> <span class="pl-c1">None</span>: </td>
        </tr>
    </tbody></table>
  </div>
</div>
 doesn't match the invocation of the <code class="notranslate">backend</code> method in <div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/apache/airflow/blob/ee9049c0566b2539a247687de05f9cffa008f871/airflow/utils/email.py#L57-L70">airflow/airflow/utils/email.py</a>
    </p>
    <p class="mb-0 color-fg-muted">
        Lines 57 to 70
      in
      <a data-pjax="true" class="commit-tease-sha" href="/apache/airflow/commit/ee9049c0566b2539a247687de05f9cffa008f871">ee9049c</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L57" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="57"></td>
          <td id="LC57" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-k">return</span> <span class="pl-en">backend</span>( </td>
        </tr>

        <tr class="border-0">
          <td id="L58" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="58"></td>
          <td id="LC58" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">to_comma_separated</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L59" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="59"></td>
          <td id="LC59" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">subject</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L60" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="60"></td>
          <td id="LC60" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">html_content</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L61" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="61"></td>
          <td id="LC61" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">files</span><span class="pl-c1">=</span><span class="pl-s1">files</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L62" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="62"></td>
          <td id="LC62" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">dryrun</span><span class="pl-c1">=</span><span class="pl-s1">dryrun</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L63" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="63"></td>
          <td id="LC63" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">cc</span><span class="pl-c1">=</span><span class="pl-s1">cc</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L64" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="64"></td>
          <td id="LC64" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">bcc</span><span class="pl-c1">=</span><span class="pl-s1">bcc</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L65" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="65"></td>
          <td id="LC65" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">mime_subtype</span><span class="pl-c1">=</span><span class="pl-s1">mime_subtype</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L66" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="66"></td>
          <td id="LC66" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">mime_charset</span><span class="pl-c1">=</span><span class="pl-s1">mime_charset</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L67" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="67"></td>
          <td id="LC67" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">conn_id</span><span class="pl-c1">=</span><span class="pl-s1">backend_conn_id</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L68" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="68"></td>
          <td id="LC68" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-s1">from_email</span><span class="pl-c1">=</span><span class="pl-s1">from_email</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L69" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="69"></td>
          <td id="LC69" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line">     <span class="pl-c1">**</span><span class="pl-s1">kwargs</span>, </td>
        </tr>

        <tr class="border-0">
          <td id="L70" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="70"></td>
          <td id="LC70" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> ) </td>
        </tr>
    </tbody></table>
  </div>
</div>
<p></p>
<p dir="auto">in the former (provider-amazon), the <code class="notranslate">from_email</code> is the first positional argument. However in the latter (main airflow), <code class="notranslate">from_email</code> is misplaced as a keyword argument.</p>
<h3 dir="auto">How to reproduce</h3>
<ol dir="auto">
<li>Use <code class="notranslate">Airflow 2.2.4</code> with <code class="notranslate">providers-amazon/3.0.0</code></li>
<li>Observe the log from a failed DAG</li>
</ol>
<h3 dir="auto">Operating System</h3>
<p dir="auto">Amazon Linux 2</p>
<h3 dir="auto">Versions of Apache Airflow Providers</h3>
<p dir="auto">apache-airflow-providers-amazon 3.0.0</p>
<h3 dir="auto">Deployment</h3>
<p dir="auto">Other Docker-based deployment</p>
<h3 dir="auto">Deployment details</h3>
<p dir="auto"><em>No response</em></p>
<h3 dir="auto">Anything else</h3>
<p dir="auto"><em>No response</em></p>
<h3 dir="auto">Are you willing to submit PR?</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Yes I am willing to submit a PR!</li>
</ul>
<h3 dir="auto">Code of Conduct</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I agree to follow this project's <a href="https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a></li>
</ul>
<h3 dir="auto">Description</h3>
<p dir="auto">Currently the 'minimal' version of Airflow Docker image ships with 20+ extra dependencies, which according to my understanding, are the most common used libraries. The idea of this PR to prepare another, pure Airflow image, which wouldn't have those dependencies and would only ship with core Airflow package.</p>
<p dir="auto"><a href="https://github.com/apache/airflow/blob/main/Dockerfile#L37">https://github.com/apache/airflow/blob/main/Dockerfile#L37</a></p>
<p dir="auto">Alternative solutions would be:</p>
<ul dir="auto">
<li>ship separate Airflow images per each executor type (kubernetes, dask, celery, etc.). I like this one equally to having vanilla Airflow image</li>
<li>fix the issue with dask. I don't like this idea as it's less scalable as any of packages mentioned below could yield similar issues</li>
</ul>
<h3 dir="auto">Use case/motivation</h3>
<p dir="auto">We are using official Airflow image for Airflow on our k8s cluster, which is constantly scanned for security vulnerabilities. The fact that dask is pinned to very low version is problematic for us cause there are a lot of red flags coming from this package. We do not need dask at all as we rely on KubernetesExecutor. Some of the security scanners work on docker layer level so removing/upgrading dask doesn't solve the problem.</p>
<h3 dir="auto">Related issues</h3>
<p dir="auto"><em>No response</em></p>
<h3 dir="auto">Are you willing to submit a PR?</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> Yes I am willing to submit a PR!</li>
</ul>
<h3 dir="auto">Code of Conduct</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I agree to follow this project's <a href="https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a></li>
</ul>