This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/airflow-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new ee0b93a Add blogpost for 1.10.10
ee0b93a is described below
commit ee0b93a22cc7ce23a4929acbd26b22997be90f76
Author: Kaxil Naik <[email protected]>
AuthorDate: Fri Apr 10 17:05:27 2020 +0100
Add blogpost for 1.10.10
---
.htaccess | 2 +-
_gen/indexes/en/blog-index.json | 2 +-
_gen/indexes/en/blog-posts.json | 2 +-
.../index.html | 213 ++++++++++++++++-----
blog/airflow-1.10.10/rbac-ui-timezone.gif | Bin 0 -> 1254553 bytes
blog/airflow-1.10.8-1.10.9/index.html | 44 ++++-
blog/index.html | 31 +++
blog/index.xml | 165 ++++++++++++++++
blog/tags/release/index.html | 33 +++-
blog/tags/release/index.xml | 167 +++++++++++++++-
index.html | 28 +--
index.xml | 165 ++++++++++++++++
sitemap.xml | 11 +-
tags/index.html | 2 +-
tags/index.xml | 2 +-
15 files changed, 796 insertions(+), 71 deletions(-)
diff --git a/.htaccess b/.htaccess
index ef3945e..b2775b8 100644
--- a/.htaccess
+++ b/.htaccess
@@ -1,4 +1,4 @@
RedirectMatch Permanent ^/((_api|_images|_modules|_sources|_static|howto)/.*)$
"https://airflow.apache.org/docs/stable/$1"
-RedirectMatch Permanent
^/((1.10.1|1.10.2|1.10.3|1.10.4|1.10.5|1.10.6|1.10.7)/.*)$
"https://airflow.apache.org/docs/$1"
+RedirectMatch Permanent
^/((1.10.1|1.10.2|1.10.3|1.10.4|1.10.5|1.10.6|1.10.7|1.10.8|1.10.9|1.10.10)/.*)$
"https://airflow.apache.org/docs/$1"
RedirectMatch Permanent
^/((api|changelog|cli|concepts|errors|faq|genindex|http-routingtable|installation|integration|kubernetes|license|lineage|macros|metrics|plugins|privacy_notice|profiling|project|py-modindex|scheduler|search|security|start|timezone|tutorial|ui)(\.html)?)$
"https://airflow.apache.org/docs/stable/$1"
Redirect Permanent /objects.inv
https://airflow.apache.org/docs/stable/objects.inv
diff --git a/_gen/indexes/en/blog-index.json b/_gen/indexes/en/blog-index.json
index 6f6611b..324f03c 100644
--- a/_gen/indexes/en/blog-index.json
+++ b/_gen/indexes/en/blog-index.json
@@ -1 +1 @@
-{"version":"2.3.8","fields":["title","description","author","content","tags","url"],"fieldVectors":[["title/It's
a \"Breeze\" to develop Apache
Airflow",[0,1.734,1,0.671,2,0.278,3,0.311,4,0.465]],["description/It's a
\"Breeze\" to develop Apache
Airflow",[2,0.299,4,0.327,5,1.221,6,0.472,7,1.221,8,0.644,9,0.644,10,0.644,11,0.472,12,0.336,13,1.221,14,0.336,15,1.221,16,0.035]],["author/It's
a \"Breeze\" to develop Apache Airflow",[11,0.655,17,0.892]],["content/It's a
\"Breeze\" to develop A [...]
\ No newline at end of file
+{"version":"2.3.8","fields":["title","description","author","content","tags","url"],"fieldVectors":[["title/It's
a \"Breeze\" to develop Apache
Airflow",[0,1.805,1,0.76,2,0.219,3,0.339,4,0.469]],["description/It's a
\"Breeze\" to develop Apache
Airflow",[2,0.236,4,0.329,5,1.268,6,0.534,7,1.268,8,0.702,9,0.534,10,0.702,11,0.534,12,0.4,13,1.268,14,0.4,15,1.268,16,0.034]],["author/It's
a \"Breeze\" to develop Apache Airflow",[11,0.76,17,0.999]],["content/It's a
\"Breeze\" to develop Apache [...]
\ No newline at end of file
diff --git a/_gen/indexes/en/blog-posts.json b/_gen/indexes/en/blog-posts.json
index 008de99..5296dd0 100644
--- a/_gen/indexes/en/blog-posts.json
+++ b/_gen/indexes/en/blog-posts.json
@@ -1 +1 @@
-[{"content":"## The story behind the Airflow Breeze tool\nInitially, we
started contributing to this fantastic open-source project [Apache Airflow]
with a team of three which then grew to five. When we kicked it off a year ago,
I realized pretty soon where the biggest bottlenecks and areas for improvement
in terms of productivity were. Even with the help of our client, who provided
us with a “homegrown” development environment it took us literally days to set
it up and learn some basics. [...]
\ No newline at end of file
+[{"content":"## The story behind the Airflow Breeze tool\nInitially, we
started contributing to this fantastic open-source project [Apache Airflow]
with a team of three which then grew to five. When we kicked it off a year ago,
I realized pretty soon where the biggest bottlenecks and areas for improvement
in terms of productivity were. Even with the help of our client, who provided
us with a “homegrown” development environment it took us literally days to set
it up and learn some basics. [...]
\ No newline at end of file
diff --git a/blog/airflow-1.10.8-1.10.9/index.html
b/blog/airflow-1.10.10/index.html
similarity index 84%
copy from blog/airflow-1.10.8-1.10.9/index.html
copy to blog/airflow-1.10.10/index.html
index 4a2e6cd..d5f2b68 100644
--- a/blog/airflow-1.10.8-1.10.9/index.html
+++ b/blog/airflow-1.10.10/index.html
@@ -29,21 +29,21 @@
<meta name="msapplication-TileImage" content="/favicons/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
-<title>Apache Airflow 1.10.8 & 1.10.9 | Apache Airflow</title><meta
property="og:title" content="Apache Airflow 1.10.8 & 1.10.9" />
-<meta property="og:description" content="We are happy to present the new
1.10.8 and 1.10.9 releases of Apache Airflow." />
+<title>Apache Airflow 1.10.10 | Apache Airflow</title><meta
property="og:title" content="Apache Airflow 1.10.10" />
+<meta property="og:description" content="We are happy to present Apache
Airflow 1.10.10" />
<meta property="og:type" content="article" />
-<meta property="og:url" content="/blog/airflow-1.10.8-1.10.9/" />
+<meta property="og:url" content="/blog/airflow-1.10.10/" />
<meta property="og:image" content="/images/feature-image.png" />
-<meta property="article:published_time" content="2020-02-23T00:00:00+00:00" />
-<meta property="article:modified_time" content="2020-02-23T22:34:43+00:00"
/><meta property="og:site_name" content="Apache Airflow" />
-<meta itemprop="name" content="Apache Airflow 1.10.8 & 1.10.9">
-<meta itemprop="description" content="We are happy to present the new 1.10.8
and 1.10.9 releases of Apache Airflow.">
+<meta property="article:published_time" content="2020-04-09T00:00:00+00:00" />
+<meta property="article:modified_time" content="2020-04-10T16:45:22+01:00"
/><meta property="og:site_name" content="Apache Airflow" />
+<meta itemprop="name" content="Apache Airflow 1.10.10">
+<meta itemprop="description" content="We are happy to present Apache Airflow
1.10.10">
-<meta itemprop="datePublished" content="2020-02-23T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2020-02-23T22:34:43+00:00" />
-<meta itemprop="wordCount" content="437">
+<meta itemprop="datePublished" content="2020-04-09T00:00:00+00:00" />
+<meta itemprop="dateModified" content="2020-04-10T16:45:22+01:00" />
+<meta itemprop="wordCount" content="883">
@@ -51,8 +51,8 @@
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="/images/feature-image.png"/>
-<meta name="twitter:title" content="Apache Airflow 1.10.8 & 1.10.9"/>
-<meta name="twitter:description" content="We are happy to present the new
1.10.8 and 1.10.9 releases of Apache Airflow."/>
+<meta name="twitter:title" content="Apache Airflow 1.10.10"/>
+<meta name="twitter:description" content="We are happy to present Apache
Airflow 1.10.10"/>
<script type="application/javascript">
@@ -80,7 +80,7 @@ if (!doNotTrack) {
crossorigin="anonymous"></script>
-<meta name="description" content="We are happy to present the new 1.10.8 and
1.10.9 releases of Apache Airflow." />
+<meta name="description" content="We are happy to present Apache Airflow
1.10.10" />
@@ -383,9 +383,9 @@ if (!doNotTrack) {
</div>
- <span class="bodytext__medium--brownish-grey">Sun, Feb 23, 2020</span>
+ <span class="bodytext__medium--brownish-grey">Thu, Apr 9, 2020</span>
</div>
- <p class="blogpost-content__metadata--title">Apache Airflow 1.10.8 &
1.10.9</p>
+ <p class="blogpost-content__metadata--title">Apache Airflow 1.10.10</p>
<div class="blogpost-content__metadata--author">
<span class="blogpost-content__metadata--author">
Kaxil Naik
@@ -429,53 +429,118 @@ if (!doNotTrack) {
</a>
</div>
- <p class="blogpost-content__metadata--description">We are happy to present
the new 1.10.8 and 1.10.9 releases of Apache Airflow.</p>
+ <p class="blogpost-content__metadata--description">We are happy to present
Apache Airflow 1.10.10</p>
</div>
<div class="markdown-content">
-<p>Airflow 1.10.8 contains 160 commits since 1.10.7 and includes 4 new
features, 42 improvements, 36 bug fixes, and several doc changes.</p>
-
-<p>We released 1.10.9 on the same day as one of the Flask dependencies
(Werkzeug) released 1.0 which broke Airflow 1.10.8.</p>
+<p>Airflow 1.10.10 contains 199 commits since 1.10.9 and includes 11 new
features, 43 improvements, 44 bug fixes, and several doc changes.</p>
<p><strong>Details</strong>:</p>
<ul>
-<li><strong>PyPI</strong>: <a
href="https://pypi.org/project/apache-airflow/1.10.9/"
target="_blank">https://pypi.org/project/apache-airflow/1.10.9/</a></li>
-<li><strong>Docs</strong>: <a href="https://airflow.apache.org/docs/1.10.9/"
target="_blank">https://airflow.apache.org/docs/1.10.9/</a></li>
-<li><strong>Changelog (1.10.8)</strong>: <a
href="http://airflow.apache.org/docs/1.10.8/changelog.html#airflow-1-10-8-2020-01-07"
target="_blank">http://airflow.apache.org/docs/1.10.8/changelog.html#airflow-1-10-8-2020-01-07</a></li>
-<li><strong>Changelog (1.10.9)</strong>: <a
href="http://airflow.apache.org/docs/1.10.9/changelog.html#airflow-1-10-9-2020-02-10"
target="_blank">http://airflow.apache.org/docs/1.10.9/changelog.html#airflow-1-10-9-2020-02-10</a></li>
+<li><strong>PyPI</strong>: <a
href="https://pypi.org/project/apache-airflow/1.10.10/"
target="_blank">https://pypi.org/project/apache-airflow/1.10.10/</a></li>
+<li><strong>Docs</strong>: <a href="https://airflow.apache.org/docs/1.10.10/"
target="_blank">https://airflow.apache.org/docs/1.10.10/</a></li>
+<li><strong>Changelog</strong>: <a
href="http://airflow.apache.org/docs/1.10.10/changelog.html"
target="_blank">http://airflow.apache.org/docs/1.10.10/changelog.html</a></li>
</ul>
<p>Some of the noteworthy new features (user-facing) are:</p>
<ul>
-<li><a href="https://github.com/apache/airflow/pull/6489" target="_blank">Add
tags to DAGs and use it for filtering in the UI (RBAC only)</a></li>
-<li><a href="http://airflow.apache.org/docs/1.10.9/executor/debug.html"
target="_blank">New Executor: DebugExecutor for Local debugging from your
IDE</a></li>
-<li><a href="https://github.com/apache/airflow/pull/7281"
target="_blank">Allow passing conf in “Add DAG Run” (Triggered
Dags) view</a></li>
-<li><a href="https://github.com/apache/airflow/pull/7038"
target="_blank">Allow dags to run for future execution dates for manually
triggered DAGs (only if <code>schedule_interval=None</code>)</a></li>
-<li><a href="https://airflow.apache.org/docs/1.10.9/configurations-ref.html"
target="_blank">Dedicated page in documentation for all configs in
airflow.cfg</a></li>
+<li><a href="https://github.com/apache/airflow/pull/8046"
target="_blank">Allow user to chose timezone to use in the RBAC UI</a></li>
+<li><a href="https://github.com/apache/airflow/pull/7832" target="_blank">Add
Production Docker image support</a></li>
+<li><a
href="http://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html"
target="_blank">Allow Retrieving Airflow Connections & Variables from
various Secrets backend</a></li>
+<li><a href="http://airflow.apache.org/docs/1.10.10/dag-serialization.html"
target="_blank">Stateless Webserver using DAG Serialization</a></li>
</ul>
-<h3 id="add-tags-to-dags-and-use-it-for-filtering-in-the-ui">Add tags to DAGs
and use it for filtering in the UI</h3>
+<h3 id="allow-user-to-chose-timezone-to-use-in-the-rbac-ui">Allow user to
chose timezone to use in the RBAC UI</h3>
+
+<p>By default the Web UI will show times in UTC. It is possible to change the
timezone shown by using the menu in the top
+ right (click on the clock to activate it):</p>
+
+<p><strong>Screenshot</strong>:
+<img src="rbac-ui-timezone.gif" alt="Allow user to chose timezone to use in
the RBAC UI" /></p>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/timezone.html#web-ui"
target="_blank">https://airflow.apache.org/docs/1.10.10/timezone.html#web-ui</a></p>
+
+<p><strong>Note</strong>: This feature is only available for the RBAC UI
(enabled using <code>rbac=True</code> in <code>[webserver]</code> section in
your <code>airflow.cfg</code>).</p>
+
+<h3 id="add-production-docker-image-support">Add Production Docker image
support</h3>
+
+<p>There are brand new production images (alpha quality) available for Airflow
1.10.10. You can pull them from the
+<a href="https://hub.docker.com/r/apache/airflow" target="_blank">Apache
Airflow Dockerhub</a> repository and start using it.</p>
+
+<p>More information about using production images can be found in <a
href="https://github.com/apache/airflow/blob/master/IMAGES.rst#using-the-images"
target="_blank">https://github.com/apache/airflow/blob/master/IMAGES.rst#using-the-images</a>.
Soon it will be updated with
+information how to use images using official helm chart.</p>
+
+<p>To pull the images you can run one of the following commands:</p>
+
+<ul>
+<li><code>docker pull apache/airflow:1.10.10-python2.7</code></li>
+<li><code>docker pull apache/airflow:1.10.10-python3.5</code></li>
+<li><code>docker pull apache/airflow:1.10.10-python3.6</code></li>
+<li><code>docker pull apache/airflow:1.10.10-python3.7</code></li>
+<li><code>docker pull apache/airflow:1.10.10</code> (uses Python 3.6)</li>
+</ul>
+
+<h3
id="allow-retrieving-airflow-connections-variables-from-various-secrets-backend">Allow
Retrieving Airflow Connections & Variables from various Secrets
backend</h3>
+
+<p>From Airflow 1.10.10, users would be able to get Airflow Variables from
Environment Variables.</p>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/concepts.html#storing-variables-in-environment-variables"
target="_blank">https://airflow.apache.org/docs/1.10.10/concepts.html#storing-variables-in-environment-variables</a></p>
-<p>In order to filter DAGs (e.g by team), you can add tags in each dag. The
filter is saved in a cookie and can be reset by the reset button.</p>
+<p>A new concept of Secrets Backend has been introduced to retrieve Airflow
Connections and Variables.</p>
-<p>For example:</p>
+<p>From Airflow 1.10.10, users can retrieve Connections & Variables using
the same syntax (no DAG code change is required),
+from a secret backend defined in <code>airflow.cfg</code>. If no backend is
defined, Airflow falls-back to Environment Variables
+and then Metadata DB.</p>
-<p>In your Dag file, pass a list of tags you want to add to DAG object:</p>
+<p>Check <a
href="https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html#configuration"
target="_blank">https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html#configuration</a>
for details on how-to
+configure Secrets backend.</p>
-<pre><code class="language-python">dag = DAG(
- dag_id='example_dag_tag',
- schedule_interval='0 0 * * *',
- tags=['example']
-)
+<p>As of 1.10.10, Airflow supports the following Secret Backends:</p>
+
+<ul>
+<li>Hashicorp Vault</li>
+<li>GCP Secrets Manager</li>
+<li>AWS Parameters Store</li>
+</ul>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html"
target="_blank">https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html</a></p>
+
+<p>Example configuration to use Hashicorp Vault as the backend:</p>
+
+<pre><code class="language-ini">[secrets]
+backend = airflow.contrib.secrets.hashicorp_vault.VaultBackend
+backend_kwargs = {"url": "http://127.0.0.1:8200",
"connections_path": "connections",
"variables_path": "variables", "mount_point":
"airflow"}
</code></pre>
-<p><strong>Screenshot</strong>:
-<img src="airflow-dag-tags.png" alt="Add filter by DAG tags" /></p>
+<h2 id="updating-guide">Updating Guide</h2>
-<p><strong>Note</strong>: This feature is only available for the RBAC UI
(enabled using <code>rbac=True</code> in <code>[webserver]</code> section in
your <code>airflow.cfg</code>).</p>
+<p>If you are updating Apache Airflow from a previous version to
<code>1.10.10</code>, please take a note of the following:</p>
+
+<ul>
+<li><p>Run <code>airflow upgradedb</code> after <code>pip install -U
apache-airflow==1.10.10</code> as <code>1.10.10</code> contains 3 database
migrations.</p></li>
+
+<li><p>If you have used <code>none_failed</code> trigger rule in your DAG,
change it to use the new <code>none_failed_or_skipped</code> trigger rule.
+As previously implemented, the actual behavior of <code>none_failed</code>
trigger rule would skip the current task if all parents of the task
+had also skipped. This was not in-line with what was documented about that
trigger rule. We have changed the implementation to match
+the documentation, hence if you need the old behavior use
<code>none_failed_or_skipped</code>.</p>
+
+<p>More details in <a href="https://github.com/apache/airflow/pull/7464"
target="_blank">https://github.com/apache/airflow/pull/7464</a>.</p></li>
+
+<li><p>Setting empty string to a Airflow Variable will now return an empty
string, it previously returned <code>None</code>.</p>
+
+<p>Example:</p>
+
+<pre><code>>> Variable.set('test_key', '')
+>> Variable.get('test_key')
+</code></pre>
+
+<p>The above code returned <code>None</code> previously, now it will return
“.</p></li>
+
+<li><p>When a task is marked as <code>success</code> by a user in Airflow UI,
function defined in <code>on_success_callback</code> will be called.</p></li>
+</ul>
<h2 id="special-note-deprecations">Special Note / Deprecations</h2>
@@ -488,7 +553,7 @@ Airflow 1.10.* would be the last series to support Python
2.</p>
<h3 id="use-airflow-rbac-ui">Use Airflow RBAC UI</h3>
-<p>Airflow 1.10.9 ships with 2 UIs, the default is non-RBAC Flask-admin based
UI and Flask-appbuilder based UI.</p>
+<p>Airflow 1.10.10 ships with 2 UIs, the default is non-RBAC Flask-admin based
UI and Flask-appbuilder based UI.</p>
<p>The Flask-AppBuilder (FAB) based UI is allows Role-based Access Control and
has more advanced features compared to
the legacy Flask-admin based UI. This UI can be enabled by setting
<code>rbac=True</code> in <code>[webserver]</code> section in your
<code>airflow.cfg</code>.</p>
@@ -496,11 +561,29 @@ the legacy Flask-admin based UI. This UI can be enabled
by setting <code>rbac=Tr
<p>Flask-admin based UI is deprecated and new features won’t be ported
to it. This UI will still be the default
for 1.10.* series but would no longer be available from Airflow 2.0</p>
+<h3 id="running-airflow-on-macos">Running Airflow on MacOS</h3>
+
+<p>Run <code>export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES</code> in your
scheduler environmentIf you are running Airflow on MacOS
+and get the following error in the Scheduler logs:</p>
+
+<pre><code>objc[1873]: +[__NSPlaceholderDate initialize] may have been in
progress in another thread when fork() was called.
+objc[1873]: +[__NSPlaceholderDate initialize] may have been in progress in
another thread when fork() was called. We cannot safely call it or ignore it in
the fork() child process. Crashing instead. Set a breakpoint on
objc_initializeAfterForkError to debug.
+</code></pre>
+
+<p>This error occurs because of added security to restrict multiprocessing
& multithreading in Mac OS High Sierra and above.</p>
+
+<h3 id="we-have-moved-to-github-issues">We have moved to Github Issues</h3>
+
+<p>The Airflow Project has moved from <a
href="https://issues.apache.org/jira/projects/AIRFLOW/issues"
target="_blank">JIRA</a> to
+<a href="https://github.com/apache/airflow/issues" target="_blank">Github</a>
for tracking issues.</p>
+
+<p>So if you find any bugs in Airflow 1.10.10 please create a Github Issue for
it.</p>
+
<h2 id="list-of-contributors">List of Contributors</h2>
-<p>According to git shortlog, the following people contributed to the 1.10.8
and 1.10.9 release. Thank you to all contributors!</p>
+<p>According to git shortlog, the following people contributed to the 1.10.10
release. Thank you to all contributors!</p>
-<p>Anita Fronczak, Ash Berlin-Taylor, BasPH, Bharat Kashyap, Bharath Palaksha,
Bhavika Tekwani, Bjorn Olsen, Brian Phillips, Cooper Gillan, Daniel Cohen,
Daniel Imberman, Daniel Standish, Gabriel Eckers, Hossein Torabi, Igor Khrol,
Jacob, Jarek Potiuk, Jay, Jiajie Zhong, Jithin Sukumar, Kamil Breguła, Kaxil
Naik, Kousuke Saruta, Mustafa Gök, Noël Bardelot, Oluwafemi Sule, Pete DeJoy,
QP Hou, Qian Yu, Robin Edwards, Ry Walker, Steven van Rossum, Tomek Urbaszek,
Xinbin Huang, Yuen-Kuei Hsu [...]
+<p>ANiteckiP, Alex Guziel, Alex Lue, Anita Fronczak, Ash Berlin-Taylor, Benji
Visser, Bhavika Tekwani, Brad Dettmer, Chris McLennon, Cooper Gillan, Daniel
Imberman, Daniel Standish, Felix Uellendall, Jarek Potiuk, Jiajie Zhong, Jithin
Sukumar, Kamil Breguła, Kaxil Naik, Kengo Seki, Kris, Kumpan Anton, Lokesh Lal,
Louis Guitton, Louis Simoneau, Luyao Yang, Noël Bardelot, Omair Khan, Philipp
Großelfinger, Ping Zhang, RasPavel, Ray, Robin Edwards, Ry Walker, Saurabh,
Sebastian Brandt, Tomek [...]
</div>
@@ -558,7 +641,7 @@ for 1.10.* series but would no longer be available from
Airflow 2.0</p>
<div class="pager">
- <a
href="/blog/experience-in-google-season-of-docs-2019-with-apache-airflow/">
+ <a href="/blog/airflow-1.10.8-1.10.9/">
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue"
>Previous</button>
@@ -580,6 +663,46 @@ for 1.10.* series but would no longer be available from
Airflow 2.0</p>
+ <div class="blog-pager">
+ <h5 class="header__xsmall--greyish-brown">Read also</h5>
+ <div class="pager">
+ <div class="list-items">
+
+ <div class="list-item list-item--wide">
+
+
+<div class="card">
+ <div class="box-event__blogpost">
+ <div class="box-event__blogpost--metadata">
+ <div class="tags-container">
+
+
+ <a class="tag" href="/blog/tags/release/">Release</a>
+
+
+ </div>
+ <span class="bodytext__medium--brownish-grey
box-event__blogpost--date">Sun, Feb 23, 2020</span>
+ </div>
+ <p class="box-event__blogpost--header">Apache Airflow 1.10.8 &
1.10.9</p>
+ <p class="box-event__blogpost--author">Kaxil Naik</p>
+ <p class="box-event__blogpost--description">We are happy to present
the new 1.10.8 and 1.10.9 releases of Apache Airflow.</p>
+ <div class="mt-auto">
+ <a href="/blog/airflow-1.10.8-1.10.9/">
+
+
+<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" >Read
more</button>
+
+ </a>
+ </div>
+ </div>
+</div>
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
</div>
@@ -588,7 +711,7 @@ for 1.10.* series but would no longer be available from
Airflow 2.0</p>
<div class="base-layout--button">
- <a
href=https://github.com/apache/airflow-site/edit/master/landing-pages/site/content/en/blog/airflow-1.10.8-1.10.9/index.md>
+ <a
href=https://github.com/apache/airflow-site/edit/master/landing-pages/site/content/en/blog/airflow-1.10.10/index.md>
diff --git a/blog/airflow-1.10.10/rbac-ui-timezone.gif
b/blog/airflow-1.10.10/rbac-ui-timezone.gif
new file mode 100644
index 0000000..ea28156
Binary files /dev/null and b/blog/airflow-1.10.10/rbac-ui-timezone.gif differ
diff --git a/blog/airflow-1.10.8-1.10.9/index.html
b/blog/airflow-1.10.8-1.10.9/index.html
index 4a2e6cd..4c23bde 100644
--- a/blog/airflow-1.10.8-1.10.9/index.html
+++ b/blog/airflow-1.10.8-1.10.9/index.html
@@ -564,10 +564,10 @@ for 1.10.* series but would no longer be available from
Airflow 2.0</p>
<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue"
>Previous</button>
</a>
- <a >
+ <a href="/blog/airflow-1.10.10/">
-<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue"
disabled>Next</button>
+<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue"
>Next</button>
</a>
</div>
@@ -580,6 +580,46 @@ for 1.10.* series but would no longer be available from
Airflow 2.0</p>
+ <div class="blog-pager">
+ <h5 class="header__xsmall--greyish-brown">Read also</h5>
+ <div class="pager">
+ <div class="list-items">
+
+ <div class="list-item list-item--wide">
+
+
+<div class="card">
+ <div class="box-event__blogpost">
+ <div class="box-event__blogpost--metadata">
+ <div class="tags-container">
+
+
+ <a class="tag" href="/blog/tags/release/">Release</a>
+
+
+ </div>
+ <span class="bodytext__medium--brownish-grey
box-event__blogpost--date">Thu, Apr 9, 2020</span>
+ </div>
+ <p class="box-event__blogpost--header">Apache Airflow 1.10.10</p>
+ <p class="box-event__blogpost--author">Kaxil Naik</p>
+ <p class="box-event__blogpost--description">We are happy to present
Apache Airflow 1.10.10</p>
+ <div class="mt-auto">
+ <a href="/blog/airflow-1.10.10/">
+
+
+<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" >Read
more</button>
+
+ </a>
+ </div>
+ </div>
+</div>
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
</div>
diff --git a/blog/index.html b/blog/index.html
index 6206024..c21e635 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -428,6 +428,37 @@ if (!doNotTrack) {
</div>
+ <span class="bodytext__medium--brownish-grey
box-event__blogpost--date">Thu, Apr 9, 2020</span>
+ </div>
+ <p class="box-event__blogpost--header">Apache Airflow 1.10.10</p>
+ <p class="box-event__blogpost--author">Kaxil Naik</p>
+ <p class="box-event__blogpost--description">We are happy to present
Apache Airflow 1.10.10</p>
+ <div class="mt-auto">
+ <a href="/blog/airflow-1.10.10/">
+
+
+<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" >Read
more</button>
+
+ </a>
+ </div>
+ </div>
+</div>
+
+ </div>
+
+ <div class="list-item list-item--wide">
+
+
+<div class="card">
+ <div class="box-event__blogpost">
+ <div class="box-event__blogpost--metadata">
+ <div class="tags-container">
+
+
+ <a class="tag" href="/blog/tags/release/">Release</a>
+
+
+ </div>
<span class="bodytext__medium--brownish-grey
box-event__blogpost--date">Sun, Feb 23, 2020</span>
</div>
<p class="box-event__blogpost--header">Apache Airflow 1.10.8 &
1.10.9</p>
diff --git a/blog/index.xml b/blog/index.xml
index bc7adc0..55dc4bf 100644
--- a/blog/index.xml
+++ b/blog/index.xml
@@ -14,6 +14,171 @@
<item>
+ <title>Blog: Apache Airflow 1.10.10</title>
+ <link>/blog/airflow-1.10.10/</link>
+ <pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate>
+
+ <guid>/blog/airflow-1.10.10/</guid>
+ <description>
+
+
+
+
+<p>Airflow 1.10.10 contains 199 commits since 1.10.9 and includes 11 new
features, 43 improvements, 44 bug fixes, and several doc changes.</p>
+
+<p><strong>Details</strong>:</p>
+
+<ul>
+<li><strong>PyPI</strong>: <a
href="https://pypi.org/project/apache-airflow/1.10.10/"
target="_blank">https://pypi.org/project/apache-airflow/1.10.10/</a></li>
+<li><strong>Docs</strong>: <a
href="https://airflow.apache.org/docs/1.10.10/"
target="_blank">https://airflow.apache.org/docs/1.10.10/</a></li>
+<li><strong>Changelog</strong>: <a
href="http://airflow.apache.org/docs/1.10.10/changelog.html"
target="_blank">http://airflow.apache.org/docs/1.10.10/changelog.html</a></li>
+</ul>
+
+<p>Some of the noteworthy new features (user-facing) are:</p>
+
+<ul>
+<li><a href="https://github.com/apache/airflow/pull/8046"
target="_blank">Allow user to chose timezone to use in the RBAC
UI</a></li>
+<li><a href="https://github.com/apache/airflow/pull/7832"
target="_blank">Add Production Docker image
support</a></li>
+<li><a
href="http://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html"
target="_blank">Allow Retrieving Airflow Connections &amp;
Variables from various Secrets backend</a></li>
+<li><a
href="http://airflow.apache.org/docs/1.10.10/dag-serialization.html"
target="_blank">Stateless Webserver using DAG
Serialization</a></li>
+</ul>
+
+<h3
id="allow-user-to-chose-timezone-to-use-in-the-rbac-ui">Allow user
to chose timezone to use in the RBAC UI</h3>
+
+<p>By default the Web UI will show times in UTC. It is possible to
change the timezone shown by using the menu in the top
+ right (click on the clock to activate it):</p>
+
+<p><strong>Screenshot</strong>:
+<img src="rbac-ui-timezone.gif" alt="Allow user to chose
timezone to use in the RBAC UI" /></p>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/timezone.html#web-ui"
target="_blank">https://airflow.apache.org/docs/1.10.10/timezone.html#web-ui</a></p>
+
+<p><strong>Note</strong>: This feature is only available for
the RBAC UI (enabled using <code>rbac=True</code> in
<code>[webserver]</code> section in your
<code>airflow.cfg</code>).</p>
+
+<h3 id="add-production-docker-image-support">Add Production
Docker image support</h3>
+
+<p>There are brand new production images (alpha quality) available for
Airflow 1.10.10. You can pull them from the
+<a href="https://hub.docker.com/r/apache/airflow"
target="_blank">Apache Airflow Dockerhub</a> repository and
start using it.</p>
+
+<p>More information about using production images can be found in <a
href="https://github.com/apache/airflow/blob/master/IMAGES.rst#using-the-images"
target="_blank">https://github.com/apache/airflow/blob/master/IMAGES.rst#using-the-images</a>.
Soon it will be updated with
+information how to use images using official helm chart.</p>
+
+<p>To pull the images you can run one of the following
commands:</p>
+
+<ul>
+<li><code>docker pull
apache/airflow:1.10.10-python2.7</code></li>
+<li><code>docker pull
apache/airflow:1.10.10-python3.5</code></li>
+<li><code>docker pull
apache/airflow:1.10.10-python3.6</code></li>
+<li><code>docker pull
apache/airflow:1.10.10-python3.7</code></li>
+<li><code>docker pull apache/airflow:1.10.10</code> (uses
Python 3.6)</li>
+</ul>
+
+<h3
id="allow-retrieving-airflow-connections-variables-from-various-secrets-backend">Allow
Retrieving Airflow Connections &amp; Variables from various Secrets
backend</h3>
+
+<p>From Airflow 1.10.10, users would be able to get Airflow Variables
from Environment Variables.</p>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/concepts.html#storing-variables-in-environment-variables"
target="_blank">https://airflow.apache.org/docs/1.10.10/concepts.html#storing-variables-in-environment-variables</a></p>
+
+<p>A new concept of Secrets Backend has been introduced to retrieve
Airflow Connections and Variables.</p>
+
+<p>From Airflow 1.10.10, users can retrieve Connections &amp;
Variables using the same syntax (no DAG code change is required),
+from a secret backend defined in <code>airflow.cfg</code>. If no
backend is defined, Airflow falls-back to Environment Variables
+and then Metadata DB.</p>
+
+<p>Check <a
href="https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html#configuration"
target="_blank">https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html#configuration</a>
for details on how-to
+configure Secrets backend.</p>
+
+<p>As of 1.10.10, Airflow supports the following Secret
Backends:</p>
+
+<ul>
+<li>Hashicorp Vault</li>
+<li>GCP Secrets Manager</li>
+<li>AWS Parameters Store</li>
+</ul>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html"
target="_blank">https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html</a></p>
+
+<p>Example configuration to use Hashicorp Vault as the backend:</p>
+
+<pre><code class="language-ini">[secrets]
+backend = airflow.contrib.secrets.hashicorp_vault.VaultBackend
+backend_kwargs = {&quot;url&quot;:
&quot;http://127.0.0.1:8200&quot;,
&quot;connections_path&quot;: &quot;connections&quot;,
&quot;variables_path&quot;: &quot;variables&quot;,
&quot;mount_point&quot;: &quot;airflow&quot;}
+</code></pre>
+
+<h2 id="updating-guide">Updating Guide</h2>
+
+<p>If you are updating Apache Airflow from a previous version to
<code>1.10.10</code>, please take a note of the following:</p>
+
+<ul>
+<li><p>Run <code>airflow upgradedb</code> after
<code>pip install -U apache-airflow==1.10.10</code> as
<code>1.10.10</code> contains 3 database
migrations.</p></li>
+
+<li><p>If you have used <code>none_failed</code>
trigger rule in your DAG, change it to use the new
<code>none_failed_or_skipped</code> trigger rule.
+As previously implemented, the actual behavior of
<code>none_failed</code> trigger rule would skip the current task
if all parents of the task
+had also skipped. This was not in-line with what was documented about that
trigger rule. We have changed the implementation to match
+the documentation, hence if you need the old behavior use
<code>none_failed_or_skipped</code>.</p>
+
+<p>More details in <a
href="https://github.com/apache/airflow/pull/7464"
target="_blank">https://github.com/apache/airflow/pull/7464</a>.</p></li>
+
+<li><p>Setting empty string to a Airflow Variable will now return
an empty string, it previously returned <code>None</code>.</p>
+
+<p>Example:</p>
+
+<pre><code>&gt;&gt; Variable.set('test_key',
'')
+&gt;&gt; Variable.get('test_key')
+</code></pre>
+
+<p>The above code returned <code>None</code> previously, now
it will return &ldquo;.</p></li>
+
+<li><p>When a task is marked as <code>success</code>
by a user in Airflow UI, function defined in
<code>on_success_callback</code> will be
called.</p></li>
+</ul>
+
+<h2 id="special-note-deprecations">Special Note /
Deprecations</h2>
+
+<h3 id="python-2">Python 2</h3>
+
+<p>Python 2 has reached end of its life on Jan 2020. Airflow Master no
longer supports Python 2.
+Airflow 1.10.* would be the last series to support Python 2.</p>
+
+<p>We strongly recommend users to use Python &gt;= 3.6</p>
+
+<h3 id="use-airflow-rbac-ui">Use Airflow RBAC UI</h3>
+
+<p>Airflow 1.10.10 ships with 2 UIs, the default is non-RBAC Flask-admin
based UI and Flask-appbuilder based UI.</p>
+
+<p>The Flask-AppBuilder (FAB) based UI is allows Role-based Access
Control and has more advanced features compared to
+the legacy Flask-admin based UI. This UI can be enabled by setting
<code>rbac=True</code> in <code>[webserver]</code>
section in your <code>airflow.cfg</code>.</p>
+
+<p>Flask-admin based UI is deprecated and new features won&rsquo;t
be ported to it. This UI will still be the default
+for 1.10.* series but would no longer be available from Airflow 2.0</p>
+
+<h3 id="running-airflow-on-macos">Running Airflow on
MacOS</h3>
+
+<p>Run <code>export
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES</code> in your scheduler
environmentIf you are running Airflow on MacOS
+and get the following error in the Scheduler logs:</p>
+
+<pre><code>objc[1873]: +[__NSPlaceholderDate initialize] may have
been in progress in another thread when fork() was called.
+objc[1873]: +[__NSPlaceholderDate initialize] may have been in progress in
another thread when fork() was called. We cannot safely call it or ignore it in
the fork() child process. Crashing instead. Set a breakpoint on
objc_initializeAfterForkError to debug.
+</code></pre>
+
+<p>This error occurs because of added security to restrict
multiprocessing &amp; multithreading in Mac OS High Sierra and
above.</p>
+
+<h3 id="we-have-moved-to-github-issues">We have moved to Github
Issues</h3>
+
+<p>The Airflow Project has moved from <a
href="https://issues.apache.org/jira/projects/AIRFLOW/issues"
target="_blank">JIRA</a> to
+<a href="https://github.com/apache/airflow/issues"
target="_blank">Github</a> for tracking issues.</p>
+
+<p>So if you find any bugs in Airflow 1.10.10 please create a Github
Issue for it.</p>
+
+<h2 id="list-of-contributors">List of Contributors</h2>
+
+<p>According to git shortlog, the following people contributed to the
1.10.10 release. Thank you to all contributors!</p>
+
+<p>ANiteckiP, Alex Guziel, Alex Lue, Anita Fronczak, Ash Berlin-Taylor,
Benji Visser, Bhavika Tekwani, Brad Dettmer, Chris McLennon, Cooper Gillan,
Daniel Imberman, Daniel Standish, Felix Uellendall, Jarek Potiuk, Jiajie Zhong,
Jithin Sukumar, Kamil Breguła, Kaxil Naik, Kengo Seki, Kris, Kumpan Anton,
Lokesh Lal, Louis Guitton, Louis Simoneau, Luyao Yang, Noël Bardelot, Omair
Khan, Philipp Großelfinger, Ping Zhang, RasPavel, Ray, Robin Edwards, Ry
Walker, Saurabh, Sebastian Brandt, [...]
+
+ </description>
+ </item>
+
+ <item>
<title>Blog: Apache Airflow 1.10.8 & 1.10.9</title>
<link>/blog/airflow-1.10.8-1.10.9/</link>
<pubDate>Sun, 23 Feb 2020 00:00:00 +0000</pubDate>
diff --git a/blog/tags/release/index.html b/blog/tags/release/index.html
index ed46e9c..446c935 100644
--- a/blog/tags/release/index.html
+++ b/blog/tags/release/index.html
@@ -37,7 +37,7 @@
<meta property="og:image" content="/images/feature-image.png" />
-<meta property="og:updated_time" content="2020-02-23T00:00:00+00:00" /><meta
property="og:site_name" content="Apache Airflow" />
+<meta property="og:updated_time" content="2020-04-09T00:00:00+00:00" /><meta
property="og:site_name" content="Apache Airflow" />
<meta itemprop="name" content="release">
<meta itemprop="description" content="Platform created by the community to
programmatically author, schedule and monitor workflows.">
@@ -436,6 +436,37 @@ if (!doNotTrack) {
</div>
+ <span class="bodytext__medium--brownish-grey
box-event__blogpost--date">Thu, Apr 9, 2020</span>
+ </div>
+ <p class="box-event__blogpost--header">Apache Airflow 1.10.10</p>
+ <p class="box-event__blogpost--author">Kaxil Naik</p>
+ <p class="box-event__blogpost--description">We are happy to present
Apache Airflow 1.10.10</p>
+ <div class="mt-auto">
+ <a href="/blog/airflow-1.10.10/">
+
+
+<button class="btn-hollow btn-blue bodytext__medium--cerulean-blue" >Read
more</button>
+
+ </a>
+ </div>
+ </div>
+</div>
+
+ </div>
+
+ <div class="list-item list-item--wide">
+
+
+<div class="card">
+ <div class="box-event__blogpost">
+ <div class="box-event__blogpost--metadata">
+ <div class="tags-container">
+
+
+ <a class="tag" href="/blog/tags/release/">Release</a>
+
+
+ </div>
<span class="bodytext__medium--brownish-grey
box-event__blogpost--date">Sun, Feb 23, 2020</span>
</div>
<p class="box-event__blogpost--header">Apache Airflow 1.10.8 &
1.10.9</p>
diff --git a/blog/tags/release/index.xml b/blog/tags/release/index.xml
index 5b2dd8a..c9b1620 100644
--- a/blog/tags/release/index.xml
+++ b/blog/tags/release/index.xml
@@ -4,7 +4,7 @@
<link>/blog/tags/release/</link>
<description>Recent content in release on Apache Airflow</description>
<generator>Hugo -- gohugo.io</generator>
- <lastBuildDate>Sun, 23 Feb 2020 00:00:00 +0000</lastBuildDate>
+ <lastBuildDate>Thu, 09 Apr 2020 00:00:00 +0000</lastBuildDate>
<atom:link href="/blog/tags/release/index.xml" rel="self"
type="application/rss+xml" />
@@ -15,6 +15,171 @@
<item>
+ <title>Blog: Apache Airflow 1.10.10</title>
+ <link>/blog/airflow-1.10.10/</link>
+ <pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate>
+
+ <guid>/blog/airflow-1.10.10/</guid>
+ <description>
+
+
+
+
+<p>Airflow 1.10.10 contains 199 commits since 1.10.9 and includes 11 new
features, 43 improvements, 44 bug fixes, and several doc changes.</p>
+
+<p><strong>Details</strong>:</p>
+
+<ul>
+<li><strong>PyPI</strong>: <a
href="https://pypi.org/project/apache-airflow/1.10.10/"
target="_blank">https://pypi.org/project/apache-airflow/1.10.10/</a></li>
+<li><strong>Docs</strong>: <a
href="https://airflow.apache.org/docs/1.10.10/"
target="_blank">https://airflow.apache.org/docs/1.10.10/</a></li>
+<li><strong>Changelog</strong>: <a
href="http://airflow.apache.org/docs/1.10.10/changelog.html"
target="_blank">http://airflow.apache.org/docs/1.10.10/changelog.html</a></li>
+</ul>
+
+<p>Some of the noteworthy new features (user-facing) are:</p>
+
+<ul>
+<li><a href="https://github.com/apache/airflow/pull/8046"
target="_blank">Allow user to chose timezone to use in the RBAC
UI</a></li>
+<li><a href="https://github.com/apache/airflow/pull/7832"
target="_blank">Add Production Docker image
support</a></li>
+<li><a
href="http://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html"
target="_blank">Allow Retrieving Airflow Connections &amp;
Variables from various Secrets backend</a></li>
+<li><a
href="http://airflow.apache.org/docs/1.10.10/dag-serialization.html"
target="_blank">Stateless Webserver using DAG
Serialization</a></li>
+</ul>
+
+<h3
id="allow-user-to-chose-timezone-to-use-in-the-rbac-ui">Allow user
to chose timezone to use in the RBAC UI</h3>
+
+<p>By default the Web UI will show times in UTC. It is possible to
change the timezone shown by using the menu in the top
+ right (click on the clock to activate it):</p>
+
+<p><strong>Screenshot</strong>:
+<img src="rbac-ui-timezone.gif" alt="Allow user to chose
timezone to use in the RBAC UI" /></p>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/timezone.html#web-ui"
target="_blank">https://airflow.apache.org/docs/1.10.10/timezone.html#web-ui</a></p>
+
+<p><strong>Note</strong>: This feature is only available for
the RBAC UI (enabled using <code>rbac=True</code> in
<code>[webserver]</code> section in your
<code>airflow.cfg</code>).</p>
+
+<h3 id="add-production-docker-image-support">Add Production
Docker image support</h3>
+
+<p>There are brand new production images (alpha quality) available for
Airflow 1.10.10. You can pull them from the
+<a href="https://hub.docker.com/r/apache/airflow"
target="_blank">Apache Airflow Dockerhub</a> repository and
start using it.</p>
+
+<p>More information about using production images can be found in <a
href="https://github.com/apache/airflow/blob/master/IMAGES.rst#using-the-images"
target="_blank">https://github.com/apache/airflow/blob/master/IMAGES.rst#using-the-images</a>.
Soon it will be updated with
+information how to use images using official helm chart.</p>
+
+<p>To pull the images you can run one of the following
commands:</p>
+
+<ul>
+<li><code>docker pull
apache/airflow:1.10.10-python2.7</code></li>
+<li><code>docker pull
apache/airflow:1.10.10-python3.5</code></li>
+<li><code>docker pull
apache/airflow:1.10.10-python3.6</code></li>
+<li><code>docker pull
apache/airflow:1.10.10-python3.7</code></li>
+<li><code>docker pull apache/airflow:1.10.10</code> (uses
Python 3.6)</li>
+</ul>
+
+<h3
id="allow-retrieving-airflow-connections-variables-from-various-secrets-backend">Allow
Retrieving Airflow Connections &amp; Variables from various Secrets
backend</h3>
+
+<p>From Airflow 1.10.10, users would be able to get Airflow Variables
from Environment Variables.</p>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/concepts.html#storing-variables-in-environment-variables"
target="_blank">https://airflow.apache.org/docs/1.10.10/concepts.html#storing-variables-in-environment-variables</a></p>
+
+<p>A new concept of Secrets Backend has been introduced to retrieve
Airflow Connections and Variables.</p>
+
+<p>From Airflow 1.10.10, users can retrieve Connections &amp;
Variables using the same syntax (no DAG code change is required),
+from a secret backend defined in <code>airflow.cfg</code>. If no
backend is defined, Airflow falls-back to Environment Variables
+and then Metadata DB.</p>
+
+<p>Check <a
href="https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html#configuration"
target="_blank">https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html#configuration</a>
for details on how-to
+configure Secrets backend.</p>
+
+<p>As of 1.10.10, Airflow supports the following Secret
Backends:</p>
+
+<ul>
+<li>Hashicorp Vault</li>
+<li>GCP Secrets Manager</li>
+<li>AWS Parameters Store</li>
+</ul>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html"
target="_blank">https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html</a></p>
+
+<p>Example configuration to use Hashicorp Vault as the backend:</p>
+
+<pre><code class="language-ini">[secrets]
+backend = airflow.contrib.secrets.hashicorp_vault.VaultBackend
+backend_kwargs = {&quot;url&quot;:
&quot;http://127.0.0.1:8200&quot;,
&quot;connections_path&quot;: &quot;connections&quot;,
&quot;variables_path&quot;: &quot;variables&quot;,
&quot;mount_point&quot;: &quot;airflow&quot;}
+</code></pre>
+
+<h2 id="updating-guide">Updating Guide</h2>
+
+<p>If you are updating Apache Airflow from a previous version to
<code>1.10.10</code>, please take a note of the following:</p>
+
+<ul>
+<li><p>Run <code>airflow upgradedb</code> after
<code>pip install -U apache-airflow==1.10.10</code> as
<code>1.10.10</code> contains 3 database
migrations.</p></li>
+
+<li><p>If you have used <code>none_failed</code>
trigger rule in your DAG, change it to use the new
<code>none_failed_or_skipped</code> trigger rule.
+As previously implemented, the actual behavior of
<code>none_failed</code> trigger rule would skip the current task
if all parents of the task
+had also skipped. This was not in-line with what was documented about that
trigger rule. We have changed the implementation to match
+the documentation, hence if you need the old behavior use
<code>none_failed_or_skipped</code>.</p>
+
+<p>More details in <a
href="https://github.com/apache/airflow/pull/7464"
target="_blank">https://github.com/apache/airflow/pull/7464</a>.</p></li>
+
+<li><p>Setting empty string to a Airflow Variable will now return
an empty string, it previously returned <code>None</code>.</p>
+
+<p>Example:</p>
+
+<pre><code>&gt;&gt; Variable.set('test_key',
'')
+&gt;&gt; Variable.get('test_key')
+</code></pre>
+
+<p>The above code returned <code>None</code> previously, now
it will return &ldquo;.</p></li>
+
+<li><p>When a task is marked as <code>success</code>
by a user in Airflow UI, function defined in
<code>on_success_callback</code> will be
called.</p></li>
+</ul>
+
+<h2 id="special-note-deprecations">Special Note /
Deprecations</h2>
+
+<h3 id="python-2">Python 2</h3>
+
+<p>Python 2 has reached end of its life on Jan 2020. Airflow Master no
longer supports Python 2.
+Airflow 1.10.* would be the last series to support Python 2.</p>
+
+<p>We strongly recommend users to use Python &gt;= 3.6</p>
+
+<h3 id="use-airflow-rbac-ui">Use Airflow RBAC UI</h3>
+
+<p>Airflow 1.10.10 ships with 2 UIs, the default is non-RBAC Flask-admin
based UI and Flask-appbuilder based UI.</p>
+
+<p>The Flask-AppBuilder (FAB) based UI is allows Role-based Access
Control and has more advanced features compared to
+the legacy Flask-admin based UI. This UI can be enabled by setting
<code>rbac=True</code> in <code>[webserver]</code>
section in your <code>airflow.cfg</code>.</p>
+
+<p>Flask-admin based UI is deprecated and new features won&rsquo;t
be ported to it. This UI will still be the default
+for 1.10.* series but would no longer be available from Airflow 2.0</p>
+
+<h3 id="running-airflow-on-macos">Running Airflow on
MacOS</h3>
+
+<p>Run <code>export
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES</code> in your scheduler
environmentIf you are running Airflow on MacOS
+and get the following error in the Scheduler logs:</p>
+
+<pre><code>objc[1873]: +[__NSPlaceholderDate initialize] may have
been in progress in another thread when fork() was called.
+objc[1873]: +[__NSPlaceholderDate initialize] may have been in progress in
another thread when fork() was called. We cannot safely call it or ignore it in
the fork() child process. Crashing instead. Set a breakpoint on
objc_initializeAfterForkError to debug.
+</code></pre>
+
+<p>This error occurs because of added security to restrict
multiprocessing &amp; multithreading in Mac OS High Sierra and
above.</p>
+
+<h3 id="we-have-moved-to-github-issues">We have moved to Github
Issues</h3>
+
+<p>The Airflow Project has moved from <a
href="https://issues.apache.org/jira/projects/AIRFLOW/issues"
target="_blank">JIRA</a> to
+<a href="https://github.com/apache/airflow/issues"
target="_blank">Github</a> for tracking issues.</p>
+
+<p>So if you find any bugs in Airflow 1.10.10 please create a Github
Issue for it.</p>
+
+<h2 id="list-of-contributors">List of Contributors</h2>
+
+<p>According to git shortlog, the following people contributed to the
1.10.10 release. Thank you to all contributors!</p>
+
+<p>ANiteckiP, Alex Guziel, Alex Lue, Anita Fronczak, Ash Berlin-Taylor,
Benji Visser, Bhavika Tekwani, Brad Dettmer, Chris McLennon, Cooper Gillan,
Daniel Imberman, Daniel Standish, Felix Uellendall, Jarek Potiuk, Jiajie Zhong,
Jithin Sukumar, Kamil Breguła, Kaxil Naik, Kengo Seki, Kris, Kumpan Anton,
Lokesh Lal, Louis Guitton, Louis Simoneau, Luyao Yang, Noël Bardelot, Omair
Khan, Philipp Großelfinger, Ping Zhang, RasPavel, Ray, Robin Edwards, Ry
Walker, Saurabh, Sebastian Brandt, [...]
+
+ </description>
+ </item>
+
+ <item>
<title>Blog: Apache Airflow 1.10.8 & 1.10.9</title>
<link>/blog/airflow-1.10.8-1.10.9/</link>
<pubDate>Sun, 23 Feb 2020 00:00:00 +0000</pubDate>
diff --git a/index.html b/index.html
index d2169ba..6288f21 100644
--- a/index.html
+++ b/index.html
@@ -1175,7 +1175,7 @@ if (!doNotTrack) {
<div class="card">
<div class="box-event box-event__integration">
- <span class="box-event__integration--name">gRPC</span>
+ <span class="box-event__integration--name">File Transfer Protocol
(FTP)</span>
</div>
</div>
@@ -1183,12 +1183,12 @@ if (!doNotTrack) {
- <a class="list-item"
href="/docs/stable/integration.html#aws-amazon-web-services">
+ <a class="list-item"
href="/docs/stable/integration.html#software-integrations">
<div class="card">
<div class="box-event box-event__integration">
- <span class="box-event__integration--name">AWS Lambda</span>
+ <span class="box-event__integration--name">Python</span>
</div>
</div>
@@ -1201,7 +1201,7 @@ if (!doNotTrack) {
<div class="card">
<div class="box-event box-event__integration">
- <span class="box-event__integration--name">Cloud Translation</span>
+ <span class="box-event__integration--name">Cloud Vision</span>
</div>
</div>
@@ -1209,12 +1209,12 @@ if (!doNotTrack) {
- <a class="list-item"
href="/docs/stable/integration.html#software-integrations">
+ <a class="list-item"
href="/docs/stable/integration.html#asf-apache-software-foundation">
<div class="card">
<div class="box-event box-event__integration">
- <span class="box-event__integration--name">PostgresSQL</span>
+ <span class="box-event__integration--name">Hadoop Distributed File
System (HDFS)</span>
</div>
</div>
@@ -1222,12 +1222,12 @@ if (!doNotTrack) {
- <a class="list-item"
href="/docs/stable/integration.html#gcp-google-cloud-platform">
+ <a class="list-item"
href="/docs/stable/integration.html#asf-apache-software-foundation">
<div class="card">
<div class="box-event box-event__integration">
- <span class="box-event__integration--name">Cloud Data Loss Prevention
(DLP)</span>
+ <span class="box-event__integration--name">Apache Pinot</span>
</div>
</div>
@@ -1235,12 +1235,12 @@ if (!doNotTrack) {
- <a class="list-item"
href="/docs/stable/integration.html#software-integrations">
+ <a class="list-item"
href="/docs/stable/integration.html#azure-microsoft-azure">
<div class="card">
<div class="box-event box-event__integration">
- <span class="box-event__integration--name">Samba</span>
+ <span class="box-event__integration--name">Azure Data Lake
Storage</span>
</div>
</div>
@@ -1248,12 +1248,12 @@ if (!doNotTrack) {
- <a class="list-item"
href="/docs/stable/integration.html#service-integrations">
+ <a class="list-item"
href="/docs/stable/integration.html#aws-amazon-web-services">
<div class="card">
<div class="box-event box-event__integration">
- <span class="box-event__integration--name">Discord</span>
+ <span class="box-event__integration--name">Amazon Simple Notification
Service (SNS)</span>
</div>
</div>
@@ -1261,12 +1261,12 @@ if (!doNotTrack) {
- <a class="list-item"
href="/docs/stable/integration.html#software-integrations">
+ <a class="list-item"
href="/docs/stable/integration.html#gcp-google-cloud-platform">
<div class="card">
<div class="box-event box-event__integration">
- <span class="box-event__integration--name">SQLite</span>
+ <span class="box-event__integration--name">Cloud Spanner</span>
</div>
</div>
diff --git a/index.xml b/index.xml
index 8c9f926..0467730 100644
--- a/index.xml
+++ b/index.xml
@@ -13,6 +13,171 @@
<item>
+ <title>Blog: Apache Airflow 1.10.10</title>
+ <link>/blog/airflow-1.10.10/</link>
+ <pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate>
+
+ <guid>/blog/airflow-1.10.10/</guid>
+ <description>
+
+
+
+
+<p>Airflow 1.10.10 contains 199 commits since 1.10.9 and includes 11 new
features, 43 improvements, 44 bug fixes, and several doc changes.</p>
+
+<p><strong>Details</strong>:</p>
+
+<ul>
+<li><strong>PyPI</strong>: <a
href="https://pypi.org/project/apache-airflow/1.10.10/"
target="_blank">https://pypi.org/project/apache-airflow/1.10.10/</a></li>
+<li><strong>Docs</strong>: <a
href="https://airflow.apache.org/docs/1.10.10/"
target="_blank">https://airflow.apache.org/docs/1.10.10/</a></li>
+<li><strong>Changelog</strong>: <a
href="http://airflow.apache.org/docs/1.10.10/changelog.html"
target="_blank">http://airflow.apache.org/docs/1.10.10/changelog.html</a></li>
+</ul>
+
+<p>Some of the noteworthy new features (user-facing) are:</p>
+
+<ul>
+<li><a href="https://github.com/apache/airflow/pull/8046"
target="_blank">Allow user to chose timezone to use in the RBAC
UI</a></li>
+<li><a href="https://github.com/apache/airflow/pull/7832"
target="_blank">Add Production Docker image
support</a></li>
+<li><a
href="http://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html"
target="_blank">Allow Retrieving Airflow Connections &amp;
Variables from various Secrets backend</a></li>
+<li><a
href="http://airflow.apache.org/docs/1.10.10/dag-serialization.html"
target="_blank">Stateless Webserver using DAG
Serialization</a></li>
+</ul>
+
+<h3
id="allow-user-to-chose-timezone-to-use-in-the-rbac-ui">Allow user
to chose timezone to use in the RBAC UI</h3>
+
+<p>By default the Web UI will show times in UTC. It is possible to
change the timezone shown by using the menu in the top
+ right (click on the clock to activate it):</p>
+
+<p><strong>Screenshot</strong>:
+<img src="rbac-ui-timezone.gif" alt="Allow user to chose
timezone to use in the RBAC UI" /></p>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/timezone.html#web-ui"
target="_blank">https://airflow.apache.org/docs/1.10.10/timezone.html#web-ui</a></p>
+
+<p><strong>Note</strong>: This feature is only available for
the RBAC UI (enabled using <code>rbac=True</code> in
<code>[webserver]</code> section in your
<code>airflow.cfg</code>).</p>
+
+<h3 id="add-production-docker-image-support">Add Production
Docker image support</h3>
+
+<p>There are brand new production images (alpha quality) available for
Airflow 1.10.10. You can pull them from the
+<a href="https://hub.docker.com/r/apache/airflow"
target="_blank">Apache Airflow Dockerhub</a> repository and
start using it.</p>
+
+<p>More information about using production images can be found in <a
href="https://github.com/apache/airflow/blob/master/IMAGES.rst#using-the-images"
target="_blank">https://github.com/apache/airflow/blob/master/IMAGES.rst#using-the-images</a>.
Soon it will be updated with
+information how to use images using official helm chart.</p>
+
+<p>To pull the images you can run one of the following
commands:</p>
+
+<ul>
+<li><code>docker pull
apache/airflow:1.10.10-python2.7</code></li>
+<li><code>docker pull
apache/airflow:1.10.10-python3.5</code></li>
+<li><code>docker pull
apache/airflow:1.10.10-python3.6</code></li>
+<li><code>docker pull
apache/airflow:1.10.10-python3.7</code></li>
+<li><code>docker pull apache/airflow:1.10.10</code> (uses
Python 3.6)</li>
+</ul>
+
+<h3
id="allow-retrieving-airflow-connections-variables-from-various-secrets-backend">Allow
Retrieving Airflow Connections &amp; Variables from various Secrets
backend</h3>
+
+<p>From Airflow 1.10.10, users would be able to get Airflow Variables
from Environment Variables.</p>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/concepts.html#storing-variables-in-environment-variables"
target="_blank">https://airflow.apache.org/docs/1.10.10/concepts.html#storing-variables-in-environment-variables</a></p>
+
+<p>A new concept of Secrets Backend has been introduced to retrieve
Airflow Connections and Variables.</p>
+
+<p>From Airflow 1.10.10, users can retrieve Connections &amp;
Variables using the same syntax (no DAG code change is required),
+from a secret backend defined in <code>airflow.cfg</code>. If no
backend is defined, Airflow falls-back to Environment Variables
+and then Metadata DB.</p>
+
+<p>Check <a
href="https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html#configuration"
target="_blank">https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html#configuration</a>
for details on how-to
+configure Secrets backend.</p>
+
+<p>As of 1.10.10, Airflow supports the following Secret
Backends:</p>
+
+<ul>
+<li>Hashicorp Vault</li>
+<li>GCP Secrets Manager</li>
+<li>AWS Parameters Store</li>
+</ul>
+
+<p>Details: <a
href="https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html"
target="_blank">https://airflow.apache.org/docs/1.10.10/howto/use-alternative-secrets-backend.html</a></p>
+
+<p>Example configuration to use Hashicorp Vault as the backend:</p>
+
+<pre><code class="language-ini">[secrets]
+backend = airflow.contrib.secrets.hashicorp_vault.VaultBackend
+backend_kwargs = {&quot;url&quot;:
&quot;http://127.0.0.1:8200&quot;,
&quot;connections_path&quot;: &quot;connections&quot;,
&quot;variables_path&quot;: &quot;variables&quot;,
&quot;mount_point&quot;: &quot;airflow&quot;}
+</code></pre>
+
+<h2 id="updating-guide">Updating Guide</h2>
+
+<p>If you are updating Apache Airflow from a previous version to
<code>1.10.10</code>, please take a note of the following:</p>
+
+<ul>
+<li><p>Run <code>airflow upgradedb</code> after
<code>pip install -U apache-airflow==1.10.10</code> as
<code>1.10.10</code> contains 3 database
migrations.</p></li>
+
+<li><p>If you have used <code>none_failed</code>
trigger rule in your DAG, change it to use the new
<code>none_failed_or_skipped</code> trigger rule.
+As previously implemented, the actual behavior of
<code>none_failed</code> trigger rule would skip the current task
if all parents of the task
+had also skipped. This was not in-line with what was documented about that
trigger rule. We have changed the implementation to match
+the documentation, hence if you need the old behavior use
<code>none_failed_or_skipped</code>.</p>
+
+<p>More details in <a
href="https://github.com/apache/airflow/pull/7464"
target="_blank">https://github.com/apache/airflow/pull/7464</a>.</p></li>
+
+<li><p>Setting empty string to a Airflow Variable will now return
an empty string, it previously returned <code>None</code>.</p>
+
+<p>Example:</p>
+
+<pre><code>&gt;&gt; Variable.set('test_key',
'')
+&gt;&gt; Variable.get('test_key')
+</code></pre>
+
+<p>The above code returned <code>None</code> previously, now
it will return &ldquo;.</p></li>
+
+<li><p>When a task is marked as <code>success</code>
by a user in Airflow UI, function defined in
<code>on_success_callback</code> will be
called.</p></li>
+</ul>
+
+<h2 id="special-note-deprecations">Special Note /
Deprecations</h2>
+
+<h3 id="python-2">Python 2</h3>
+
+<p>Python 2 has reached end of its life on Jan 2020. Airflow Master no
longer supports Python 2.
+Airflow 1.10.* would be the last series to support Python 2.</p>
+
+<p>We strongly recommend users to use Python &gt;= 3.6</p>
+
+<h3 id="use-airflow-rbac-ui">Use Airflow RBAC UI</h3>
+
+<p>Airflow 1.10.10 ships with 2 UIs, the default is non-RBAC Flask-admin
based UI and Flask-appbuilder based UI.</p>
+
+<p>The Flask-AppBuilder (FAB) based UI is allows Role-based Access
Control and has more advanced features compared to
+the legacy Flask-admin based UI. This UI can be enabled by setting
<code>rbac=True</code> in <code>[webserver]</code>
section in your <code>airflow.cfg</code>.</p>
+
+<p>Flask-admin based UI is deprecated and new features won&rsquo;t
be ported to it. This UI will still be the default
+for 1.10.* series but would no longer be available from Airflow 2.0</p>
+
+<h3 id="running-airflow-on-macos">Running Airflow on
MacOS</h3>
+
+<p>Run <code>export
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES</code> in your scheduler
environmentIf you are running Airflow on MacOS
+and get the following error in the Scheduler logs:</p>
+
+<pre><code>objc[1873]: +[__NSPlaceholderDate initialize] may have
been in progress in another thread when fork() was called.
+objc[1873]: +[__NSPlaceholderDate initialize] may have been in progress in
another thread when fork() was called. We cannot safely call it or ignore it in
the fork() child process. Crashing instead. Set a breakpoint on
objc_initializeAfterForkError to debug.
+</code></pre>
+
+<p>This error occurs because of added security to restrict
multiprocessing &amp; multithreading in Mac OS High Sierra and
above.</p>
+
+<h3 id="we-have-moved-to-github-issues">We have moved to Github
Issues</h3>
+
+<p>The Airflow Project has moved from <a
href="https://issues.apache.org/jira/projects/AIRFLOW/issues"
target="_blank">JIRA</a> to
+<a href="https://github.com/apache/airflow/issues"
target="_blank">Github</a> for tracking issues.</p>
+
+<p>So if you find any bugs in Airflow 1.10.10 please create a Github
Issue for it.</p>
+
+<h2 id="list-of-contributors">List of Contributors</h2>
+
+<p>According to git shortlog, the following people contributed to the
1.10.10 release. Thank you to all contributors!</p>
+
+<p>ANiteckiP, Alex Guziel, Alex Lue, Anita Fronczak, Ash Berlin-Taylor,
Benji Visser, Bhavika Tekwani, Brad Dettmer, Chris McLennon, Cooper Gillan,
Daniel Imberman, Daniel Standish, Felix Uellendall, Jarek Potiuk, Jiajie Zhong,
Jithin Sukumar, Kamil Breguła, Kaxil Naik, Kengo Seki, Kris, Kumpan Anton,
Lokesh Lal, Louis Guitton, Louis Simoneau, Luyao Yang, Noël Bardelot, Omair
Khan, Philipp Großelfinger, Ping Zhang, RasPavel, Ray, Robin Edwards, Ry
Walker, Saurabh, Sebastian Brandt, [...]
+
+ </description>
+ </item>
+
+ <item>
<title>Blog: Apache Airflow 1.10.8 & 1.10.9</title>
<link>/blog/airflow-1.10.8-1.10.9/</link>
<pubDate>Sun, 23 Feb 2020 00:00:00 +0000</pubDate>
diff --git a/sitemap.xml b/sitemap.xml
index 4cd77c5..aab3516 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -83,17 +83,22 @@
</url>
<url>
- <loc>/blog/airflow-1.10.8-1.10.9/</loc>
- <lastmod>2020-02-23T22:34:43+00:00</lastmod>
+ <loc>/blog/airflow-1.10.10/</loc>
+ <lastmod>2020-04-10T16:45:22+01:00</lastmod>
</url>
<url>
<loc>/blog/tags/release/</loc>
- <lastmod>2020-02-23T22:34:43+00:00</lastmod>
+ <lastmod>2020-04-10T16:45:22+01:00</lastmod>
</url>
<url>
<loc>/tags/</loc>
+ <lastmod>2020-04-10T16:45:22+01:00</lastmod>
+ </url>
+
+ <url>
+ <loc>/blog/airflow-1.10.8-1.10.9/</loc>
<lastmod>2020-02-23T22:34:43+00:00</lastmod>
</url>
diff --git a/tags/index.html b/tags/index.html
index 5c15e9b..f99f1a7 100644
--- a/tags/index.html
+++ b/tags/index.html
@@ -37,7 +37,7 @@
<meta property="og:image" content="/images/feature-image.png" />
-<meta property="og:updated_time" content="2020-02-23T00:00:00+00:00" /><meta
property="og:site_name" content="Apache Airflow" />
+<meta property="og:updated_time" content="2020-04-09T00:00:00+00:00" /><meta
property="og:site_name" content="Apache Airflow" />
<meta itemprop="name" content="Tags">
<meta itemprop="description" content="Platform created by the community to
programmatically author, schedule and monitor workflows.">
diff --git a/tags/index.xml b/tags/index.xml
index c05c0f6..c86dde0 100644
--- a/tags/index.xml
+++ b/tags/index.xml
@@ -4,7 +4,7 @@
<link>/tags/</link>
<description>Recent content in Tags on Apache Airflow</description>
<generator>Hugo -- gohugo.io</generator>
- <lastBuildDate>Sun, 23 Feb 2020 00:00:00 +0000</lastBuildDate>
+ <lastBuildDate>Thu, 09 Apr 2020 00:00:00 +0000</lastBuildDate>
<atom:link href="/tags/index.xml" rel="self"
type="application/rss+xml" />