4 weeks agoUpdate version to 2.3.2 and add release notes v2-3-stable 24066/head 2.3.2 2.3.2rc2
Ephraim Anierobi [Fri, 27 May 2022 12:40:44 +0000 (13:40 +0100)] 
Update version to 2.3.2 and add release notes

4 weeks agoRun the `check_migration` loop at least once (#24068)
Ephraim Anierobi [Wed, 1 Jun 2022 11:03:53 +0000 (12:03 +0100)] 
Run the `check_migration` loop at least once (#24068)

This is broken since 2.3.0. that's if a user specifies a migration_timeout
of 0 then no migration is run at all.

(cherry picked from commit 84d7b5ba39b3ff1fb5b856faec8fd4e731d3f397)

4 weeks agoFix grid view for mapped tasks (#24059)
Jed Cunningham [Wed, 1 Jun 2022 00:12:10 +0000 (18:12 -0600)] 
Fix grid view for mapped tasks (#24059)

(cherry picked from commit 6e96f04eb515149f185448b8dfb84813c5879fc0)

4 weeks agoRe-add --force-build flag (#24061)
Jarek Potiuk [Tue, 31 May 2022 23:55:31 +0000 (01:55 +0200)] 
Re-add --force-build flag (#24061)

After #24052 we also need to add --force-build flag as for
Python 3.7 rebuilding CI cache would have been silently ignored as
no image building would be needed

(cherry picked from commit 5005ff2735b0bb80dc913f2070d3a507156a9394)

4 weeks agoShaves-off about 3 minutes from usage of ARM instances on CI (#24052)
Jarek Potiuk [Tue, 31 May 2022 15:37:50 +0000 (17:37 +0200)] 
Shaves-off about 3 minutes from usage of ARM instances on CI (#24052)

Preparing airflow packages and provider packages does not
need to be done on ARM and actually the ARM instance is idle
while they are prepared during cache building.

This change moves preparation of the packages to before
the ARM instance is started which saves about 3 minutes of ARM
instance time.

(cherry picked from commit 8804b1a94132eab5148e59c8589d1f28ea89c4ab)

4 weeks agoUpgrade to pip 22.1.2 (#24043)
Jarek Potiuk [Tue, 31 May 2022 14:49:47 +0000 (16:49 +0200)] 
Upgrade to pip 22.1.2 (#24043)

Pip has been upgraded to version 22.1.2 12 minutes ago. Time to
catch up.

(cherry picked from commit 2247b6d43c81b345ab465c7cd2e97a3ab20b117a)

4 weeks agoIncrease size of ARM build instance (#24036)
Jarek Potiuk [Tue, 31 May 2022 08:15:03 +0000 (10:15 +0200)] 
Increase size of ARM build instance (#24036)

Our ARM cache builds started to hang recently at yarn prod step.
The most likely reason are limited resources we had for the ARM
instance to run the docker build - it was rather small instance
with 2GB RAM and it is likely not nearly enought to cope with
recent changes related to Grid View where we likely need much
more memory during the yarn build step.

This change increases the instance memory to 8 GB (c6g.xlarge).
Also this instance type gives 70% cost saving and has very low
probability of being evicted (it's not in high demand in Ohio
Region of AWS.

Also the AMI used is refreshed with latest software (docker)

(cherry picked from commit b55e4c3e2ac5bf3c7ea9f467447fa1c661da936d)

4 weeks agoAdd foldable groups in CI outputs in commands that need it (#24035)
Jarek Potiuk [Tue, 31 May 2022 07:41:18 +0000 (09:41 +0200)] 
Add foldable groups in CI outputs in commands that need it (#24035)

This is follow-up after #24026 which added capability of selectively
deciding for each breeze command, whether the output of the command
should be "foldable" group. All CI output has been reviewed, and
the commands which "need" it were identified.

This also fixes a problem introduced there - that the command itself
was not "foldable" group itself.

(cherry picked from commit 2551acb692f2e5cae91808a907a75db404eb79be)

4 weeks agoAdds foldable CI group for command output (#24026)
Jarek Potiuk [Tue, 31 May 2022 02:14:59 +0000 (04:14 +0200)] 
Adds foldable CI group for command output (#24026)

(cherry picked from commit d135ffc8e1c862385ef69047528646173abd0f00)

4 weeks agoPreparing buildx cache is allowed without --push-image flag (#24028)
Jarek Potiuk [Mon, 30 May 2022 15:09:35 +0000 (17:09 +0200)] 
Preparing buildx cache is allowed without --push-image flag (#24028)

The previous version of buildx cache preparation implied --push-image
flag, but now this is completely separated (we do not push image,
we just prepare cache), so when mutli-platform buildx preparation is
run we should also allow the cache to run without --push-image flag.

(cherry picked from commit 8f3a9b8542346c35712cba373baaafb518503562)

4 weeks agoOnly run separate per-platform build when preparing build cache (#24023)
Jarek Potiuk [Mon, 30 May 2022 13:38:01 +0000 (15:38 +0200)] 
Only run separate per-platform build when preparing build cache (#24023)

Apparently pushing multi-platform images when building cache on CI
has some problems recently, connected with being more
vulnerable to race condition described in this issue:

Apparently when two, different platform layers are pushed about
the same time to, the error
"cannot reuse body, request must be retried" is generated.

However we actually do not even need to build the multiplatform
latest images because as of recently we have separate cache for each
platform, and the images are not used any more
not even for docker builds. We we always build images rather than
pull and we use --from-cache for that - specific per platform. The only
image pulling we do is when we pull the :COMMIT_HASH images in CI- but
those are single-platform images (amd64) and even if we add tests for
arm, they will have different tag.

Hopefully we can still build release images without causing the
race condition too frequently - this is more likely because when
we build images for cache we use machines with different performance
characteristics and the same layers are pushed at different times
from different platforms.

(cherry picked from commit 5d05fcd11367753ec859e860f5fdf0cc7e86db1f)

4 weeks agoEnsure @contextmanager decorates generator func (#23103)
Tzu-ping Chung [Mon, 30 May 2022 07:24:08 +0000 (03:24 -0400)] 
Ensure @contextmanager decorates generator func (#23103)

(cherry picked from commit e58985598f202395098e15b686aec33645a906ff)

4 weeks agoAdd better diagnostics capabilities for pre-commits run via CI image (#23980)
Jarek Potiuk [Sun, 29 May 2022 08:33:40 +0000 (10:33 +0200)] 
Add better diagnostics capabilities for pre-commits run via CI image (#23980)

The pre-commits that require CI image run docker command under
the hood that is highly optimized for performance (only mounts
files that are necessary to be mounted) - in order to improve
performance on Mac OS and make sure that artifacts are not left
in the source code of Airflow.

However that makes the command slightly more difficult to debug
because they generate dynamically the docker command used,
including the volumens that should be mounted when the docker
command is run.

This PR adds better diagnostics to the pre-commit scripts
allowing VERBOSE="true" and DRY_RUN="true" variables that can
help with diagnosing problems such as running the scripts on

It also fixes a few documentation bugs that have been missed
after changing names of the image-related static checks and
thanks to separating the common code to utility function
it allows to set SKIP_IMAGE_PRE_COMMITS variable to true
which will skip running all pre-commit checks that require
breeze image to be available locally.

(cherry picked from commit 5af83ce736b92f651f75d5d00c2043be59ab91f5)

4 weeks agoUpdate version to 2.3.2 and add release notes 23966/head 2.3.2rc1
Ephraim Anierobi [Fri, 27 May 2022 12:40:44 +0000 (13:40 +0100)] 
Update version to 2.3.2 and add release notes

4 weeks agoMake --file command in static-checks autocomplete file name (#23896)
Jarek Potiuk [Wed, 25 May 2022 07:54:53 +0000 (08:54 +0100)] 
Make --file command in static-checks autocomplete file name (#23896)

The --verbose and --dry-dun commands caused n --files command to fail
and the flag was "artifficial" -it was equivalent to bool flag.
the actual files were taken  from arguments.

This PR fixes it by turning the arguments into multiple ``--file``
commands  - each with its own completioin for local files.

(cherry picked from commit 1d53bec0618c042de5cd05801b0c1fe015e6b4f8)

4 weeks agoRevert "Add limit for JPype1 (#23847)" (#23953)
Jarek Potiuk [Fri, 27 May 2022 03:12:50 +0000 (05:12 +0200)] 
Revert "Add limit for JPype1 (#23847)" (#23953)

This turned out to be mistake in manual submission. Fixed
on JPype1 side.

This reverts commit 3699be49b24ef5a0a8d8de81a149af2c5a7dc206.

(cherry picked from commit 45b5cf004b55f68dcf16dc76e97db893afef76ba)

4 weeks agoRemove pinning for xmltodict (#23992)
Jarek Potiuk [Sat, 28 May 2022 21:58:59 +0000 (23:58 +0200)] 
Remove pinning for xmltodict (#23992)

We have now moto 3.1.9+ in constraints so we should remove the limit.

Fixes: #23576
(cherry picked from commit eec85d397ef0ecbbe5fd679cf5790adae2ad9c9f)

4 weeks agoReplace generation of docker volumes to be done from python (#23985)
Jarek Potiuk [Sat, 28 May 2022 15:19:14 +0000 (17:19 +0200)] 
Replace generation of docker volumes to be done from python (#23985)

The pre-commit to generate docker volumes in docker compose
file is now written in Python and it also uses the newer "volume:"
syntax to define the volumes mounted in the docker-compose.

(cherry picked from commit 882535a8a2699af7d1d079ecebd8c31aa7fbaba9)

4 weeks agoFix breeze failures when there is no buildx installed on Mac (#23988)
Jarek Potiuk [Sat, 28 May 2022 14:41:12 +0000 (16:41 +0200)] 
Fix breeze failures when there is no buildx installed on Mac (#23988)

If you have no buildx plugin installed on Mac (for example when
you use colima instead of Docker Desktop) the breeze check was
failing - but buildx in fact is not needed to run typical breeze
commands, and breeze already has support for it - it was just
wrongly handled.

(cherry picked from commit 148013b2a88935a2bae5e4b3eb86acb50dd6efc9)

4 weeks agoForce colors in yarn test output in CI (#23986)
Jarek Potiuk [Sat, 28 May 2022 12:22:45 +0000 (14:22 +0200)] 
Force colors in yarn test output in CI (#23986)

(cherry picked from commit 230a7377490ec9e6bb1c263d53f7f7fa961a3586)

4 weeks agouse explicit --mount with types of mounts rather than --volume flags (#23982)
Jarek Potiuk [Sat, 28 May 2022 11:12:37 +0000 (13:12 +0200)] 
use explicit --mount with types of mounts rather than --volume flags (#23982)

The --volume flag is an old style of specifying mounts used by docker,
the newer and more explicit version is --mount where you have to
specify type, source, destination in the form of key/value pairs.

This is more explicit and avoids some guesswork when volumes are
mounted (for example seems that on WSL2 volume name might be
guessed as path wrongly). The change explicitly specifies which
of the mounts are bind mounts and which are volume mounts.

Another nice side effect of this change is that when source is
missing, docker will not automatically create directories with the
missing name but it will fail. This is nicer because before it
led to creating directories when they were missing (for example
.bash_aliases and similar). This allows us to avoid some cleanups
to account for those files being created - instead we simply
skip those mounts if the file/folder does not exist.

(cherry picked from commit 49367642ef59de06694a80cf35cd6971ebab5eca)

4 weeks agoDisable fail-fast on pushing images to docker cache (#24005)
Jarek Potiuk [Sun, 29 May 2022 11:57:59 +0000 (13:57 +0200)] 
Disable fail-fast on pushing images to docker cache (#24005)

There is an issue with pushing cache to docker registry that
is connected to containerd bug but started to appear more
frequently recently (as evidenced for example by
). The issue is still open in containerd:

Until it if fixed, we disable fail-fast on pushing cache
so that even if it happens, we just have to re-run that single
python version that actually failed. Currently there is a much
lower chance of success because all 4 build have to succeed.

(cherry picked from commit ae343fa8e922e369d0d5081894d223133a55b8ef)

4 weeks agoRemove fixing cncf.kubernetes provider when generating constraints (#23994)
Jarek Potiuk [Sun, 29 May 2022 08:27:21 +0000 (10:27 +0200)] 
Remove fixing cncf.kubernetes provider when generating constraints (#23994)

When we yanked cncf.kubernetes provider, we pinned 3.1.2
temporarily for provider generation. This removes the pinning as
we are already at 4.0.2 version

(cherry picked from commit 9a9c4009c6480fc2d5c12a38b02225d431a01485)

4 weeks agoFix missing shorthand for docker buildx rm -f (#23984)
Jarek Potiuk [Sat, 28 May 2022 11:03:12 +0000 (13:03 +0200)] 
Fix missing shorthand for docker buildx rm -f (#23984)

Latest version of buildx removed -f as shorthand for --force flag.

(cherry picked from commit fc17fbfe9667dbf603f463d028cdffabb2e8f97f)

4 weeks agoIntroduce `flake8-implicit-str-concat` plugin to static checks (#23873)
Josh Fell [Fri, 27 May 2022 16:53:34 +0000 (12:53 -0400)] 
Introduce `flake8-implicit-str-concat` plugin to static checks (#23873)

(cherry picked from commit 92ddcf4ac6fa452c5056b1f7cad1fca4d5759802)

4 weeks agoAdd exception to catch single line private keys (#23043)
nsAstro [Mon, 9 May 2022 22:49:22 +0000 (18:49 -0400)] 
Add exception to catch single line private keys (#23043)

(cherry picked from commit e63dbdc431c2fa973e9a4c0b48ec6230731c38d1)

4 weeks agoFix Breeze documentation typo (#23919)
Igor Tavares [Wed, 25 May 2022 19:33:35 +0000 (16:33 -0300)] 
Fix Breeze documentation typo (#23919)

(cherry picked from commit 2e95153ec9c3cf54c4f2fc34f215f3ad3f65fc63)

4 weeks agoAdd Deferrable Databricks operators (#19736)
Eugene Karimov [Sun, 22 May 2022 14:22:49 +0000 (16:22 +0200)] 
Add Deferrable Databricks operators (#19736)

(cherry picked from commit 6150d283234b48f86362fd4da856e282dd91ebb4)

4 weeks agoAdd tool to automaticaly update status of AIP-47 issues. (#23745)
Jarek Potiuk [Fri, 20 May 2022 18:08:01 +0000 (20:08 +0200)] 
Add tool to automaticaly update status of AIP-47 issues. (#23745)

(cherry picked from commit 91a96f164f5af7872d94fdeab8aed7c487976391)

4 weeks agoChange chart annotation generator to use RELEASE_NOTES (#23549)
Jed Cunningham [Sat, 7 May 2022 09:15:25 +0000 (03:15 -0600)] 
Change chart annotation generator to use RELEASE_NOTES (#23549)

(cherry picked from commit e2c7847c6bf73685f0576364787fab906397a6fe)

4 weeks agoMake provider doc preparation a bit more fun :) (#23629)
Jarek Potiuk [Tue, 10 May 2022 22:19:54 +0000 (00:19 +0200)] 
Make provider doc preparation a bit more fun :) (#23629)

Previously you had to manually add versions when changelog was
modified. But why not to get a bit more fun and get the versions
bumped automatically based on your assesment when reviewing the
provideers rather than after looking at the generated changelog.

(cherry picked from commit cfa95af7e83b067787d8d6596caa3bc97f4b25bd)

4 weeks ago[23945] Icons in grid view for different dag types (#23970)
David Skoda [Fri, 27 May 2022 20:25:04 +0000 (16:25 -0400)] 
[23945] Icons in grid view for different dag types (#23970)

(cherry picked from commit d470a8ef8df152eceee88b95365ff923db7cb2d7)

4 weeks agoFaster grid view (#23951)
Jed Cunningham [Fri, 27 May 2022 04:00:09 +0000 (22:00 -0600)] 
Faster grid view (#23951)

(cherry picked from commit c9b21b8026c595878ee4cc934209fc1fc2ca2396)

4 weeks agoAdd typing to Azure Cosmos Client Hook (#23941)
Jarek Potiuk [Thu, 26 May 2022 16:04:55 +0000 (18:04 +0200)] 
Add typing to Azure Cosmos Client Hook (#23941)

New release of Azure Cosmos library has added typing information
and it broke main builds with mypy verification.

(cherry picked from commit 3393647aa63cbfdd2e6b90b7a5c9971732a54fc2)

4 weeks agoDisallow calling expand with no arguments (#23463)
Tzu-ping Chung [Fri, 27 May 2022 04:25:13 +0000 (00:25 -0400)] 
Disallow calling expand with no arguments (#23463)

(cherry picked from commit 9214018153dd193be6b1147629f73b23d8195cce)

4 weeks agoAdd is_mapped field to Task response. (#23319)
Karthikeyan Singaravelan [Thu, 28 Apr 2022 12:54:48 +0000 (18:24 +0530)] 
Add is_mapped field to Task response. (#23319)

* Add is_mapped field to Task response.

* Add is_mapped to schema file and add test for GetTasks.

(cherry picked from commit f3d80c2a0dce93b908d7c9de30c9cba673eb20d5)

4 weeks agoDagFileProcessorManager: Start a new process group only if current process not a...
Andrey Anshin [Fri, 27 May 2022 14:29:11 +0000 (17:29 +0300)] 
DagFileProcessorManager: Start a new process group only if current process not a session leader (#23872)

(cherry picked from commit 9216489d9a25f56f7a55d032b0ebfc1bf0bf4a83)

4 weeks agoIgnore the DeprecationWarning in test_days_ago (#23875)
Alex Kruchkov [Tue, 24 May 2022 08:29:20 +0000 (11:29 +0300)] 
Ignore the DeprecationWarning in test_days_ago (#23875)

Co-authored-by: alexkru <>
(cherry picked from commit eff697a5b89c74c995743f401f94d1171f39b08a)

4 weeks agoReplaced all days_ago functions with datetime functions (#23237)
Tzu-ping Chung [Mon, 23 May 2022 15:32:52 +0000 (11:32 -0400)] 
Replaced all days_ago functions with datetime functions (#23237)

Co-authored-by: Dev232001 <>
(cherry picked from commit f352ee63a5d09546a7997ba8f2f8702a1ddb4af7)

4 weeks agoMask sensitive values for not-yet-running TIs (#23807)
Daniel Standish [Sat, 21 May 2022 15:36:12 +0000 (08:36 -0700)] 
Mask sensitive values for not-yet-running TIs (#23807)

Alternative approach to #22754.  Resolves  #22738.

(cherry picked from commit 2dc806367c3dc27df5db4b955d151e789fbc78b0)

4 weeks agoAdd cascade to `dag_tag` to `dag` foreignkey (#23444)
Ephraim Anierobi [Fri, 27 May 2022 14:28:49 +0000 (15:28 +0100)] 
Add cascade to `dag_tag` to `dag` foreignkey (#23444)

Bulk delete does not work if the cascade behaviour of a foreignkey
is set on python side(relationship configuration). To allow bulk delete of dags
we need to setup cascade deletion in the DB.

The warning on query.delete at
stated that:

The operations do not offer in-Python cascading of relationships - it is assumed that ON UPDATE CASCADE and/or ON DELETE CASCADE is configured for any foreign key references which require it, otherwise the database may emit an integrity violation if foreign key references are being enforced.

Another alternative is avoiding bulk delete of dags but I prefer we support bulk deletes.

This will break offline sql generation for mssql(already broken before now :) ). Also, since there's only one foreign key
in `dag_tag` table, I assume that the foreign key would be named `dag_tag_ibfk_1` in `mysql`. This
avoided having to query the db for the name.

The foreignkey is explicitly named now, would be easy for future upgrades

(cherry picked from commit 8ccff9244a6d1a936d8732721373b967e95ec404)

4 weeks agoDisable rebase workflow (#23943)
Jarek Potiuk [Thu, 26 May 2022 16:07:05 +0000 (18:07 +0200)] 
Disable rebase workflow (#23943)

The change of the release workflow in #23928 removed the reason
why we should have rebase workflow possible. We only needed to
do rebase when we merged test branch into stable branch and
since we are doing it manually, there is no more reeason to
have it in the GitHub UI.

(cherry picked from commit 17488768bb84468d965cbce6b54186d6c76a1053)

4 weeks agoFix broken main (#23940)
eladkal [Thu, 26 May 2022 15:33:19 +0000 (18:33 +0300)] 
Fix broken main (#23940)

main breaks with
  /usr/local/lib/python3.7/importlib/ in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  tests/providers/amazon/aws/hooks/ in <module>
      class TestCloudFormationHook(unittest.TestCase):
  tests/providers/amazon/aws/hooks/ in TestCloudFormationHook
  /usr/local/lib/python3.7/site-packages/moto/ in f
      module = importlib.import_module(module_name, "moto")
  /usr/local/lib/python3.7/importlib/ in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  /usr/local/lib/python3.7/site-packages/moto/cloudformation/ in <module>
      from .models import cloudformation_backends
  /usr/local/lib/python3.7/site-packages/moto/cloudformation/ in <module>
      from .parsing import ResourceMap, OutputMap
  /usr/local/lib/python3.7/site-packages/moto/cloudformation/ in <module>
      from moto.apigateway import models  # noqa  # pylint: disable=all
  /usr/local/lib/python3.7/site-packages/moto/apigateway/ in <module>
      from .models import apigateway_backends
  /usr/local/lib/python3.7/site-packages/moto/apigateway/ in <module>
      from openapi_spec_validator import validate_spec
  E   ModuleNotFoundError: No module named 'openapi_spec_validator'
  Fix is already in placed in moto but version 3.1.11 wasn't released yet

(cherry picked from commit 86d40a95c4b6085ddea7b4d14bb6d91c126138dc)

4 weeks agoClarify manual merging of PR in release doc (#23928)
Ephraim Anierobi [Thu, 26 May 2022 14:52:10 +0000 (15:52 +0100)] 
Clarify manual merging of PR in release doc (#23928)

It was not clear to me what this really means

(cherry picked from commit bfe51ea64a6957587c33baf32916b205dea91a45)

4 weeks agoMake CI and PROD image builds consistent (#23841)
Jed Cunningham [Thu, 26 May 2022 13:13:15 +0000 (07:13 -0600)] 
Make CI and PROD image builds consistent (#23841)

Simple refactoring to make the jobs more consistent.

(cherry picked from commit 30262b1fe3b095168c9b4fe5a78255048d2f410f)

4 weeks agoAvoid printing exception when exiting tests command (#23897)
Jarek Potiuk [Tue, 24 May 2022 20:56:25 +0000 (21:56 +0100)] 
Avoid printing exception when exiting tests command (#23897)

Fixes: #23868
(cherry picked from commit d788f4b90128533b1ac3a0622a8beb695b52e2c4)

4 weeks agoFew fixes in the providers release doc (#23382)
Jed Cunningham [Sat, 30 Apr 2022 22:33:15 +0000 (16:33 -0600)] 
Few fixes in the providers release doc (#23382)

(cherry picked from commit acbb09c7e10c1452629ff1ab7641a3fa72237338)

4 weeks agoSpeed up Breeze experience on Mac OS (#23866)
Jarek Potiuk [Tue, 24 May 2022 09:11:42 +0000 (10:11 +0100)] 
Speed up Breeze experience on Mac OS (#23866)

This change should significantly speed up Breeze experience (and
especially iterating over a change in Breeze for MacOS users -
independently if you are using x86 or arm architecture.

The problem with MacOS with docker is particularly slow filesystem
used to map sources from Host to Docker VM. It is particularly bad
when there are multiple small files involved.

The improvement come from two areas:
* removing duplicate pycache cleaning
* moving MyPy cache to docker volume

When entering breeze we are - just in case - cleaning .pyc and
__pychache__ files potentially generated outside of the docker
container - this is particularly useful if you use local IDE
and you do not have bytecode generation disabled (we have it
disabled in Breeze). Generating python bytecode might lead to
various problems when you are switching branches and Python
versions, so for Breeze development where the files change
often anyway, disabling them and removing when they are found
is important. This happens at entering breeze and it might take
a second or two depending if you have locally generated.

It could happen that __init script was called twice (depending which
script was called - therefore the time could be double the one
that was actually needed. Also if you ever generated provider
packages, the time could be much longer, because node_modules
generated in provider sources were not excluded from searching
(and on MacOS it takes a LOT of time).

This also led to duplicate time of exit as the initialization code
installed traps that were also run twice. The traps however were
rather fast so had no negative influence on performance.

The change adds a guard so that initialization is only ever executed

Second part of the change is moving the cache of mypy to a docker
volume rather than being used from local source folder (default
when complete sources are mounted). We were already using selective
mount to make sure MacOS filesystem slowness affects us in minimal
way - but with this change, the cache will be stored in docker
volume that does not suffer from the same problems as mounting
volumes from host. The Docker volume is preserved until the
`docker stop` command is run - which means that iterating over
a change should be WAY faster now - observed speed-up were around
5x speedups for MyPy pre-commit.

(cherry picked from commit ac9b224e629918c66e867cde8f94804b6336912c)

4 weeks agoupdate K8S-KIND to 0.14.0 (#23859)
raphaelauv [Mon, 23 May 2022 14:25:18 +0000 (16:25 +0200)] 
update K8S-KIND to 0.14.0 (#23859)

(cherry picked from commit 35620edd4b5b108adf355855e03224a08d132b10)

4 weeks agoUpgrade `pip` to 22.1.1 version (just released) (#23854)
Jarek Potiuk [Sun, 22 May 2022 12:13:44 +0000 (14:13 +0200)] 
Upgrade `pip` to 22.1.1 version (just released) (#23854)

(cherry picked from commit a7425dc62e89cb73ac2bf04bd706858c915a6a12)

4 weeks agoAdd better feedback to Breeze users about expected action timing (#23827)
Jarek Potiuk [Sun, 22 May 2022 12:15:24 +0000 (14:15 +0200)] 
Add better feedback to Breeze users about expected action timing (#23827)

There are a few actions in Breeze that might take more or less time
when invoked. This is mostly when you need to upgrade Breeze or
update to latest version of the image because some dependedncies
were added or image was modified.

While we have improved significantly the waiting time involved
now (and caching problems have been fixed to make it as fast
possible), there are still a few situations that you need to have
a good connectivity and a little time to run the upgrade. Which
is often not something you would like to loose your time on in
a number of cases when you need to do things fast.

Usually Breeeze does not force the user to perform such long
actions - it allows to continue without doing them (either by
timeout or by letting user answer "no" to question asked.

Previously Breeze have not informed the user about the exepcted
time of running such operation, but with this change it tells
what is the expected delay - thus allowing the user to make
informed action whether they want to run the upgrade or not.

(cherry picked from commit fe91db752525717cf5b8017f16e4bc60c6a2b26d)

4 weeks agoDoc: Add column names for DB Migration Reference (#23853)
Kaxil Naik [Sun, 22 May 2022 06:54:06 +0000 (07:54 +0100)] 
Doc: Add column names for DB Migration Reference (#23853)

Before the automation:
Currently (with missing column names):

(cherry picked from commit 344304e9e468446ee87c012eeae2ba0ec01acd47)

4 weeks agoSelf upgrade when refreshing images (#23686)
Jarek Potiuk [Fri, 20 May 2022 18:08:21 +0000 (20:08 +0200)] 
Self upgrade when refreshing images (#23686)

When you have two branches, you should sefl-upgrade breeze to make
sure you use the version that is tied with your branch.

Usually we have two active branches - main and the last released
line, so switching between then is not unlikely for maintainers.

(cherry picked from commit e09e4635b0dc50cbd3a18f8be02ce9b2e2f3d742)

4 weeks agoTemporarily pin xmltodict to 0.12.0 to fix main failure (#23577)
Jarek Potiuk [Mon, 9 May 2022 05:41:06 +0000 (07:41 +0200)] 
Temporarily pin xmltodict to 0.12.0 to fix main failure (#23577)

The xmltodict 0,13.0 breaks some tests and likely 0.13.0 is buggy
as the error is ValueError: Malformatted input.

We pin it to 0.12.0 to fix the main failing.

Related: #23576
(cherry picked from commit 975996157f4cc35490acc69d98ce6582d81af93a)

4 weeks agoFix cassandra to 3.0.25 (#23522)
Jarek Potiuk [Fri, 6 May 2022 10:25:45 +0000 (12:25 +0200)] 
Fix cassandra to 3.0.25 (#23522)

fix cassandra to 3.0.25 as latest 3.0 (3.0.26) does not start cleanly

(cherry picked from commit 3cd37d4d206587314f96f0a3f7dfabaaef1b6cc6)

4 weeks agoUpdate dep for databricks #23917 (#23927)
Vincent Koc [Fri, 27 May 2022 01:57:12 +0000 (11:57 +1000)] 
Update dep for databricks #23917 (#23927)

(cherry picked from commit 80c3fcd097c02511463b2c4f586757af0e5f41b2)

5 weeks agoUse '--subdir' argument value for standalong dag processor. (#23864)
mhenc [Fri, 27 May 2022 02:47:32 +0000 (04:47 +0200)] 
Use '--subdir' argument value for standalong dag processor. (#23864)

(cherry picked from commit 188ec4a8d61bdb536c33c9aa518f5acc13b0896e)

5 weeks agoHighlight task states by hovering on legend row (#23678)
pierrejeambrun [Mon, 23 May 2022 07:41:46 +0000 (15:41 +0800)] 
Highlight task states by hovering on legend row (#23678)

* Rework the legend row and add the hover effect.

* Move horevedTaskState to state and fix merge conflicts.

* Add tests.

* Order of item in the LegendRow, add no_status support

(cherry picked from commit 637a8b8af132e6231756160a3f6ce7ed789abaf6)

5 weeks agoFix and speed up grid view (#23947)
Jed Cunningham [Thu, 26 May 2022 19:53:22 +0000 (13:53 -0600)] 
Fix and speed up grid view (#23947)

This fetches all TIs for a given task across dag runs, leading to
signifincatly faster response times. It also fixes a bug where Nones
were being passed to the UI when a new task was added to a DAG with
exiting runs.

(cherry picked from commit 1cf483fa0c45e0110d99e37b4e45c72c6084aa97)

5 weeks agoPrevent UI from crashing if grid task instances are null (#23939)
Brent Bovenzi [Thu, 26 May 2022 16:20:14 +0000 (18:20 +0200)] 
Prevent UI from crashing if grid task instances are null (#23939)

* UI fix for null task instances

* improve tests without global vars

* fix test data

(cherry picked from commit 9314a4ab8bf11e56125cbca6b012d61d1002ac32)

5 weeks agoRemove redundant register exit signals in `dag-processor` command (#23886)
Andrey Anshin [Thu, 26 May 2022 16:06:11 +0000 (19:06 +0300)] 
Remove redundant register exit signals in `dag-processor` command (#23886)

(cherry picked from commit db890df38f3020dc2cd322d5d5f67f4e57e186fd)

5 weeks agoFix exception trying to display moved table warnings (#23837)
Ash Berlin-Taylor [Sun, 22 May 2022 07:54:13 +0000 (08:54 +0100)] 
Fix exception trying to display moved table warnings (#23837)

If you still have an old dangling table from the 2.2 migration this
would fail. Make it more resilient and cope with both styles of moved
table name

(cherry picked from commit 4829b2392586643f5f7393ed423afc28c4814b63)

5 weeks agoAdd __wrapped__ property to _TaskDecorator (#23830)
sanjayp [Mon, 23 May 2022 01:24:52 +0000 (06:54 +0530)] 
Add __wrapped__ property to _TaskDecorator (#23830)

Co-authored-by: Sanjay Pillai <sanjaypillai11 [at]>
(cherry picked from commit a71e4b789006b8f36cd993731a9fb7d5792fccc2)

5 weeks agoFix UnboundLocalError when sql is empty list in DbApiHook (#23816)
Dmytro Kazanzhy [Sun, 22 May 2022 12:26:57 +0000 (15:26 +0300)] 
Fix UnboundLocalError when sql is empty list in DbApiHook (#23816)

(cherry picked from commit 4b5a101d29d8b0188d41abc5d079b0d363902de1)

5 weeks agoEnable clicking on DAG owner in autocomplete dropdown (#23804)
Mark Norman Francis [Tue, 24 May 2022 13:43:23 +0000 (14:43 +0100)] 
Enable clicking on DAG owner in autocomplete dropdown (#23804)

PR#18991 introduced directly navigating to a DAG when selecting one
from the typeahead search results. Unfortunately, the search results
also includes DAG owner names, and selecting one of those navigates to
a DAG with that name, which almost certainly doesn't exist.

This extends the autocompletion endpoint to return the type of result,
and adjusts the typeahead selection to use this to know which way to

(cherry picked from commit 29afd35b9cfe141b668ce7ceccecdba60775a8ff)

5 weeks agoSimplify flash message for _airflow_moved tables (#23635)
Daniel Standish [Wed, 11 May 2022 14:13:57 +0000 (07:13 -0700)] 
Simplify flash message for _airflow_moved tables (#23635)

Co-authored-by: Jed Cunningham <>
(cherry picked from commit b68667843c7a9796e7017b729f4474c0b0c990cd)

5 weeks agoExclude missing tasks from the gantt view (#23627)
Joel Ossher [Fri, 20 May 2022 19:24:14 +0000 (15:24 -0400)] 
Exclude missing tasks from the gantt view (#23627)

* Exclude missing tasks from the gantt view

Stops the gantt view from crashing if a task no longer exists
in a DAG but there are TaskInstances for that task.

* Fix tests

(cherry picked from commit 4b731f440734b7a0da1bbc8595702aaa1110ad8d)

5 weeks agoFix release date for 2.3.1
Jed Cunningham [Wed, 25 May 2022 21:10:30 +0000 (15:10 -0600)] 
Fix release date for 2.3.1

5 weeks agoUpdate release date on Release note 2.3.1 2.3.1rc1
Ephraim Anierobi [Sat, 21 May 2022 19:00:53 +0000 (20:00 +0100)] 
Update release date on Release note

5 weeks agoAdd limit for JPype1 (#23847)
Jarek Potiuk [Sat, 21 May 2022 16:15:12 +0000 (18:15 +0200)] 
Add limit for JPype1 (#23847)

The JPype1 limit has to be introduced because otherwise the 1.4.0
JPype1 breaks our ARM builds. The 1.4.0 did not release the sdist
version of the package. This made our cache refresh job to fail
as 1.4.0 version cannot be installed on ARM image.

The issue is captured in

(cherry picked from commit 3699be49b24ef5a0a8d8de81a149af2c5a7dc206)

5 weeks agoBetter fix for constraint-reference (#23845)
Jarek Potiuk [Sat, 21 May 2022 14:09:53 +0000 (16:09 +0200)] 
Better fix for constraint-reference (#23845)

The previous fix (#23844) broke main on package verification
as the package verification used the same parameter that was set to

This change rmeoves some remnant from the "bash" version where
we had to check if variable was empty and also making the "constraint"
parameters accepting default values from the current branch to be used
also for build commands.

(cherry picked from commit 10a0d8e7085f018b7328533030de76b48de747e2)

5 weeks agoUpdate version to 2.3.1 and add release notes
Ephraim Anierobi [Thu, 19 May 2022 21:27:16 +0000 (22:27 +0100)] 
Update version to 2.3.1 and add release notes

5 weeks agoGrid data: do not load all mapped instances (#23813)
Brent Bovenzi [Fri, 20 May 2022 04:18:17 +0000 (00:18 -0400)] 
Grid data: do not load all mapped instances (#23813)

* only get necessary task instances

* add comment

* encode_ti -> get_task_summary

(cherry picked from commit 7ab5ea7853df9d99f6da3ab804ffe085378fbd8a)

5 weeks agoAdd missing "airflow-constraints-reference" parameter (#23844)
Jarek Potiuk [Sat, 21 May 2022 09:38:38 +0000 (11:38 +0200)] 
Add missing "airflow-constraints-reference" parameter (#23844)

The build commands were missing "airflow-constraints-reference"
parameter and it always defaulted to constraints-main

(cherry picked from commit cc3ab432e32485e491d81c180ec807b275a0cafa)

5 weeks agoFix python version command (#23818)
Jarek Potiuk [Thu, 19 May 2022 22:40:02 +0000 (00:40 +0200)] 
Fix python version command (#23818)

(cherry picked from commit 8f3ce33e921056db3bac34dcf38b238cbf417279)

5 weeks agoDocument fix for broken elasticsearch logs with 2.3.0+ upgrade (#23821)
Jed Cunningham [Fri, 20 May 2022 16:45:23 +0000 (10:45 -0600)] 
Document fix for broken elasticsearch logs with 2.3.0+ upgrade (#23821)

In certain upgrade paths, Airflow isn't given an opportunity to track
the old `log_id_template`, so document the fix for folks who run into

(cherry picked from commit 6f738d93397a7b1429efb934c0ec2775c69f0738)

5 weeks agoAutomatically reschedule stalled queued tasks in CeleryExecutor (v2) (#23690)
Chris Redekop [Fri, 20 May 2022 14:40:58 +0000 (08:40 -0600)] 
Automatically reschedule stalled queued tasks in CeleryExecutor (v2) (#23690)

Celery can lose tasks on worker shutdown, causing airflow to just wait on them
indefinitely (may be related to celery/celery#7266). This PR expands the
"stalled tasks" functionality which is already in place for adopted tasks, and
adds the ability to apply it to all tasks such that these lost/hung tasks can
be automatically recovered and queued up again.

(cherry picked from commit baae70c88ed45d4b45e64754cb3decb99472c601)

5 weeks agoAdd UI tests for /utils and /components (#23456)
Brent Bovenzi [Fri, 13 May 2022 14:58:28 +0000 (10:58 -0400)] 
Add UI tests for /utils and /components (#23456)

* Add UI tests for /utils and /components

* add test for Table

* Address PR feedback

* Fix window prompt var

* Fix TaskName test from rebase

* fix lint errors

(cherry picked from commit 694e380e52a1b2c9ad74148e1dda2914a0496b70)

5 weeks agoFix expand/collapse all buttons (#23590)
Brent Bovenzi [Thu, 12 May 2022 19:48:31 +0000 (15:48 -0400)] 
Fix expand/collapse all buttons (#23590)

* communicate via customevents

* Handle open group logic in wrapper

* fix tests

* Make grid action buttons sticky

* Add default toggle fn

* fix splitting task id by '.'

* fix missing dagrun ids

(cherry picked from commit afdfece9372fed83602d50e2eaa365597b7d0101)

5 weeks ago19943 Grid view status filters (#23392)
pierrejeambrun [Mon, 9 May 2022 20:32:02 +0000 (22:32 +0200)] 
19943 Grid view status filters (#23392)

* Move tree filtering inside react and add some filters

* Move filters from context to utils

* Fix tests for useTreeData

* Fix last tests.

* Add tests for useFilters

* Refact to use existing SimpleStatus component

* Additional fix after rebase.

* Update following bbovenzi code review

* Update following code review

* Fix tests.

* Fix page flickering issues from react-query

* Fix side panel and small changes.

* Use default_dag_run_display_number in the filter options

* Handle timezone

* Fix flaky test

Co-authored-by: Brent Bovenzi <>
(cherry picked from commit 46c1c006f747798f7c80f615d791553f25dd1770)

5 weeks agoExpand/collapse all groups (#23487)
Brent Bovenzi [Thu, 5 May 2022 18:20:22 +0000 (14:20 -0400)] 
Expand/collapse all groups (#23487)

* Add expand/collapse all groups button to Grid

* add tests

* add comments

* Switch to 2 icon buttons

Disable buttons if all groups are expanded or collapsed

* Update localStorage key

(cherry picked from commit 83784d9e7b79d2400307454ccafdacddaee16769)

5 weeks agoFix retrieval of deprecated non-config values (#23723)
Jarek Potiuk [Fri, 20 May 2022 14:09:52 +0000 (16:09 +0200)] 
Fix retrieval of deprecated non-config values (#23723)

It turned out that deprecation of config values did not work as
intended. While deprecation worked fine when the value was specified
in configuration value it did not work when `run_as_user` was used.

In those cases the "as_dict" option was used to generate temporary
configuratin and this temporary configuration contained default value
for the new configuration value - for example it caused that
the generated temporary value contained:


Even if the deprecated `core/sql_alchemy_conn` was set (and no
new `database/sql_alchemy_conn` was set at the same time.

This effectively rendered the old installation that did not convert
to the new "database" configuration not working for run_as_user, because
the tasks run with "run_as_user" used wrong, empty sqlite database
instaead of the one configured for Airflow.

Also during adding tests, it turned out that the mechanism was also
not working as intended before - in case `_CMD` or `_SECRET` were used
as environment variables rather than configuration. In those cases
both _CMD and _SECRET should be evaluated during as_dict() evaluation,
because the "run_as_user" might have not enough permission to run the
command or retrieve secret. The _cmd and _secret variables were only
evaluated during as_dict() when they were in the config file (note
that this only happens when include_cmd, include_env, include_secret
are set to True).

The changes implemented in this PR fix both problems:

* the _CMD and _SECRET env vars are evaluated during as_dict when the
  respective include_* is set
* the defaults are only set for the values that have deprecations
  in case the deprecations have no values set in either of the ways:
    * in config file
    * in env variable
    * in _cmd (via config file or env variable)
    * in _secret (via config file or env variable)

Fixes: #23679
(cherry picked from commit 888bc2e233b1672a61433929e26b82210796fd71)

5 weeks agoFix secrets rendered in UI when task is not executed. (#22754)
Karthikeyan Singaravelan [Fri, 20 May 2022 14:07:47 +0000 (19:37 +0530)] 
Fix secrets rendered in UI when task is not executed. (#22754)

(cherry picked from commit ce8ea6691820140a0e2d9a5dad5254bc05a5a270)

5 weeks agoFix provider import error matching (#23825)
Ian Buss [Fri, 20 May 2022 12:08:04 +0000 (13:08 +0100)] 
Fix provider import error matching (#23825)

(cherry picked from commit 6f5749c0d04bd732b320fcbe7713f2611e3d3629)

5 weeks agoFix regression in ignoring symlinks (#23535)
Ian Buss [Fri, 20 May 2022 06:35:41 +0000 (07:35 +0100)] 
Fix regression in ignoring symlinks (#23535)

(cherry picked from commit 8494fc7036c33683af06a0e57474b8a6157fda05)

5 weeks agoFix "breeze-legacy" after building images was removed (#23404)
Jarek Potiuk [Mon, 2 May 2022 14:26:05 +0000 (16:26 +0200)] 
Fix "breeze-legacy" after building images was removed (#23404)

The `breeze-legacy` stopped working after building images were
removed as few parameters were still checked for allowed values
but they were missing,

This PR fixes it by removing the parameters.

(cherry picked from commit 8622808aa79531bcaa5099d26fbaf54b4afe931a)

5 weeks agoModify db clean to also catch the ProgrammingError exception (#23699)
Jian Yuan Lee [Thu, 19 May 2022 16:47:56 +0000 (17:47 +0100)] 
Modify db clean to also catch the ProgrammingError exception (#23699)

(cherry picked from commit a80b2fcaea984813995d4a2610987a1c9068fdb5)

5 weeks agoShorten max pre-commit hook name length (#23677)
Daniel Standish [Thu, 12 May 2022 18:46:56 +0000 (11:46 -0700)] 
Shorten max pre-commit hook name length (#23677)

When names are too long, pre-commit output looks very ugly and takes up 2x lines. Here I reduce max length just a little bit further so that pre-commit output renders properly on a macbook pro 16" with terminal window splitting screen horizontally.

(cherry picked from commit c74e67a4ffb94ef5152b34fa96e88f1cbfe0c75a)

5 weeks agoMake Breeze help generation indepdent from having breeze installed (#23612)
Jarek Potiuk [Tue, 10 May 2022 09:49:39 +0000 (11:49 +0200)] 
Make Breeze help generation indepdent from having breeze installed (#23612)

Generation of Breeze help requires breeze to be installed. However
if you have locally installed breeze with different dependencies
and did not run self-upgrade, the results of generation of the
images might be different (for example when different rich
version is used). This change works in the way that:
* you do not have to have breeze installed at all to make it work
* it always upgrades to latest breeze when it is not installed
* but this only happens when you actually modified some breeze code

(cherry picked from commit e36868ba1b8a26f838851d1d09cca9db64cbcdc8)

5 weeks agoAdd version to migration prefix (#23564)
Daniel Standish [Mon, 16 May 2022 21:13:53 +0000 (14:13 -0700)] 
Add version to migration prefix (#23564)

We don't really need the alembic revision id in the filename.  having version instead is much more useful.  having both of them takes up too much space.

(cherry picked from commit 741f8029115cc4698f9451b62546c3b1ff3d3a9c)

5 weeks agoFix typos in and airflow_doc_issue_report.yml (#23294)
TreyYi [Wed, 27 Apr 2022 21:30:12 +0000 (06:30 +0900)] 
Fix typos in and airflow_doc_issue_report.yml (#23294)

(cherry picked from commit c26796e31a9543cd8b45b50264128ac17455002c)

5 weeks agoFix `` to work on new minor releases (#23287)
Jed Cunningham [Tue, 3 May 2022 18:33:05 +0000 (12:33 -0600)] 
Fix `` to work on new minor releases (#23287)

(cherry picked from commit f61119c0f3caa5963f00fa158f9d27f8f8e2cda8)

5 weeks agoAdd missing steps to release process (#23384)
Jed Cunningham [Sun, 1 May 2022 10:09:53 +0000 (04:09 -0600)] 
Add missing steps to release process (#23384)

(cherry picked from commit d670e571e499ad8e97dedfed3d81ed59469bce7c)

5 weeks agoRemove tagging of `constraint-x-y` branch from release process (#23399)
Ephraim Anierobi [Mon, 2 May 2022 09:56:05 +0000 (10:56 +0100)] 
Remove tagging of `constraint-x-y` branch from release process (#23399)

(cherry picked from commit 9faffc6c610adb86e421f24c24d1f8749551b286)

5 weeks agoUpdate Airflow Release Doc (#23322)
Ephraim Anierobi [Thu, 28 Apr 2022 18:51:20 +0000 (19:51 +0100)] 
Update Airflow Release Doc (#23322)

Co-authored-by: Kaxil Naik <>
Co-authored-by: Jed Cunningham <>
(cherry picked from commit 2dfccfa82f602ab71db417bd9b45e86988ce29e4)

5 weeks agoFix python version used for cache preparaation (#23785)
Jarek Potiuk [Thu, 19 May 2022 06:47:47 +0000 (08:47 +0200)] 
Fix python version used for cache preparaation (#23785)

Cache preparation on CI used default (Python 3.7) version of the
image. It had an influence on time of "full build needed" only and
for users who wanted to build breeze image for Python version
different than default Python 3.7.

It had no big influence on "main" builds" because in main we are
build images with "upgrade-to-newer-dependencies" which takes
longer anyway.

(cherry picked from commit 46abf376fbecc59b37db674fdf2a865d4c28a722)

5 weeks agoIncrease timeout for Helm Chart executor upgrade tests (#23759)
Jarek Potiuk [Tue, 17 May 2022 16:26:30 +0000 (18:26 +0200)] 
Increase timeout for Helm Chart executor upgrade tests (#23759)

(cherry picked from commit 9dcca989ab6e2671c7278aa39fda0c4443232049)

5 weeks agoFurther speed up fixing ownership in CI (#23782)
Jarek Potiuk [Thu, 19 May 2022 15:43:26 +0000 (17:43 +0200)] 
Further speed up fixing ownership in CI (#23782)

After #23775 I noticed that there is yet another small improvement
area in the CI buld speed. Currently build-ci-image builds and push
only "commit-tagged" images, but "fix-ownership" requires
the "latest" image to run.

This PR adds --tag-as-latest option also to build-image and
build-prod-image commands - similarly as for the pull-image and
pull-prod-image. This will retag the "commit" images as latest in the
build-ci-images step and allow to save 1m on pulling the latest image
before fix-ownership (bringing it back to 1s overhead)

(cherry picked from commit 252ef66438ecda87a8aac4beed1f689f14ee8bec)

5 weeks agoAdd tagging image as latest for CI image wait (#23775)
Jarek Potiuk [Wed, 18 May 2022 14:21:47 +0000 (16:21 +0200)] 
Add tagging image as latest for CI image wait (#23775)

The "wait for image" step lacked --tag-as-latest which made the
subsequent "fix-ownership" step run sometimes far longer than
needed - because it rebuilt the image for fix-ownership case.

Also the "fix-ownership" command has been changed to just pull
the image if one is missing locally rather than build. This
command might be run in an environment where the image is missing
or any other image was build (for example in jobs where an image
was build for different Python version) in this case the command
will simply use whatever Python version is available (it does
not matter), or in case no image is available, it will pull the image
as the last resort.

(cherry picked from commit 5e3f652397005c5fac6c6b0099de345b5c39148d)

5 weeks agoChange `Github` to `GitHub` (#23764)
John Bampton [Wed, 18 May 2022 08:16:33 +0000 (18:16 +1000)] 
Change `Github` to `GitHub` (#23764)

(cherry picked from commit 4a85370ca997015b75660192d2a481f09734c99d)