This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch v2-8-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 9c0409b0c99ee5d01f0b4cebf784733be9cd8dc3 Author: Jarek Potiuk <[email protected]> AuthorDate: Tue Dec 5 22:36:34 2023 +0100 Run matrix of compatibility checks for providers (#36061) Provider's compatibility checks have been run for one Python version and one Airflow version. However provider compatibility is a bit more nuanced: * some providers are 2.5.0+, some are 2.6.0+, some are 2.7.0+ * some proivders do not work on Python 3.8 (cohere for importlib incompatibility reasons) and we need to run the checks on Python 3.9 This PR adds the following capabilities: * adds option to install airflow from github URL (finally not used in this PR but good to leave it in) * the non-default Python checks are only run in case we already build CI imagese for those Python versions are already built * builds Airflow vith dev0 version to account for `pip` comparision not allowing for selective `-pre` flags (cherry picked from commit ace97c0f0b64bd003bafa50e02cdfc10a8303936) --- .github/workflows/ci.yml | 77 +++++----- airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst | 157 ++++++++++++--------- dev/README_RELEASE_AIRFLOW.md | 5 + dev/README_RELEASE_PROVIDER_PACKAGES.md | 4 +- .../commands/release_management_commands.py | 66 +++++---- .../commands/release_management_commands_config.py | 2 + dev/breeze/src/airflow_breeze/global_constants.py | 35 +++++ .../src/airflow_breeze/utils/custom_param_types.py | 2 + .../src/airflow_breeze/utils/selective_checks.py | 15 +- dev/breeze/tests/test_selective_checks.py | 42 +++++- ...elease-management_install-provider-packages.svg | 88 +++++++----- ...elease-management_install-provider-packages.txt | 2 +- ...release-management_verify-provider-packages.svg | 74 ++++++---- ...release-management_verify-provider-packages.txt | 2 +- scripts/in_container/_in_container_utils.sh | 52 ++++++- 15 files changed, 407 insertions(+), 216 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aafe2da30d..0aa2e89ae3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -113,6 +113,7 @@ jobs: default-constraints-branch: ${{ steps.selective-checks.outputs.default-constraints-branch }} docs-list-as-string: ${{ steps.selective-checks.outputs.docs-list-as-string }} skip-pre-commits: ${{ steps.selective-checks.outputs.skip-pre-commits }} + providers-compatibility-checks: ${{ steps.selective-checks.outputs.providers-compatibility-checks }} helm-test-packages: ${{ steps.selective-checks.outputs.helm-test-packages }} debug-resources: ${{ steps.selective-checks.outputs.debug-resources }} runs-on: ${{steps.selective-checks.outputs.runs-on}} @@ -780,70 +781,68 @@ jobs: breeze release-management prepare-provider-packages --skip-tag-check --package-format wheel ${{ needs.build-info.outputs.affected-providers-list-as-string }} - provider-airflow-compatibility-check: + providers-compatibility-checks: timeout-minutes: 80 - name: "Providers Airflow 2.5 compatibility check" + name: > + Compat ${{matrix.airflow-version}}:P${{matrix.python-version}} provider check runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}} needs: [build-info, wait-for-ci-images] + strategy: + fail-fast: false + matrix: + include: ${{fromJson(needs.build-info.outputs.providers-compatibility-checks)}} env: RUNS_ON: "${{needs.build-info.outputs.runs-on}}" - PYTHON_MAJOR_MINOR_VERSION: "${{needs.build-info.outputs.default-python-version}}" + PYTHON_MAJOR_MINOR_VERSION: "${{matrix.python-version}}" + VERSION_SUFFIX_FOR_PYPI: "dev0" if: needs.build-info.outputs.skip-provider-tests != 'true' steps: - name: Cleanup repo run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*" + if: contains(fromJson(needs.build-info.outputs.python-versions),matrix.python-version) - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v4 with: persist-credentials: false - name: > - Prepare breeze & CI image: ${{needs.build-info.outputs.default-python-version}}:${{env.IMAGE_TAG}} + Prepare breeze & CI image: ${{matrix.python-version}}:${{env.IMAGE_TAG}} uses: ./.github/actions/prepare_breeze_and_image - name: "Cleanup dist files" run: rm -fv ./dist/* - name: "Prepare provider packages: wheel" run: > - breeze release-management prepare-provider-packages --version-suffix-for-pypi dev0 + breeze release-management prepare-provider-packages --package-format wheel ${{ needs.build-info.outputs.affected-providers-list-as-string }} - - name: "Fix incompatible 2.5 provider packages" + - name: > + Remove incompatible Airflow + ${{matrix.airflow-version}}:Python ${{matrix.python-version}} provider packages run: | - # This step should remove the provider packages that are not compatible with 2.5 - # or replace them with 2.5 compatible versions. Sometimes we have good reasons to bump - # the min airflow versions for some providers and then we need to add exclusions here. - # - # The Removal can be done with: - # - # rm -vf dist/apache_airflow_providers_<PROVIDER>*.whl - # - # Then it can be followed by downloading a compatible version from PyPI in case other - # providers depend on it and fail with import errors (you need to download compatible version): - # - # pip download --no-deps --dest dist apache-airflow-providers-<PROVIDER>==3.1.0 - # - rm -vf dist/apache_airflow_providers_openlineage*.whl - rm -rf dist/apache_airflow_providers_common_io*.whl - - name: "Get all provider extras as AIRFLOW_EXTRAS env variable" - # Extras might be different on S3 so rather than relying on "all" we should get the list of - # packages to be installed from the current provider_dependencies.json file + rm -vf ${{ matrix.remove-providers }} + working-directory: ./dist + if: matrix.remove-providers != '' + - name: "Checkout ${{matrix.airflow-version}} of Airflow" + uses: actions/checkout@v4 + with: + persist-credentials: false + ref: ${{matrix.airflow-version}} + path: old-airflow + - name: "Prepare airflow package: wheel" run: | - python -c 'from pathlib import Path; import json - providers = json.loads(Path("generated/provider_dependencies.json").read_text()) - provider_keys = ",".join(providers.keys()) - print("AIRFLOW_EXTRAS={}".format(provider_keys))' >> $GITHUB_ENV - - name: "Install and verify all provider packages and airflow on Airflow 2.5 files" + pip install pip==23.3.1 wheel==0.36.2 gitpython==3.1.40 + python setup.py egg_info --tag-build ".dev0" bdist_wheel -d ../dist + working-directory: ./old-airflow + - name: > + Install and verify all provider packages and airflow on + Airflow ${{matrix.airflow-version}}:Python ${{matrix.python-version}} run: > - breeze release-management verify-provider-packages --use-airflow-version 2.5.0 - --use-packages-from-dist --airflow-constraints-reference constraints-2.5.0 + breeze release-management verify-provider-packages --use-packages-from-dist if: needs.build-info.outputs.affected-providers-list-as-string == '' - - name: "Install affected provider packages and airflow on Airflow 2.5 files" + - name: > + Install affected provider packages and airflow on + Airflow ${{matrix.airflow-version}}:Python ${{matrix.python-version}} run: > - breeze release-management install-provider-packages --use-airflow-version 2.5.0 - --airflow-constraints-reference constraints-2.5.0 --run-in-parallel - # Make sure to skip the run if the only provider to be installed has been removed - # in the previous step - if: > - needs.build-info.outputs.affected-providers-list-as-string != '' && - needs.build-info.outputs.affected-providers-list-as-string != 'openlineage' + breeze release-management install-provider-packages --run-in-parallel + if: needs.build-info.outputs.affected-providers-list-as-string != '' prepare-install-provider-packages-sdist: timeout-minutes: 80 diff --git a/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst b/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst index 40cbd5ff61..28a7587827 100644 --- a/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst +++ b/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst @@ -113,15 +113,47 @@ Adding chicken-egg providers ---------------------------- Sometimes we want to release provider that depends on the version of airflow that has not yet been released -- for example when we released ``common.io`` provider it had ``apache-airflow>=2.8.0`` dependency. This -creates problem when generating constraints and building docker image for pre-release versions of -Airflow - because ``pip`` does not recognize the ``.dev0`` or ``.b1`` suffixes of those packages as -valid in the ``>=X.Y.Z`` comparison. So when you want to install a provider package with -``apache-airflow>=2.8.0`` requirement and you have ``2.8.0.dev0`` airflow package, ``pip`` will not -install the package, because it does not recognize ``2.8.0.dev0`` as a valid version for ``>=2.8.0`` -dependency. This is because ``pip`` currently implements the minimum version selection algorithm -requirement specified in packaging as described in the packaging version specification +- for example when we released ``common.io`` provider it had ``apache-airflow>=2.8.0`` dependency. + +Add chicken-egg-provider to compatibility checks +................................................ + +Providers that have "min-airflow-version" set to the new, upcoming versions should be excluded in +all previous versions of compatibility check matrix in ``BASE_PROVIDERS_COMPATIBILITY_CHECKS`` in +``src/airflow_breeze/global_constants.py``. Please add it to all previous versions + +Add chicken-egg-provider to constraint generation +.................................................. + +This is controlled by ``chicken_egg_providers`` property in Selective Checks - and our CI will automatically +build and use those chicken-egg providers during the CI process if pre-release version of Airflow is built. + +The short provider id (``common.io`` for example) for such a provider should be added +to ``CHICKEN_EGG_PROVIDERS`` list in ``src/airflow_breeze/utils/selective_checks.py``: + +This list will be kept here until the official version of Airflow the chicken-egg-providers depend on +is released and the version of airflow is updated in the ``main`` and ``v2-X-Y`` branch to ``2.X+1.0.dev0`` +and ``2.X.1.dev0`` respectively. After that the chicken-egg providers will be correctly installed because +both ``2.X.1.dev0`` and ``2.X+1.0.dev0`` are considered by ``pip`` as ``>2.X.0`` (unlike ``2.X.0.dev0``). + +The release process for Airflow includes cleaning the list after Airflow release is published, so the +provider will be removed from the list by release manager. + + +Why do we need to add chicken-egg providers to constraints generation +..................................................................... + +The problem when generating constraints with chicken-eggo providers and building docker image for +pre-release versions of Airflow - because ``pip`` does not recognize the ``.dev0`` or ``.b1`` +suffixes of those packages as valid in the ``>=X.Y.Z`` comparison. + +When you want to install a provider package with ``apache-airflow>=2.8.0`` requirement and you have +``2.8.0.dev0`` airflow package, ``pip`` will not install the package, because it does not recognize +``2.8.0.dev0`` as a valid version for ``>=2.8.0`` dependency. This is because ``pip`` +currently implements the minimum version selection algorithm requirement specified in packaging as +described in the packaging version specification https://packaging.python.org/en/latest/specifications/version-specifiers/#handling-of-pre-releases + Currently ``pip`` only allows to include pre-release versions for all installed packages using ``--pre`` flag, but it does not have the possibility of selectively using this flag to only one package. In order to implement our desired behaviour, we need the case where only ``apache-airflow`` is considered @@ -133,27 +165,11 @@ are providers that are released together with the version of Airflow they depend with the same version number as the Airflow version they depend on, but with a different suffix. For example ``apache-airflow-providers-common-io==2.8.0.dev0`` is a chicken-egg provider for ``apache-airflow==2.8.0.dev0``. -However - we should not release those providers to ``pypi``, so in order to allow our CI to work with -pre-release versions and perform both - constraint generation and image releasing, we introduced workarounds -in our tooling where in case we build a pre-release version of Airflow, we will locally build the -chicken-egg providers from sources and they are installed from local directory instead of from PyPI. - -This is controlled by ``chicken_egg_providers`` property in Selective Checks - and our CI will automatically -build and use those chicken-egg providers during the CI process if pre-release version of Airflow is built. - -The code responsible for that is in ``src/airflow_breeze/utils/selective_checks.py``: - -.. code-block:: python - - @cached_property - def chicken_egg_providers(self) -> str: - """Space separated list of providers with chicken-egg problem and should be built from sources.""" - return "common.io" - -This list should be kept here until the official version of Airflow the chicken-egg-providers depend on -is released and the version of airflow is updated in the ``main`` and ``v2-X-Y`` branch to ``2.X+1.0.dev0`` -and ``2.X.1.dev0`` respectively. After that the chicken-egg providers will be correctly installed because -both ``2.X.1.dev0`` and ``2.X+1.0.dev0`` are considered by ``pip`` as ``>2.X.0`` (unlike ``2.X.0.dev0``). +However - we should not release providers with such exclusion to ``pypi``, so in order to allow our +CI to work with pre-release versions and perform both - constraint generation and image releasing, +we introduced workarounds in our tooling where in case we build a pre-release version of Airflow, +we will locally build the chicken-egg providers from sources and they are installed from local +directory instead of from PyPI. This workaround might be removed if ``pip`` implements the possibility of selectively using ``--pre`` flag for only one package (Which is foreseen as a possibility in the packaging specification but not implemented @@ -343,43 +359,6 @@ main Airflow documentation that involves some steps with the providers is also w breeze build-docs --package-filter apache-airflow-providers-<NEW_PROVIDER> breeze build-docs --package-filter apache-airflow - -Suspending providers -==================== - -As of April 2023, we have the possibility to suspend individual providers, so that they are not holding -back dependencies for Airflow and other providers. The process of suspending providers is described -in `description of the process <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#suspending-releases-for-providers>`_ - -Technically, suspending a provider is done by setting ``suspended : true``, in the provider.yaml of the -provider. This should be followed by committing the change and either automatically or manually running -pre-commit checks that will either update derived configuration files or ask you to update them manually. -Note that you might need to run pre-commit several times until all the static checks pass, -because modification from one pre-commit might impact other pre-commits. - -If you have pre-commit installed, pre-commit will be run automatically on commit. If you want to run it -manually after commit, you can run it via ``breeze static-checks --last-commit`` some of the tests might fail -because suspension of the provider might cause changes in the dependencies, so if you see errors about -missing dependencies imports, non-usable classes etc., you will need to build the CI image locally -via ``breeze build-image --python 3.8 --upgrade-to-newer-dependencies`` after the first pre-commit run -and then run the static checks again. - -If you want to be absolutely sure to run all static checks you can always do this via -``pre-commit run --all-files`` or ``breeze static-checks --all-files``. - -Some of the manual modifications you will have to do (in both cases ``pre-commit`` will guide you on what -to do. - -* You will have to run ``breeze setup regenerate-command-images`` to regenerate breeze help files -* you will need to update ``extra-packages-ref.rst`` and in some cases - when mentioned there explicitly - - ``setup.py`` to remove the provider from list of dependencies. - -What happens under-the-hood as a result, is that ``generated/providers.json`` file is updated with -the information about available providers and their dependencies and it is used by our tooling to -exclude suspended providers from all relevant parts of the build and CI system (such as building CI image -with dependencies, building documentation, running tests, etc.) - - Additional changes needed for cross-dependent providers ======================================================= @@ -470,6 +449,52 @@ The fix for that is to turn the feature into an optional provider feature (in th Those tests should be adjusted (but this is not very likely to happen, because the tests are using only the most common providers that we will not be likely to suspend). +Bumping min airflow version +=========================== + +We regularly bump min airflow version for all providers we release. This bump is done according to our +`Provider policies <https://github.com/apache/airflow/blob/main/PROVIDERS.rst>`_ and it is only applied +to non-suspended/removed providers. We are running basic import compatibility checks in our CI and +the compatibility checks should be updated when min airflow version is updated. + +Details on how this should be done are described in +`Provider policies <https://github.com/apache/airflow/blob/main/dev/README_RELEASE_PROVIDER_PACKAGES.md>`_ + +Suspending providers +==================== + +As of April 2023, we have the possibility to suspend individual providers, so that they are not holding +back dependencies for Airflow and other providers. The process of suspending providers is described +in `description of the process <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#suspending-releases-for-providers>`_ + +Technically, suspending a provider is done by setting ``suspended : true``, in the provider.yaml of the +provider. This should be followed by committing the change and either automatically or manually running +pre-commit checks that will either update derived configuration files or ask you to update them manually. +Note that you might need to run pre-commit several times until all the static checks pass, +because modification from one pre-commit might impact other pre-commits. + +If you have pre-commit installed, pre-commit will be run automatically on commit. If you want to run it +manually after commit, you can run it via ``breeze static-checks --last-commit`` some of the tests might fail +because suspension of the provider might cause changes in the dependencies, so if you see errors about +missing dependencies imports, non-usable classes etc., you will need to build the CI image locally +via ``breeze build-image --python 3.8 --upgrade-to-newer-dependencies`` after the first pre-commit run +and then run the static checks again. + +If you want to be absolutely sure to run all static checks you can always do this via +``pre-commit run --all-files`` or ``breeze static-checks --all-files``. + +Some of the manual modifications you will have to do (in both cases ``pre-commit`` will guide you on what +to do. + +* You will have to run ``breeze setup regenerate-command-images`` to regenerate breeze help files +* you will need to update ``extra-packages-ref.rst`` and in some cases - when mentioned there explicitly - + ``setup.py`` to remove the provider from list of dependencies. + +What happens under-the-hood as a result, is that ``generated/providers.json`` file is updated with +the information about available providers and their dependencies and it is used by our tooling to +exclude suspended providers from all relevant parts of the build and CI system (such as building CI image +with dependencies, building documentation, running tests, etc.) + Resuming providers ================== diff --git a/dev/README_RELEASE_AIRFLOW.md b/dev/README_RELEASE_AIRFLOW.md index b060aa345e..2074e88995 100644 --- a/dev/README_RELEASE_AIRFLOW.md +++ b/dev/README_RELEASE_AIRFLOW.md @@ -258,6 +258,9 @@ The Release Candidate artifacts we vote upon should be the exact ones we vote ag - Set your version in `airflow/__init__.py`, `airflow/api_connexion/openapi/v1.yaml` and `docs/` (without the RC tag). - Add supported Airflow version to `./scripts/ci/pre_commit/pre_commit_supported_versions.py` and let pre-commit do the job. - Replace the version in `README.md` and verify that installation instructions work fine. +- Add entry for default python version to `BASE_PROVIDERS_COMPATIBILITY_CHECKS` in `src/airflow_breeze/global_constants.py` + with the new Airflow version, and empty exclusion for providers. This list should be updated later when providers + with minimum version for the next version of Airflow will be added in the future. - Check `Apache Airflow is tested with` (stable version) in `README.md` has the same tested versions as in the tip of the stable branch in `dev/breeze/src/airflow_breeze/global_constants.py` - Build the release notes: @@ -977,6 +980,8 @@ This includes: - Sync `RELEASE_NOTES.rst` (including deleting relevant `newsfragments`) and `README.md` changes. - Updating `Dockerfile` with the new version. - Updating `airflow_bug_report.yml` issue template in `.github/ISSUE_TEMPLATE/` with the new version. +- For the first MINOR (X.Y.0) release - remove all providers from ``CHICKEN_EGG_PROVIDERS`` list + in ``src/airflow_breeze/global_constants.py`` that have >= ``X.Y.0`` in the corresponding provider.yaml file. ## Update default Airflow version in the helm chart diff --git a/dev/README_RELEASE_PROVIDER_PACKAGES.md b/dev/README_RELEASE_PROVIDER_PACKAGES.md index 1f116212cd..6a7e25f150 100644 --- a/dev/README_RELEASE_PROVIDER_PACKAGES.md +++ b/dev/README_RELEASE_PROVIDER_PACKAGES.md @@ -79,8 +79,8 @@ You can read more about the command line tools used to generate the packages in # Bump min Airflow version for providers -1. Update `provider-airflow-compatibility-check` in `.github/workflows/ci.yml` to check -compatibility with the new minimum version. +1. Update `BASE_PROVIDERS_COMPATIBILITY_CHECKS` in `src/airflow_breeze/global_constants.py` to remove +the versions of Airflow that are not applicable any more. 2. Check if Breeze unit tests in `dev/breeze/tests/test_packages.py` need adjustments. This is done by simply searching and replacing old version occurrences with newer one. For example 2.5.0 to 2.6.0 diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py index ad77e97b79..3a679360ea 100644 --- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py +++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py @@ -862,35 +862,37 @@ SDIST_INSTALL_PROGRESS_REGEXP = r"Processing .*|Requirement already satisfied:.* name="install-provider-packages", help="Installs provider packages that can be found in dist.", ) -@option_use_airflow_version -@option_airflow_extras @option_airflow_constraints_reference -@option_skip_constraints -@option_install_selected_providers -@option_installation_package_format +@option_airflow_extras @option_debug_release_management -@option_github_repository -@option_verbose +@option_debug_resources @option_dry_run +@option_github_repository +@option_include_success_outputs +@option_install_selected_providers +@option_installation_package_format +@option_parallelism +@option_python @option_run_in_parallel @option_skip_cleanup -@option_parallelism -@option_debug_resources -@option_include_success_outputs +@option_skip_constraints +@option_use_airflow_version +@option_verbose def install_provider_packages( - use_airflow_version: str | None, airflow_constraints_reference: str, - skip_constraints: bool, - install_selected_providers: str, airflow_extras: str, debug: bool, - package_format: str, + debug_resources: bool, github_repository: str, + include_success_outputs: bool, + install_selected_providers: str, + package_format: str, + python: str, + parallelism: int, run_in_parallel: bool, skip_cleanup: bool, - parallelism: int, - debug_resources: bool, - include_success_outputs: bool, + skip_constraints: bool, + use_airflow_version: str | None, ): perform_environment_checks() fix_ownership_using_docker() @@ -898,7 +900,7 @@ def install_provider_packages( shell_params = ShellParams( mount_sources=MOUNT_SELECTED, github_repository=github_repository, - python=DEFAULT_PYTHON_MAJOR_MINOR_VERSION, + python=python, use_airflow_version=use_airflow_version, airflow_extras=airflow_extras, airflow_constraints_reference=airflow_constraints_reference, @@ -992,27 +994,29 @@ def install_provider_packages( name="verify-provider-packages", help="Verifies if all provider code is following expectations for providers.", ) -@option_use_airflow_version -@option_airflow_extras @option_airflow_constraints_reference -@option_skip_constraints -@option_use_packages_from_dist -@option_install_selected_providers -@option_installation_package_format +@option_airflow_extras @option_debug_release_management +@option_dry_run @option_github_repository +@option_install_selected_providers +@option_installation_package_format +@option_python +@option_skip_constraints +@option_use_airflow_version +@option_use_packages_from_dist @option_verbose -@option_dry_run def verify_provider_packages( - use_airflow_version: str | None, airflow_constraints_reference: str, - skip_constraints: bool, - install_selected_providers: str, airflow_extras: str, - use_packages_from_dist: bool, debug: bool, - package_format: str, github_repository: str, + install_selected_providers: str, + package_format: str, + python: str, + skip_constraints: bool, + use_airflow_version: str | None, + use_packages_from_dist: bool, ): if install_selected_providers and not use_packages_from_dist: get_console().print("Forcing use_packages_from_dist as installing selected_providers is set") @@ -1025,7 +1029,7 @@ def verify_provider_packages( executor="SequentialExecutor", mount_sources=MOUNT_SELECTED, github_repository=github_repository, - python=DEFAULT_PYTHON_MAJOR_MINOR_VERSION, + python=python, use_airflow_version=use_airflow_version, airflow_extras=airflow_extras, airflow_constraints_reference=airflow_constraints_reference, diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py index 207b02f63e..ea9ec8daa9 100644 --- a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py +++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py @@ -64,6 +64,7 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = { { "name": "Provider verification flags", "options": [ + "--python", "--use-airflow-version", "--install-selected-providers", "--airflow-constraints-reference", @@ -80,6 +81,7 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = { { "name": "Provider installation flags", "options": [ + "--python", "--use-airflow-version", "--install-selected-providers", "--airflow-constraints-reference", diff --git a/dev/breeze/src/airflow_breeze/global_constants.py b/dev/breeze/src/airflow_breeze/global_constants.py index 874de94618..e61abf822e 100644 --- a/dev/breeze/src/airflow_breeze/global_constants.py +++ b/dev/breeze/src/airflow_breeze/global_constants.py @@ -24,6 +24,7 @@ import platform from enum import Enum from functools import lru_cache from pathlib import Path +from typing import Iterable from airflow_breeze.utils.host_info_utils import Architecture from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT @@ -449,6 +450,40 @@ DEFAULT_EXTRAS = [ # END OF EXTRAS LIST UPDATED BY PRE COMMIT ] +CHICKEN_EGG_PROVIDERS = " ".join( + [ + "common.io", + ] +) + + +def _exclusion(providers: Iterable[str]) -> str: + return " ".join([f"apache_airflow_providers_{provider.replace('.', '_')}*" for provider in providers]) + + +BASE_PROVIDERS_COMPATIBILITY_CHECKS: list[dict[str, str]] = [ + { + "python-version": "3.8", + "airflow-version": "2.5.0", + "remove-providers": _exclusion(["openlineage", "common.io"]), + }, + { + "python-version": "3.8", + "airflow-version": "2.6.0", + "remove-providers": _exclusion(["openlineage", "common.io", "cohere"]), + }, + { + "python-version": "3.9", + "airflow-version": "2.6.0", + "remove-providers": _exclusion(["openlineage", "common.io"]), + }, + { + "python-version": "3.8", + "airflow-version": "2.7.1", + "remove-providers": _exclusion(["common.io"]), + }, +] + class GithubEvents(Enum): PULL_REQUEST = "pull_request" diff --git a/dev/breeze/src/airflow_breeze/utils/custom_param_types.py b/dev/breeze/src/airflow_breeze/utils/custom_param_types.py index bd2d35146b..033fe99eca 100644 --- a/dev/breeze/src/airflow_breeze/utils/custom_param_types.py +++ b/dev/breeze/src/airflow_breeze/utils/custom_param_types.py @@ -225,4 +225,6 @@ class UseAirflowVersionType(BetterChoice): def convert(self, value, param, ctx): if re.match(r"^\d*\.\d*\.\d*\S*$", value): return value + if re.match(r"^https://.*$", value): + return value return super().convert(value, param, ctx) diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py b/dev/breeze/src/airflow_breeze/utils/selective_checks.py index eba3023a6c..dba6000902 100644 --- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py +++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py @@ -27,6 +27,8 @@ from typing import Any, Dict, List, TypeVar from airflow_breeze.global_constants import ( ALL_PYTHON_MAJOR_MINOR_VERSIONS, APACHE_AIRFLOW_GITHUB_REPOSITORY, + BASE_PROVIDERS_COMPATIBILITY_CHECKS, + CHICKEN_EGG_PROVIDERS, COMMITTERS, CURRENT_KUBERNETES_VERSIONS, CURRENT_MSSQL_VERSIONS, @@ -1023,4 +1025,15 @@ class SelectiveChecks: @cached_property def chicken_egg_providers(self) -> str: """Space separated list of providers with chicken-egg problem and should be built from sources.""" - return "common.io" + return CHICKEN_EGG_PROVIDERS + + @cached_property + def providers_compatibility_checks(self) -> str: + """Provider compatibility input checks for the current run. Filter out python versions not built""" + return json.dumps( + [ + check + for check in BASE_PROVIDERS_COMPATIBILITY_CHECKS + if check["python-version"] in self.python_versions + ] + ) diff --git a/dev/breeze/tests/test_selective_checks.py b/dev/breeze/tests/test_selective_checks.py index d7b5dce4cf..6198cc59cd 100644 --- a/dev/breeze/tests/test_selective_checks.py +++ b/dev/breeze/tests/test_selective_checks.py @@ -16,6 +16,7 @@ # under the License. from __future__ import annotations +import json import re from functools import lru_cache from typing import Any @@ -23,7 +24,12 @@ from typing import Any import pytest from rich.console import Console -from airflow_breeze.global_constants import COMMITTERS, GithubEvents +from airflow_breeze.global_constants import ( + BASE_PROVIDERS_COMPATIBILITY_CHECKS, + COMMITTERS, + DEFAULT_PYTHON_MAJOR_MINOR_VERSION, + GithubEvents, +) from airflow_breeze.utils.selective_checks import ALL_CI_SELECTIVE_TEST_TYPES, SelectiveChecks ANSI_COLORS_MATCHER = re.compile(r"(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]") @@ -1490,3 +1496,37 @@ def test_has_migrations(files: tuple[str, ...], has_migrations: bool): ) ) assert_outputs_are_printed({"has-migrations": str(has_migrations).lower()}, str(stderr)) + + [email protected]( + "labels, expected_outputs,", + [ + pytest.param( + (), + { + "providers-compatibility-checks": json.dumps( + [ + check + for check in BASE_PROVIDERS_COMPATIBILITY_CHECKS + if check["python-version"] == DEFAULT_PYTHON_MAJOR_MINOR_VERSION + ] + ), + }, + id="Regular tests", + ), + pytest.param( + ("full tests needed",), + {"providers-compatibility-checks": json.dumps(BASE_PROVIDERS_COMPATIBILITY_CHECKS)}, + id="full tests", + ), + ], +) +def test_provider_compatibility_checks(labels: tuple[str, ...], expected_outputs: dict[str, str]): + stderr = SelectiveChecks( + files=(), + commit_ref="HEAD", + github_event=GithubEvents.PULL_REQUEST, + pr_labels=labels, + default_branch="main", + ) + assert_outputs_are_printed(expected_outputs, str(stderr)) diff --git a/images/breeze/output_release-management_install-provider-packages.svg b/images/breeze/output_release-management_install-provider-packages.svg index c0eb8ff044..ed5d42f8d9 100644 --- a/images/breeze/output_release-management_install-provider-packages.svg +++ b/images/breeze/output_release-management_install-provider-packages.svg @@ -1,4 +1,4 @@ -<svg class="rich-terminal" viewBox="0 0 1482 1001.5999999999999" xmlns="http://www.w3.org/2000/svg"> +<svg class="rich-terminal" viewBox="0 0 1482 1074.8" xmlns="http://www.w3.org/2000/svg"> <!-- Generated with Rich https://www.textualize.io --> <style> @@ -37,13 +37,13 @@ .breeze-release-management-install-provider-packages-r3 { fill: #c5c8c6;font-weight: bold } .breeze-release-management-install-provider-packages-r4 { fill: #68a0b3;font-weight: bold } .breeze-release-management-install-provider-packages-r5 { fill: #868887 } -.breeze-release-management-install-provider-packages-r6 { fill: #8d7b39 } -.breeze-release-management-install-provider-packages-r7 { fill: #98a84b;font-weight: bold } +.breeze-release-management-install-provider-packages-r6 { fill: #98a84b;font-weight: bold } +.breeze-release-management-install-provider-packages-r7 { fill: #8d7b39 } </style> <defs> <clipPath id="breeze-release-management-install-provider-packages-clip-terminal"> - <rect x="0" y="0" width="1463.0" height="950.5999999999999" /> + <rect x="0" y="0" width="1463.0" height="1023.8" /> </clipPath> <clipPath id="breeze-release-management-install-provider-packages-line-0"> <rect x="0" y="1.5" width="1464" height="24.65"/> @@ -159,9 +159,18 @@ <clipPath id="breeze-release-management-install-provider-packages-line-37"> <rect x="0" y="904.3" width="1464" height="24.65"/> </clipPath> +<clipPath id="breeze-release-management-install-provider-packages-line-38"> + <rect x="0" y="928.7" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-release-management-install-provider-packages-line-39"> + <rect x="0" y="953.1" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-release-management-install-provider-packages-line-40"> + <rect x="0" y="977.5" width="1464" height="24.65"/> + </clipPath> </defs> - <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="999.6" rx="8"/><text class="breeze-release-management-install-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management install-provider-packages</text> + <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1072.8" rx="8"/><text class="breeze-release-management-install-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management install-provider-packages</text> <g transform="translate(26,22)"> <circle cx="0" cy="0" r="7" fill="#ff5f57"/> <circle cx="22" cy="0" r="7" fill="#febc2e"/> @@ -177,39 +186,42 @@ </text><text class="breeze-release-management-install-provider-packages-r1" x="12.2" y="93.2" textLength="646.6" clip-path="url(#breeze-release-management-install-provider-packages-line-3)">Installs provider packages that can be found in dist.</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-3)"> </text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-4)"> </text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-5)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="142" textLength="353.8" clip-path="url(#breeze-release-management-install-provider-packages-line-5)"> Provider installation flags </text><text class="breeze-release-management-install-provider-pack [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-6)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-6)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="166.4" textLength="48.8" [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-7)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="190.8" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-7)">`wheel`, or `sdist` if Airflow should be removed, installed from [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-8)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="215.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-8)">or sdist packages available in dist folder respectively. Implies &# [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-9)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-9)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="488" y="239.6" textLength="73.2" [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-10)">│</text><text class="breeze-release-management-install-provider-packages-r6" x="475.8" y="264" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-10)">(none | wheel | sdist | <airflow_version>)       [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-11)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-11)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="288.4" textLength="97.6 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-12)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-12)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="488" y="312.8" textLength="48.8 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-13)">│</text><text class="breeze-release-management-install-provider-packages-r6" x="475.8" y="337.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-13)">(TEXT)                 &# [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-14)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-14)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="361.6" textLength="97.6 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-15)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="386" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-15)">specify constraints for the installed version and to find newer  [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-16)">│</text><text class="breeze-release-management-install-provider-packages-r6" x="475.8" y="410.4" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-16)">(TEXT)                 &# [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-17)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-17)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="434.8" textLength="97.6 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-18)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-18)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="459.2" textLength="97.6 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-19)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="483.6" textLength="658.8" clip-path="url(#breeze-release-management-install-provider-packages-line-19)">[default: wheel]                [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-20)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-20)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="508" textLength="61" clip-p [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="532.4" textLength="73.2 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="556.8" textLength="85.4 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="581.2" textLength="585.6" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">[default: apache/airflow]             &# [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="605.6" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-24)"> -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="630" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="630" textLength="219.6" clip-path="url(#breeze-release-management-install-provider-packages-line-25)"> Parallel running </text><text class="breeze-release-management-install-provider-packages-r5" x="24 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="654.4" textLength="48.8 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="678.8" textLength="146. [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">│</text><text class="breeze-release-management-install-provider-packages-r6" x="378.2" y="703.2" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">(INTEGER RANGE)               &# [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="378.2" y="727.6" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">[default: 4; 1<=x<=8]             [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="752" textLength="61" clip-p [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="776.4" textLength="97.6 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="800.8" textLength="73.2 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="825.2" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)"> -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="849.6" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="849.6" textLength="195.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)"> Common options </text><text class="breeze-release-management-install-provider-packages-r5" x=" [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="874" textLength="97.6" clip [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="898.4" textLength="48.8 [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="922.8" textLength="61" [...] -</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="947.2" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-38)"> +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-6)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-6)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="166.4" textLength="85.4" [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-7)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="190.8" textLength="732" clip-path="url(#breeze-release-management-install-provider-packages-line-7)">(>3.8< | 3.9 | 3.10 | 3.11)         [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-8)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="215.2" textLength="732" clip-path="url(#breeze-release-management-install-provider-packages-line-8)">[default: 3.8]                 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-9)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-9)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="239.6" textLength="48.8" [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-10)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="264" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-10)">`wheel`, or `sdist` if Airflow should be removed, installed from  [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-11)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="288.4" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-11)">or sdist packages available in dist folder respectively. Implies  [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-12)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-12)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="488" y="312.8" textLength="73.2 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-13)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="337.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-13)">(none | wheel | sdist | <airflow_version>)     &# [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-14)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-14)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="361.6" textLength="97.6 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-15)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="386" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-15)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="488" y="386" textLength="48.8" clip [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-16)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="410.4" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-16)">(TEXT)                 &# [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-17)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-17)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="434.8" textLength="97.6 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-18)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="459.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-18)">specify constraints for the installed version and to find newer&# [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-19)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="483.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-19)">(TEXT)                 &# [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-20)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-20)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="508" textLength="97.6" clip [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="532.4" textLength="97.6 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="556.8" textLength="658.8" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">[default: wheel]                [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="581.2" textLength="61" [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="605.6" textLength="73.2 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="630" textLength="85.4" clip [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="654.4" textLength="585.6" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">[default: apache/airflow]             &# [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="678.8" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)"> +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="703.2" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="703.2" textLength="219.6" clip-path="url(#breeze-release-management-install-provider-packages-line-28)"> Parallel running </text><text class="breeze-release-management-install-provider-packages-r5" x [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="727.6" textLength="48.8 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="752" textLength="146.4" cli [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="378.2" y="776.4" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">(INTEGER RANGE)               &# [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="378.2" y="800.8" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">[default: 4; 1<=x<=8]             [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="825.2" textLength="61" [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="849.6" textLength="97.6 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="874" textLength="73.2" clip [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="898.4" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)"> +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="922.8" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="922.8" textLength="195.2" clip-path="url(#breeze-release-management-install-provider-packages-line-37)"> Common options </text><text class="breeze-release-management-install-provider-packages-r5" x=" [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="947.2" textLength="48.8 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="971.6" textLength="97.6 [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="996" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="996" textLength="61" clip-p [...] +</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1020.4" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-41)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...] </text> </g> </g> diff --git a/images/breeze/output_release-management_install-provider-packages.txt b/images/breeze/output_release-management_install-provider-packages.txt index b36dc86e24..1eee16ae07 100644 --- a/images/breeze/output_release-management_install-provider-packages.txt +++ b/images/breeze/output_release-management_install-provider-packages.txt @@ -1 +1 @@ -05ff214ada04958a95f2aedc1953079e +ac0c99803b194f779cce535861eeb5b5 diff --git a/images/breeze/output_release-management_verify-provider-packages.svg b/images/breeze/output_release-management_verify-provider-packages.svg index 6e51a80184..e0d38b4d9d 100644 --- a/images/breeze/output_release-management_verify-provider-packages.svg +++ b/images/breeze/output_release-management_verify-provider-packages.svg @@ -1,4 +1,4 @@ -<svg class="rich-terminal" viewBox="0 0 1482 830.8" xmlns="http://www.w3.org/2000/svg"> +<svg class="rich-terminal" viewBox="0 0 1482 904.0" xmlns="http://www.w3.org/2000/svg"> <!-- Generated with Rich https://www.textualize.io --> <style> @@ -37,13 +37,13 @@ .breeze-release-management-verify-provider-packages-r3 { fill: #c5c8c6;font-weight: bold } .breeze-release-management-verify-provider-packages-r4 { fill: #68a0b3;font-weight: bold } .breeze-release-management-verify-provider-packages-r5 { fill: #868887 } -.breeze-release-management-verify-provider-packages-r6 { fill: #8d7b39 } -.breeze-release-management-verify-provider-packages-r7 { fill: #98a84b;font-weight: bold } +.breeze-release-management-verify-provider-packages-r6 { fill: #98a84b;font-weight: bold } +.breeze-release-management-verify-provider-packages-r7 { fill: #8d7b39 } </style> <defs> <clipPath id="breeze-release-management-verify-provider-packages-clip-terminal"> - <rect x="0" y="0" width="1463.0" height="779.8" /> + <rect x="0" y="0" width="1463.0" height="853.0" /> </clipPath> <clipPath id="breeze-release-management-verify-provider-packages-line-0"> <rect x="0" y="1.5" width="1464" height="24.65"/> @@ -138,9 +138,18 @@ <clipPath id="breeze-release-management-verify-provider-packages-line-30"> <rect x="0" y="733.5" width="1464" height="24.65"/> </clipPath> +<clipPath id="breeze-release-management-verify-provider-packages-line-31"> + <rect x="0" y="757.9" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-release-management-verify-provider-packages-line-32"> + <rect x="0" y="782.3" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-release-management-verify-provider-packages-line-33"> + <rect x="0" y="806.7" width="1464" height="24.65"/> + </clipPath> </defs> - <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="828.8" rx="8"/><text class="breeze-release-management-verify-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management verify-provider-packages</text> + <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="902" rx="8"/><text class="breeze-release-management-verify-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management verify-provider-packages</text> <g transform="translate(26,22)"> <circle cx="0" cy="0" r="7" fill="#ff5f57"/> <circle cx="22" cy="0" r="7" fill="#febc2e"/> @@ -156,32 +165,35 @@ </text><text class="breeze-release-management-verify-provider-packages-r1" x="12.2" y="93.2" textLength="854" clip-path="url(#breeze-release-management-verify-provider-packages-line-3)">Verifies if all provider code is following expectations for providers.</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-3)"> </text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-4)"> </text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-5)">╭─</text><text class="breeze-release-management-verify-provider-packages-r5" x="24.4" y="142" textLength="353.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-5)"> Provider verification flags </text><text class="breeze-release-management-verify-provider-packages- [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-6)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-6)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="166.4" textLength="48.8" clip- [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-7)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="190.8" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-7)">`wheel`, or `sdist` if Airflow should be removed, installed from w [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-8)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="215.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-8)">or sdist packages available in dist folder respectively. Implies   [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-9)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="475.8" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-9)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="488" y="239.6" textLength="73.2" clip- [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-10)">│</text><text class="breeze-release-management-verify-provider-packages-r6" x="475.8" y="264" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-10)">(none | wheel | sdist | <airflow_version>)       [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-11)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-11)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="288.4" textLength="97.6" cli [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-12)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="475.8" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-12)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="488" y="312.8" textLength="48.8" cli [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-13)">│</text><text class="breeze-release-management-verify-provider-packages-r6" x="475.8" y="337.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-13)">(TEXT)                   [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-14)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-14)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="361.6" textLength="97.6" cli [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-15)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="386" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-15)">specify constraints for the installed version and to find newer depe [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-16)">│</text><text class="breeze-release-management-verify-provider-packages-r6" x="475.8" y="410.4" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-16)">(TEXT)                   [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-17)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-17)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="434.8" textLength="97.6" cli [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-18)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-18)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="459.2" textLength="48.8" cli [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-19)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="483.6" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-19)">folder when entering breeze.             [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-20)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-20)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="508" textLength="97.6" clip-path [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-21)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="532.4" textLength="658.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-21)">[default: wheel]                [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-22)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-22)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="556.8" textLength="61" clip- [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-23)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-23)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="581.2" textLength="73.2" cli [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-24)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-24)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="605.6" textLength="85.4" cli [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="630" textLength="585.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">[default: apache/airflow]               [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="654.4" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)"> -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="678.8" textLength="24.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)">╭─</text><text class="breeze-release-management-verify-provider-packages-r5" x="24.4" y="678.8" textLength="195.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)"> Common options </text><text class="breeze-release-management-verify-provider-packages-r5" x="219.6 [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="703.2" textLength="97.6" cli [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="727.6" textLength="48.8" cli [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="752" textLength="61" clip-path=" [...] -</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="776.4" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)"> +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-6)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-6)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="166.4" textLength="85.4" clip- [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-7)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="190.8" textLength="732" clip-path="url(#breeze-release-management-verify-provider-packages-line-7)">(>3.8< | 3.9 | 3.10 | 3.11)         & [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-8)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="215.2" textLength="732" clip-path="url(#breeze-release-management-verify-provider-packages-line-8)">[default: 3.8]                 [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-9)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-9)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="239.6" textLength="48.8" clip- [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-10)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="264" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-10)">`wheel`, or `sdist` if Airflow should be removed, installed from whe [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-11)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="288.4" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-11)">or sdist packages available in dist folder respectively. Implies  [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-12)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="475.8" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-12)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="488" y="312.8" textLength="73.2" cli [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-13)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="337.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-13)">(none | wheel | sdist | <airflow_version>)       [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-14)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-14)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="361.6" textLength="97.6" cli [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-15)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="475.8" y="386" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-15)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="488" y="386" textLength="48.8" clip-path [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-16)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="410.4" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-16)">(TEXT)                   [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-17)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-17)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="434.8" textLength="97.6" cli [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-18)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="459.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-18)">specify constraints for the installed version and to find newer  [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-19)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="483.6" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-19)">(TEXT)                   [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-20)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-20)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="508" textLength="97.6" clip-path [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-21)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-21)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="532.4" textLength="48.8" cli [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-22)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="556.8" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-22)">folder when entering breeze.             [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-23)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-23)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="581.2" textLength="97.6" cli [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-24)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="605.6" textLength="658.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-24)">[default: wheel]                [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="630" textLength="61" clip-path=" [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="654.4" textLength="73.2" cli [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="678.8" textLength="85.4" cli [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="703.2" textLength="585.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">[default: apache/airflow]               [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="727.6" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)"> +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="752" textLength="24.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">╭─</text><text class="breeze-release-management-verify-provider-packages-r5" x="24.4" y="752" textLength="195.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)"> Common options </text><text class="breeze-release-management-verify-provider-packages-r5" x="219.6" y= [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="776.4" textLength="48.8" cli [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="800.8" textLength="97.6" cli [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="825.2" textLength="61" clip- [...] +</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="849.6" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)"> </text> </g> </g> diff --git a/images/breeze/output_release-management_verify-provider-packages.txt b/images/breeze/output_release-management_verify-provider-packages.txt index 20070bef37..d2df831f20 100644 --- a/images/breeze/output_release-management_verify-provider-packages.txt +++ b/images/breeze/output_release-management_verify-provider-packages.txt @@ -1 +1 @@ -f7fe0f6356904e7c8ca2a3bdbe841f6e +0069813e3c7aa12e6728d350d48b442e diff --git a/scripts/in_container/_in_container_utils.sh b/scripts/in_container/_in_container_utils.sh index a321469dc1..289d346403 100644 --- a/scripts/in_container/_in_container_utils.sh +++ b/scripts/in_container/_in_container_utils.sh @@ -192,13 +192,53 @@ function install_released_airflow_version() { local constraints_reference constraints_reference="${2:-}" rm -rf "${AIRFLOW_SOURCES}"/*.egg-info + if [[ ${AIRFLOW_EXTRAS} != "" ]]; then + bracketed_airflow_extras="[${AIRFLOW_EXTRAS}]" + else + bracketed_airflow_extras="" + fi + if [[ ${version} != https://* ]]; then + airflow_package="apache-airflow" + airflow_version="==${version}" + else + airflow_package="${version}" + airflow_version="" + fi + if [[ ${constraints_reference} == "none" ]]; then + pip install "${airflow_package}${bracketed_airflow_extras}${airflow_version}" + else + local dependency_fix="" + # The pyopenssl is needed to downgrade pyopenssl for older airflow versions when using constraints + # Flask app builder has an optional pyopenssl transitive dependency, that causes import error when + # Pyopenssl is installed in a wrong version for Flask App Builder 4.1 and older. Adding PyOpenSSL + # directly as the dependency, forces downgrading of pyopenssl to the right version. Our constraint + # version has it pinned to the right version, but since it is not directly required, it is not + # downgraded when installing airflow and it is already installed in a newer version + if [[ ${USE_AIRFLOW_VERSION=} != "" ]]; then + dependency_fix="pyopenssl" + fi + if [[ ${constraints_reference} == "" ]]; then + constraints_location="https://raw.githubusercontent.com/${CONSTRAINTS_GITHUB_REPOSITORY}/constraints-${version}/constraints-${PYTHON_MAJOR_MINOR_VERSION}.txt" + else + constraints_location="https://raw.githubusercontent.com/${CONSTRAINTS_GITHUB_REPOSITORY}/${constraints_reference}/constraints-${PYTHON_MAJOR_MINOR_VERSION}.txt" + fi + pip install "${airflow_package}${bracketed_airflow_extras}${airflow_version}" ${dependency_fix} \ + --constraint "${constraints_location}" + fi +} + +function install_github_airflow_version() { + local url="${1}" + local constraints_reference + constraints_reference="${2:-}" + rm -rf "${AIRFLOW_SOURCES}"/*.egg-info if [[ ${AIRFLOW_EXTRAS} != "" ]]; then BRACKETED_AIRFLOW_EXTRAS="[${AIRFLOW_EXTRAS}]" else BRACKETED_AIRFLOW_EXTRAS="" fi if [[ ${constraints_reference} == "none" ]]; then - pip install "${airflow_package}${extras}" + pip install "${url}${extras}" else local dependency_fix="" # The pyopenssl is needed to downgrade pyopenssl for older airflow versions when using constraints @@ -210,12 +250,14 @@ function install_released_airflow_version() { if [[ ${USE_AIRFLOW_VERSION=} != "" ]]; then dependency_fix="pyopenssl" fi - - pip install "apache-airflow${BRACKETED_AIRFLOW_EXTRAS}==${version}" ${dependency_fix} \ - --constraint "https://raw.githubusercontent.com/${CONSTRAINTS_GITHUB_REPOSITORY}/constraints-${version}/constraints-${PYTHON_MAJOR_MINOR_VERSION}.txt" + if [[ ${constraints_reference} == "" ]]; then + constraints_location="https://raw.githubusercontent.com/${CONSTRAINTS_GITHUB_REPOSITORY}/constraints-${version}/constraints-${PYTHON_MAJOR_MINOR_VERSION}.txt" + else + constraints_location="https://raw.githubusercontent.com/${CONSTRAINTS_GITHUB_REPOSITORY}/${constraints_reference}/constraints-${PYTHON_MAJOR_MINOR_VERSION}.txt" + fi + pip install "${url}${BRACKETED_AIRFLOW_EXTRAS}" ${dependency_fix} --constraint "${constraints_location}" fi } - function install_local_airflow_with_eager_upgrade() { local extras extras="${1}"
