Closed xylar closed 1 year ago
Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe
) and found it was in an excellent condition.
@conda-forge-admin, please rerender
@millsks, as promised in https://github.com/conda-forge/airflow-feedstock/issues/115#issuecomment-1684384266, I'm going to explain my process and you can decide if you want to become a maintainer.
A long time ago, I forked this repo. I have a location on my laptop where I have both the main airflow-feedstock
repo and my fork available as remotes.
In this location, I first created a branch for 2.7.0
off of main
. That was the starting point for this branch.
In another location, I downloaded and untarred the source from GitHub for both the current and the previous versions of Airflow:
wget https://github.com/apache/airflow/archive/refs/tags/2.7.0.tar.gz
wget https://github.com/apache/airflow/archive/refs/tags/2.6.3.tar.gz
tar xvf 2.7.0.tar.gz
tar xvf 2.6.3.tar.gz
(Normally, I would just look at the changes directly on GitHub but in this case there are ~1,500 files changed so that isn't practical).
I got the sha256 hash with:
sha256sum 2.7.0.tar.gz
The changes to the main package's dependencies are in setup.cfg
, so I did:
diff airflow-2.6.3/setup.cfg airflow-2.7.0/setup.cfg
The relevant changes are:
39d38
< Programming Language :: Python :: 3.7
58c57
< python_requires = ~=3.7
---
> python_requires = ~=3.8
76d74
< cached_property>=1.5.0;python_version<="3.7"
98c96
< flask-appbuilder==4.3.1
---
> flask-appbuilder==4.3.3
114c112
< jsonschema>=4.0.0
---
> jsonschema>=4.18.0
122a121,123
> # Pip can not find a version that satisfies constraints if opentelemetry-api is not pinned.
> opentelemetry-api==1.15.0
> opentelemetry-exporter-otlp
124c125
< pathspec~=0.9.0
---
> pathspec>=0.9.0
128,129c129,131
I can see that Airflow has dropped python 3.7 support, but this isn't relevant to us because conda-forge dropped 3.7 support a long time ago. I made the other changes corresponding to the dependencies in recipe/meta.yaml
in my 2.7.0
branch.
The next part is to handle the "extras" that are not providers. These are the airflow-with-*
packages produced here. The dependencies for these are in setup.py
:
diff airflow-2.6.3/setup.py airflow-2.7.0/setup.py
It's pretty easy to pick out the parts that relate to dependency changes. Here are what I noticed:
268,270c299,301
< # Click 8.1.4 breaks our mypy checks. The upper limit can be lifted when the
< # https://github.com/apache/airflow/issues/32412 issue is resolved
< "click>=8.0,<8.1.4",
---
> # click 8.1.4 and 8.1.5 generate mypy errors due to typing issue in the upstream package:
> # https://github.com/pallets/click/issues/2558
> "click>=8.0,!=8.1.4,!=8.1.5",
276,278d306
< # Without this, Sphinx goes in to a _very_ large backtrack on Python 3.7,
< # even though Sphinx 4.4.0 has this but with python_version<3.10.
< 'importlib-metadata>=4.4; python_version < "3.8"',
296c324
< "flask-appbuilder[oauth]==4.3.1",
---
> "flask-appbuilder[oauth]==4.3.3",
320c348
< otel = ["opentelemetry-api==1.15.0", "opentelemetry-exporter-otlp", "opentelemetry-exporter-prometheus"]
---
> otel = ["opentelemetry-exporter-prometheus"]
352c380
< "mypy==1.0.0",
---
> "mypy==1.2.0",
376d403
< "asynctest~=0.13",
401a429
> "pytest-mock",
Some of these relate to providers, others to documentation and others to testing. We don't need any of those. But I searched for the packages listed here and any that are in an airflow-with-*
output I updated following these diffs. In this case, it was just the flask-appbuilder
changes that are relevant.
This seems like a pretty easy update. Sometimes, there are new dependencies that aren't on conda-forge and we need to add them. Sometimes, new versions of dependencies required by airflow (or its providers) are not available and we need to help maintain the dependencies, too.
Then, I made this PR. Following the instructions in the checklist, I rerendered.
When the testing failed, I found out that the licenses needed to be updated. I put in the new list of licenses in the licenses
directory in the source code.
Fingers crossed that things work now...
Hi! This is the friendly conda-forge automerge bot!
I considered the following status checks when analyzing this PR:
Thus the PR was passing and merged! Have a great day!
Checklist
0
(if the version changed)conda-smithy
(Use the phrase code>@<space/conda-forge-admin, please rerender in a comment in this PR for automated rerendering)closes #115