You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "potiuk (via GitHub)" <gi...@apache.org> on 2024/03/24 12:59:28 UTC
[PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
potiuk opened a new pull request, #38437:
URL: https://github.com/apache/airflow/pull/38437
While currently hatchling and pip nicely supports dynamic replacement of the dependencies even if they are statically defined, this is not proper according to EP 621. When property of the project is set to be dynamic, it also contains static values. It's either static or dynamic.
This is not a problem for wheel packages when installed, by any standard tool, because the wheel package has all the metadata added to wheel (and does not contain pyproject.toml) but in various cases (such as installing airflow via Github URL or from sdist, it can make a difference - depending whether the tool installing airflow will use directly pyproject.toml for optimization, or whether it will run build hooks to prepare the dependencies).
This change makes all optional dependencies dynamici - rather than bake them in the pyproject.toml, we mark them as dynamic, so that any tool that uses pyproject.toml or sdist PKG-INFO will know that it has to run build hooks to get the actual optional dependencies.
There are a few consequences of that:
* our pyproject.toml will not contain automatically generated part - which is actually good, as it caused some confusion
* all dynamic optional dependencies of ours are either present in hatch_build.py or calculated there - this is a bit new but sounds reasonable - and those dynamic dependencies are not really updated often, so thish is not an issue to maintain them there
* the pre-commits that manage the optional dependencies got a lot simpler now - a lot of code has been removed.
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!--
Thank you for contributing! Please make sure that your code changes
are covered with tests. And in case of new features or big changes
remember to adjust the documentation.
Feel free to ping committers for the review!
In case of an existing issue, reference it using one of the following:
closes: #ISSUE
related: #ISSUE
How to write a good git commit message:
http://chris.beams.io/posts/git-commit/
-->
<!-- Please keep an empty line above the dashes. -->
---
**^ Add meaningful description above**
Read the **[Pull Request Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)** for more information.
In case of fundamental code changes, an Airflow Improvement Proposal ([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals)) is needed.
In case of a new dependency, check compliance with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html#category-x).
In case of backwards incompatible changes please leave a note in a newsfragment file, named `{pr_number}.significant.rst` or `{issue_number}.significant.rst`, in [newsfragments](https://github.com/apache/airflow/tree/main/newsfragments).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "jscheffl (via GitHub)" <gi...@apache.org>.
jscheffl commented on code in PR #38437:
URL: https://github.com/apache/airflow/pull/38437#discussion_r1536887077
##########
INSTALL:
##########
@@ -128,19 +141,19 @@ You can see the list of available envs with:
This is what it shows currently:
-┏━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-┃ Name ┃ Type ┃ Features ┃ Description ┃
-┡━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
-│ default │ virtual │ devel │ Default environment with Python 3.8 for maximum compatibility │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-38 │ virtual │ │ Environment with Python 3.8. No devel installed. │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-39 │ virtual │ │ Environment with Python 3.9. No devel installed. │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-310 │ virtual │ │ Environment with Python 3.10. No devel installed. │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-311 │ virtual │ │ Environment with Python 3.11. No devel installed │
-└─────────────┴─────────┴──────────┴───────────────────────────────────────────────────────────────┘
+┏━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃ Name ┃ Type ┃ Description ┃
+┡━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
+│ default │ virtual │ Default environment with Python 3.8 for maximum compatibility │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-38 │ virtual │ Environment with Python 3.8. No devel installed. │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-39 │ virtual │ Environment with Python 3.9. No devel installed. │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-310 │ virtual │ Environment with Python 3.10. No devel installed. │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-311 │ virtual │ Environment with Python 3.11. No devel installed │
Review Comment:
airflow-312 is missing in this table if I correctly take a look?
At least I can tell it is working for me :-D
```suggestion
│ airflow-311 │ virtual │ Environment with Python 3.11. No devel installed │
├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
│ airflow-312 │ virtual │ Environment with Python 3.12. No devel installed │```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016891091
Actually looks like `pip 22.0` is the LAST one that does not support this dynamic retrieval of dependencies. So you picked really edge'y case @jscheffl. I will add this to the docs.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016854440
After some recent (and looking and old) discussions, it turns out that we need one more thing to be fully PEP-517 compliant. While hatchling allows us (for now) to dynamically modiy project attributes that are "static" in `pyproject.toml` - this is not what it is supposed to happen, because various tools might take such dependencies directly from pyproject.toml if they are not marked as dynamic (and will not run the build hook to retrieve the dynamic values for those properties).
So we either generate the requiremets/optional dependencies dynamically, or we describe it statically in pyproject.toml, but we should not combine the two cases.
Comment describing it is here: https://github.com/pypa/pip/issues/11440#issuecomment-1774064882
And I realized that after this discussion in this discussion in hatch https://github.com/pypa/hatch/issues/1331 but also this comment in uv https://github.com/astral-sh/uv/issues/2475#issuecomment-2002003895.
Seems that what we do is a hack.
While it is convenient to keep dynamic requirements and optional dependencies in `pyproject.toml`, it seems that it is non-standard and can behave differently for different ways of installing airflow (from wheel file, sdist, url - depending what different tools are doing) - for one now `pip` installs current airflow "properly" from URL, while UV uses only pyproject.toml.
This had no impact on released airflow in wheel package, because wheel keeps dependenceis in METADATA, and this is where tools are getting the dependencies.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on code in PR #38437:
URL: https://github.com/apache/airflow/pull/38437#discussion_r1536854627
##########
airflow_pre_installed_providers.txt:
##########
@@ -1,7 +1,7 @@
# List of all the providers that are pre-installed when you run `pip install apache-airflow` without extras
common.io
common.sql
-fab>=1.0.2dev0
+fab>=1.0.2dev1
Review Comment:
I needed it for UV installation.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016858378
cc: @uranusjr -> I'd appreciate your comments here, I believe now we should be **really** compliant with the PEP expectations.
I compared the generated METADATA in the .whl files and they are very similar (some duplicate entrires removed, and I also got rid of the `devel-ci` from .whl - it's not needed there at all after using `--editable` install from downloaded package in the CI Dockerfile.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk merged PR #38437:
URL: https://github.com/apache/airflow/pull/38437
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016887543
Yes. You must upgrade your `pip`. Version 22 is from 2022 and a lot of the functionality and PEPs needed have been approved and implemented later than that.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016894701
Updated documentation
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "jscheffl (via GitHub)" <gi...@apache.org>.
jscheffl commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016885982
I tried to "naively" install as described in my devenv.
1. Build local CI Image: works
2. Install via pip in local env: FAILS (see 1)
1) Details of pip install in Xubuntu 22.04 x64:
```
(.venv-breeze) jscheffl@hp860g9:~/Workspace/airflow$ python3 -m venv PATH_TO_YOUR_VENV
(.venv-breeze) jscheffl@hp860g9:~/Workspace/airflow$ source PATH_TO_YOUR_VENV/bin/activate
(PATH_TO_YOUR_VENV) (.venv-breeze) jscheffl@hp860g9:~/Workspace/airflow$ pip install -e ".[devel]"
Obtaining file:///home/jscheffl/Workspace/airflow
Installing build dependencies ... done
Checking if build backend supports build_editable ... done
Getting requirements to build editable ... done
Installing backend dependencies ... done
Preparing editable metadata (pyproject.toml) ... done
WARNING: apache-airflow 2.9.0.dev0 does not provide the extra 'devel'
Building wheels for collected packages: apache-airflow
Building editable for apache-airflow (pyproject.toml) ... done
Created wheel for apache-airflow: filename=apache_airflow-2.9.0.dev0-py3-none-any.whl size=67494 sha256=a2a230edd149efea5937bcc8f9e857ce1a65b349ce365cfb3d5da2777b491a66
Stored in directory: /tmp/pip-ephem-wheel-cache-rgbnftf3/wheels/82/15/4a/bc39417e37a8668eb5fd65e3ae91c2adaba2a1bb006639f92e
Successfully built apache-airflow
Installing collected packages: apache-airflow
Successfully installed apache-airflow-2.9.0.dev0
(PATH_TO_YOUR_VENV) (.venv-breeze) jscheffl@hp860g9:~/Workspace/airflow$ pip list
Package Version Editable project location
-------------- ---------- --------------------------------
apache-airflow 2.9.0.dev0 /home/jscheffl/Workspace/airflow
pip 22.0.2
setuptools 59.6.0
```
...seems besides the airflow package no other dependencies are installed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016887762
General advice from `pip` team is to always upgrade to newest version.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016894632
> If I run into this we should handle this explicitly. Is it possible to fail install if pip version is too old?
No. But it ONLY affects you if you want to install airflow from sources for development. It should not affect wheel installation, because generally this change does not impact the way how `METADATA` is stores in the .wheel - this happens during `hatch build` so it really affects the "builders" not "users" of the packages and local contributors.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on code in PR #38437:
URL: https://github.com/apache/airflow/pull/38437#discussion_r1536890083
##########
INSTALL:
##########
@@ -128,19 +141,19 @@ You can see the list of available envs with:
This is what it shows currently:
-┏━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-┃ Name ┃ Type ┃ Features ┃ Description ┃
-┡━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
-│ default │ virtual │ devel │ Default environment with Python 3.8 for maximum compatibility │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-38 │ virtual │ │ Environment with Python 3.8. No devel installed. │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-39 │ virtual │ │ Environment with Python 3.9. No devel installed. │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-310 │ virtual │ │ Environment with Python 3.10. No devel installed. │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-311 │ virtual │ │ Environment with Python 3.11. No devel installed │
-└─────────────┴─────────┴──────────┴───────────────────────────────────────────────────────────────┘
+┏━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃ Name ┃ Type ┃ Description ┃
+┡━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
+│ default │ virtual │ Default environment with Python 3.8 for maximum compatibility │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-38 │ virtual │ Environment with Python 3.8. No devel installed. │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-39 │ virtual │ Environment with Python 3.9. No devel installed. │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-310 │ virtual │ Environment with Python 3.10. No devel installed. │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-311 │ virtual │ Environment with Python 3.11. No devel installed │
Review Comment:
Missed it when we added 3.12 :)
##########
INSTALL:
##########
@@ -128,19 +141,19 @@ You can see the list of available envs with:
This is what it shows currently:
-┏━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-┃ Name ┃ Type ┃ Features ┃ Description ┃
-┡━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
-│ default │ virtual │ devel │ Default environment with Python 3.8 for maximum compatibility │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-38 │ virtual │ │ Environment with Python 3.8. No devel installed. │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-39 │ virtual │ │ Environment with Python 3.9. No devel installed. │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-310 │ virtual │ │ Environment with Python 3.10. No devel installed. │
-├─────────────┼─────────┼──────────┼───────────────────────────────────────────────────────────────┤
-│ airflow-311 │ virtual │ │ Environment with Python 3.11. No devel installed │
-└─────────────┴─────────┴──────────┴───────────────────────────────────────────────────────────────┘
+┏━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃ Name ┃ Type ┃ Description ┃
+┡━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
+│ default │ virtual │ Default environment with Python 3.8 for maximum compatibility │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-38 │ virtual │ Environment with Python 3.8. No devel installed. │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-39 │ virtual │ Environment with Python 3.9. No devel installed. │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-310 │ virtual │ Environment with Python 3.10. No devel installed. │
+├─────────────┼─────────┼───────────────────────────────────────────────────────────────┤
+│ airflow-311 │ virtual │ Environment with Python 3.11. No devel installed │
Review Comment:
Fixed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016913907
Ah. Now with traceback, it's clear. The old breeze expects "dependencies" property in `project` ... That's fine. This will be fixed once the PR is merged.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Turn optional-dependencies in pyproject.toml into dynamic property [airflow]
Posted by "jscheffl (via GitHub)" <gi...@apache.org>.
jscheffl commented on PR #38437:
URL: https://github.com/apache/airflow/pull/38437#issuecomment-2016892056
> Actually looks like `pip 22.0` is the LAST one that does not support this dynamic retrieval of dependencies. So you picked really edge'y case @jscheffl. I will add this to the docs.
That is why it is good to test :-D
If I run into this we should handle this explicitly. Is it possible to fail install if pip version is too old?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org