55 Commits

Author SHA1 Message Date
Wei Lee
526768d721 [main] Upgrade important CI environment (#64239) 2026-03-26 17:50:21 +08:00
Kaxil Naik
39e01a2d3a Bump Node.js to 24 and upgrade actions to Node.js 24 runtimes (#64021) 2026-03-21 09:31:53 +01:00
Aaron Chen
124990c21c CI: Upgrade important CI environment (#63953) 2026-03-20 09:04:32 +01:00
Jarek Potiuk
0d2f4cf9df CI: Upgrade important CI environment (#63593) 2026-03-14 14:09:33 +01:00
Henry Chen
1fd89e0e3a CI: Upgrade important CI environment (#63169) 2026-03-09 10:23:39 +01:00
Jarek Potiuk
fdddc18137 Vendor K8s JSON schemas for helm tests and add multi-version validation (#62820)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:51:02 +01:00
Jarek Potiuk
85a5a61844 CI: Replace curl-based uv installation with pip install from PyPI (#62619)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 14:39:44 +01:00
Jarek Potiuk
0699930e26 CI: Upgrade important CI environment (#62610) 2026-02-28 08:51:07 +01:00
Henry Chen
f64097f18c CI: Upgrade important CI environment (#62531) 2026-02-26 21:37:22 +01:00
Wei Lee
fca919a148 CI: Upgrade important CI environment (#62394) 2026-02-24 22:56:00 +09:00
Bugra Ozturk
4c2cb7caa8 CI: Upgrade important CI environment (#62191) 2026-02-19 22:53:28 +01:00
Jarek Potiuk
ef4941fe16 CI: Upgrade important CI environment (#61748) 2026-02-10 23:57:40 +01:00
Elad Kalif
5e87514c4e Bump uv to 0.10.0 (#61586) 2026-02-07 12:01:11 +01:00
Pratiksha
1d006c6484 [main] Upgrade important CI environment (#61482) 2026-02-05 17:16:07 +05:30
Jens Scheffler
8d9ba565fa CI: Upgrade important CI environment (#61417)
* CI: Upgrade important CI environment

* Exclude ASYNC240 rule
2026-02-04 00:10:02 +01:00
Amogh Desai
7fd9304213 [main] Upgrade important CI environment (#61276) 2026-01-31 13:36:56 +05:30
Bugra Ozturk
720c041a8b CI: Upgrade important CI environment (#60613) 2026-01-16 00:02:31 +01:00
Bugra Ozturk
e943d588e7 CI: Upgrade important CI environment (#60552) 2026-01-14 23:11:33 +01:00
Jarek Potiuk
9479de9802 CI: Upgrade important CI environment (#60365) 2026-01-10 10:59:40 +01:00
Jarek Potiuk
b3d310783b CI: Upgrade important CI environment (#60174) 2026-01-06 20:40:47 +01:00
Jens Scheffler
cf8acef006 CI: Upgrade important CI environment (#60032) 2026-01-02 10:52:59 +05:30
Bugra Ozturk
9815da821f CI: Upgrade important CI environment (#59617) 2025-12-18 23:39:35 +01:00
Wei Lee
23ab73adf0 build: upgrade uv to 0.9.17, prek to 0.2.21, ruff to 0.14.9 (#59350) 2025-12-12 11:13:54 +05:30
Bugra Ozturk
6b4867e816 Update uv version to 0.9.16 (#59138)
* Update uv version to 0.9.16

* Update uv version to 0.9.16
2025-12-06 21:01:17 +01:00
Amogh Desai
cd255d7bff Bump ruff to 0.14.8, uv to 0.9.15 (#59058) 2025-12-04 20:48:32 +01:00
Jarek Potiuk
d490d09fc1 CI: Upgrade important CI environment (#58915) 2025-12-02 10:58:55 +01:00
Jarek Potiuk
cddbdf86c9 Fix airflow-ctl image generation failing with latest prek version (#58732)
* allocating pseudo-terminal inside the python script creating
  the images instead of trying to do it by docker compose run
* better diagnostics in case of error (verbosity handling)
* properly allocating console with forcing pesudo-terminal creation
  inside the container when --tty command is used with breeze shell
  via `enable-tty.yaml`
* upgrading prek + uv to latest versions
* a bit of refactoring how the docker-compose files are referrred to
* Console in the script also uses pseudo-terminal
2025-11-28 03:07:18 +01:00
Jarek Potiuk
6d36d7b4ff CI: Upgrade important CI environment (#58696) 2025-11-26 01:47:54 +01:00
Amogh Desai
525f07c158 Bump uv to 0.9.11, prek to 0.2.18, ruff to 0.14.6 (#58569) 2025-11-22 00:51:43 +05:30
Jarek Potiuk
c25e7839b8 CI: Upgrade important CI environment (#58423) 2025-11-18 20:10:51 +01:00
Jarek Potiuk
1b1bac8383 CI: Upgrade important CI environment (#58245) 2025-11-13 00:25:09 +01:00
Jarek Potiuk
8bfe744fe1 CI: Upgrade important CI environment (#58164) 2025-11-10 22:20:26 +01:00
Wei Lee
26c93bc52b ci(github-actions): Upgrade uv and ruff versions to fix CI 2025-10-31 11:25:39 +05:30
Ankit Chaurasia
8ecca1dfba Resolves the CI failure in the upgrade-important-versions hook. (#57185)
- Update uv from 0.9.4 to 0.9.5
- Update ruff from 0.14.1 to 0.14.2
- Update mypy to 1.18.2
- Update Python to 3.12.12
- Update various other dependencies
2025-10-24 13:25:59 +05:30
Jarek Potiuk
2eb48e23c9 Upgrade uv and remove accidental uv sync (#56834)
Uv upgraded to 0.9.4 and also we remove accidentally added uv sync
2025-10-19 07:42:20 +02:00
Jarek Potiuk
556d179d35 Restore prek cache in a more robust way (#56796)
Apparently the prek cache mechanism has been somewhat broken for a
while - after we split prek to monorepo. The hash files used to
determine prek-cache was different for save and restore step
(the `**/` has been missing in the save cache step. Which means
that we always failed to restore cache and created it from the
scratch.

Also, it seems that the prek cache-when prepared refers to the uv
version that is pre-installed for it in case uv is not installed
in the system. And it refers to the uv version when creating the
virtual environments used by prek, and we first attempted to
install prek and create cache, and only after we installed uv, which
had a side-effect that in some cases the installed venvs referred
to a missing python binary.

Finally - there is a bug in prek https://github.com/j178/prek/issues/918
that pygrep cache contains reference to a non-existing python binary
that should be run when pygrep runs.

Also it's possible that some of the cache installed in workspace by the
github worker remained, and we did not preemptively clean the cache when
we attempted to restore it and failed.

This PR attempts to restore the cache usage in a more robust way:

* fixed cache key on save to save cache with proper name
* added uv version to cache key for prek
* always install uv in desired version before installing prek
* if we faile to cache-hit and restore the cache, we clean-up
  the .cache/prek folder
* we do not look at skipped hooks when installing prek and restoring
  or saving cache. There is very little saving on some hooks and
  since we are preparing the cache in "build-info" now - it's better
  to always use the same cache, no matter if some checks are skipped
* upgraded to prek 0.2.10 that fixed the issue with pygrep cache
2025-10-18 17:47:47 +02:00
Jarek Potiuk
d6a51e9ac3 Add possibility to apply a commit with patch to docs when publishing (#53668)
You can specify commit hash to apply when you build documentation.
This allows to regenerate past version of the documentation by
checking out the exact version tag that was used back then and
applying the commit hash with fixes.

This might help in fixing issues like
https://github.com/apache/airflow/issues/53646
2025-07-23 18:30:34 +02:00
Jarek Potiuk
33afdf97f5 Fix generate-constraints run on different python than base (#52464)
It turns out that when we are installing Breeze we were using
the "Image" python version and not the 'default" python version
to install breeze, and Python 3.12 and 3.11 are not installed by
default when generate-constraints runs.

This change fixes this problem, also it changes the name of the
generate-constraints job to only show the python version used.
2025-06-29 18:18:22 +02:00
Elad Kalif
e7e89a07ff Drop support for Python 3.9 (#52072)
* Drop support for Python 3.9

* fixes

* fix casandra

* fix casandra

* fix PreviewGenerativeModel

* fix PreviewGenerativeModel

* fix static checks

* fix datetime.py
2025-06-27 16:14:33 +03:00
Jarek Potiuk
243fe86d4b Move airflow sources to airflow-core package (#47798)
This is continuation of the separation of the Airflow codebase into
separate distributions. This one splits airflow into two of them:

* apache-airflow - becomes an empty, meta no-code distribution that
  only has dependencies to apache-airflow-core and task-sdk
  distributions and it has preinstalled provider distributions
  added in standard "wheel" distribution. All "extras" lead
  either to "apache-airflow-core" extras or to providers - the
  dependencies and optional dependencies are calculated differently
  depending on "editable" or "standard" mode - in editable mode,
  just provider dependencies are installed for preinstalled providers
  in standard mode - those preinstalled providers are dependencies.

* the apache-airflow-core distribution contains all airflow core
  sources (previously in apache-airflow) and it has no provider
  extras. Thanks to that apache-airflow distribution does not
  have any dynamically calculated dependencies.

* the apache-airflow-core distribution hs "hatch_build_airflow_core.py"
  build hooks that add custom build target and implement custom
  cleanup in order to implement compiling assets as part of the build.

* During the move, the following changes were applied for consistency:

  * packages when used in context of distribution packages have been
    renamed to "distributions" - including all documentations and
    commands in breeze to void confusion with import packages
    (see
https://packaging.python.org/en/latest/discussions/distribution-package-vs-import-package/)

  * all tests in `airflow-core` follow now the same convention
    where tests are in `unit`, `system` and `integration` package.
    no extra package has been as second level, because all the
    provider tests have "<PROVIDER>" there, so we just have to avoid
    naming airflow unit."<PROVIDER>" with the same name as provider.

  * all tooling in CI/DEV have been updated to follow the new
    structure. We should always build to packages now when we
    are building them using `breeze`.
2025-03-21 14:25:26 +01:00
GPK
c5049d0b79 Apply zizmor findings (#45408) 2025-01-05 16:52:38 +01:00
Jarek Potiuk
0779b2c133 Remove --use-uv from breeze setup config. (#45407)
While this config worked to setup uv/no-uv, it has never been
really used. Instead in all places where `use-uv` parameter
is used, the option determines the default rather than config
on breeze setup level.
2025-01-05 16:15:28 +01:00
Jarek Potiuk
1bcabb8161 Improve caching strategy across the board of CI workflow (#45289)
We are using various caches in our build and so far - due to the
way how "standard" caching works, PRs from forks could not effectively
use the cache from main Airflow repository - because caches are not
shared with other repositories - so the PRs builds could only
use cache effectively when they were rebased and continued running from
the same fork.

This PR improves caching strategy using "stash" action from the ASF.
Unlike `cache` - the action uses artifacts to store cache, and that
makes it possible for the stash action to use such cache uploaded from
`main` canary builds in PRs coming from the fork.

As part of this change all the places where setup-python was used
and breeze installed afterwards were reviewed and updated to use
only breeze installation action (it already installs python) and this
action has been improved to use UV caching effectively.

Overall this PR should decrease setup overhead for many jobs across
the CI workflow.

Follow-up after #45266
2025-01-01 02:29:36 +01:00
Jens Scheffler
63ff22f403 Drop python3.8 support core and providers (#42766)
* Drop Python 3.8 support in core

Add newsfragment

* Drop Python 3.8 support in provider packages
2024-10-08 11:00:11 +01:00
Jarek Potiuk
4d606813a6 Do not use cache to install breeze (#38491)
Using cache for breeze might cause various issues and it does not
really speed up the installation that significantly (installing
breeze is about 20 seconds and restoring cache and checking if
breeze is installed there is ~8 seconds, so we are savig some 10
seconds per build.

Removing cache will make breeze always runs in a clean state and
also it has less potential for potential cache-poisoning issues.
Since cache is shared among multiple workflows and runs, that is also
far safer option from security point of view.
2024-03-26 10:50:13 +01:00
Jarek Potiuk
8ae9331b49 Remove breeze-python-version input and propagating it everywhere (#38227)
The `breeze-python-version` has been used in a number of places
where we wanted to make sure of reproducibility of prepared
artifacts (because Python 3.8 produces different tar files).

However that caused some problems with caching of breeze
environments - where some of them were using Python 3.8 and some
were using Python 3.9.

This PR fixes it by:

* making Python 3.9 default for all breeze installations in CI
* removing the breeze-python-version parameter and all its usages
  from all workflows

The tests of breeze (ib basic-tests.yml) are still run with the
default-python-version not with Python 3.9 (which currently is
Python 3.8) - so the risk that breeze will not work on Python
3.8 is low.

This will also synchronize itself in October, when Python 3.8 will
reach end-of-life and we will move to Python 3.9 as the default
version.
2024-03-17 16:06:55 +01:00
Jarek Potiuk
4ae096eaf3 Force Python 3.9+ version when building reproducible packages (#37401)
When building reproducible packages with Python 3.8 they are ...
not reproducible. The tarfile produces slightly different output
and packages are not binary identical.

This change forces anyone preparing reproducible package to have
breeze installed using Python 3.9+
2024-02-14 02:18:48 +01:00
Jarek Potiuk
9e147aed3c Update Github Actions to newer versions (#37107)
Those actions use newer Node version and we will get rid of the
node 16 version that started to appear recently
2024-01-31 00:31:24 +01:00
Jarek Potiuk
e8080b82f1 Avoid auto-detection of Airflow Sources during breeze installation (#36792)
In some circumstances, when breeze is installed in CI (when we
update to newer breeze version in "build-info" workflow in old
branches) breeze is not able to auto-detect sources it was installed
from.

This PR changes it by passing the sources via environment variable.
2024-01-15 16:06:50 +01:00
Jarek Potiuk
9fa75aaf7a Remove Python 3.7 support (#30963) 2023-05-29 12:01:11 +02:00