This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push: new 5d1b2715f7 Improve eager-upgrade additional requirements and constraint generation (#37745) 5d1b2715f7 is described below commit 5d1b2715f73a5aaca77f646de3ef945eb389272a Author: Jarek Potiuk <ja...@potiuk.com> AuthorDate: Tue Feb 27 19:24:42 2024 +0100 Improve eager-upgrade additional requirements and constraint generation (#37745) Generate constraints have been still using pip, but similarly as in case of the image building, we can use uv and it will speed up the generation. Also we can remove now eager-upgrade requirements, because for uv it seems that their resolving algorithm should cope a bit better than `pip` in case of some troublesome dependencies. --- Dockerfile.ci | 7 +- ...put_release-management_generate-constraints.svg | 70 +++++++------- ...put_release-management_generate-constraints.txt | 2 +- .../output_release-management_publish-docs.svg | 14 +-- .../output_release-management_publish-docs.txt | 2 +- ...tput_release-management_release-prod-images.svg | 34 +++---- ...tput_release-management_release-prod-images.txt | 2 +- .../airflow_breeze/commands/ci_image_commands.py | 11 +-- .../src/airflow_breeze/commands/common_options.py | 7 ++ .../commands/release_management_commands.py | 7 +- .../commands/release_management_commands_config.py | 21 +++-- .../src/airflow_breeze/params/shell_params.py | 2 + dev/breeze/src/airflow_breeze/utils/packages.py | 7 +- scripts/in_container/run_generate_constraints.py | 104 +++++++++++++++------ 14 files changed, 175 insertions(+), 115 deletions(-) diff --git a/Dockerfile.ci b/Dockerfile.ci index 8e927094e8..1898cfd57a 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -1281,12 +1281,7 @@ COPY --from=scripts install_airflow.sh /scripts/docker/ # force them on the main Airflow package. Currently we need no extra limits as PIP 23.1+ has much better # dependency resolution and we do not need to limit the versions of the dependencies # -# boto3 is limited to <1.34 because of aiobotocore that only works with 1.33 and we want to help -# `pip` to limit the versions it checks and limit backtracking, by explicitly specifying these limits -# when performing eager upgrade of dependencies - this way it won't even consider 1.34 versions of boto -# We should update it every time a new version of aiobotocore is released supporting 1.34 -# -ARG EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS="boto3>=1.33,<1.34" +ARG EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS="" ARG UPGRADE_TO_NEWER_DEPENDENCIES="false" ARG VERSION_SUFFIX_FOR_PYPI="" diff --git a/dev/breeze/doc/images/output_release-management_generate-constraints.svg b/dev/breeze/doc/images/output_release-management_generate-constraints.svg index e00db31f3f..96976e4d55 100644 --- a/dev/breeze/doc/images/output_release-management_generate-constraints.svg +++ b/dev/breeze/doc/images/output_release-management_generate-constraints.svg @@ -1,4 +1,4 @@ -<svg class="rich-terminal" viewBox="0 0 1482 928.4" xmlns="http://www.w3.org/2000/svg"> +<svg class="rich-terminal" viewBox="0 0 1482 952.8" xmlns="http://www.w3.org/2000/svg"> <!-- Generated with Rich https://www.textualize.io --> <style> @@ -43,7 +43,7 @@ <defs> <clipPath id="breeze-release-management-generate-constraints-clip-terminal"> - <rect x="0" y="0" width="1463.0" height="877.4" /> + <rect x="0" y="0" width="1463.0" height="901.8" /> </clipPath> <clipPath id="breeze-release-management-generate-constraints-line-0"> <rect x="0" y="1.5" width="1464" height="24.65"/> @@ -150,9 +150,12 @@ <clipPath id="breeze-release-management-generate-constraints-line-34"> <rect x="0" y="831.1" width="1464" height="24.65"/> </clipPath> +<clipPath id="breeze-release-management-generate-constraints-line-35"> + <rect x="0" y="855.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="926.4" rx="8"/><text class="breeze-release-management-generate-constraints-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management generate-constraints</text> + <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="950.8" rx="8"/><text class="breeze-release-management-generate-constraints-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management generate-constraints</text> <g transform="translate(26,22)"> <circle cx="0" cy="0" r="7" fill="#ff5f57"/> <circle cx="22" cy="0" r="7" fill="#febc2e"/> @@ -168,36 +171,37 @@ </text><text class="breeze-release-management-generate-constraints-r1" x="12.2" y="93.2" textLength="1000.4" clip-path="url(#breeze-release-management-generate-constraints-line-3)">Generates pinned constraint files with all extras from pyproject.toml in parallel.</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-3)"> </text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-4)"> </text><text class="breeze-release-management-generate-constraints-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-5)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="142" textLength="341.6" clip-path="url(#breeze-release-management-generate-constraints-line-5)"> Generate constraints flags </text><text class="breeze-release-management-generate-constraints-r5" x="366" y="142" t [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-6)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-6)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="166.4" textLength="73.2" clip-path="url(#breeze-re [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-7)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="190.8" textLength="963.8" clip-path="url(#breeze-release-management-generate-constraints-line-7)">(TEXT)                      [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-8)">│</text><text class="breeze-release-management-generate-constraints-r5" x="414.8" y="215.2" textLength="963.8" clip-path="url(#breeze-release-management-generate-constraints-line-8)">[default: latest]                  &# [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-9)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-9)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="239.6" textLength="85.4" clip-path="url(#breeze-re [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-10)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="264" textLength="732" clip-path="url(#breeze-release-management-generate-constraints-line-10)">(>3.8< | 3.9 | 3.10 | 3.11)            & [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-11)">│</text><text class="breeze-release-management-generate-constraints-r5" x="414.8" y="288.4" textLength="732" clip-path="url(#breeze-release-management-generate-constraints-line-11)">[default: 3.8]                    [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-12)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-12)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="312.8" textLength="97.6" clip-path="url(#breeze- [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-13)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="337.2" textLength="866.2" clip-path="url(#breeze-release-management-generate-constraints-line-13)">(constraints-source-providers | constraints | constraints-no-providers)</text><text class="breeze-release-mana [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-14)">│</text><text class="breeze-release-management-generate-constraints-r5" x="414.8" y="361.6" textLength="866.2" clip-path="url(#breeze-release-management-generate-constraints-line-14)">[default: constraints-source-providers]              &# [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="386" textLength="97.6" clip-path="url(#breeze-releas [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">│</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="410.4" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-16)">current_version and should be installed in CI from locally built packages  [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-17)">│</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="434.8" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-17)">current_version.dev0                  & [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-18)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="459.2" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-18)">(TEXT)                     [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="483.6" textLength="85.4" clip-path="url(#breeze- [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="508" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-20)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)"> -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="532.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-21)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="532.4" textLength="219.6" clip-path="url(#breeze-release-management-generate-constraints-line-21)"> Parallel running </text><text class="breeze-release-management-generate-constraints-r5" x="244" y="532.4" textLeng [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="556.8" textLength="48.8" clip-path="url(#breeze- [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="581.2" textLength="146.4" clip-path="url(#breeze [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="605.6" textLength="915" clip-path="url(#breeze-release-management-generate-constraints-line-24)">[default: 4; 1<=x<=8]                 [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="630" textLength="85.4" clip-path="url(#breeze-releas [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="654.4" textLength="951.6" clip-path="url(#breeze-release-management-generate-constraints-line-26)">[default: 3.8 3.9 3.10 3.11]              [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="678.8" textLength="61" clip-path="url(#breeze-re [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="703.2" textLength="73.2" clip-path="url(#breeze- [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="727.6" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-29)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)"> -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="752" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-30)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="752" textLength="195.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)"> Common options </text><text class="breeze-release-management-generate-constraints-r5" x="219.6" y="752" textLength="12 [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="776.4" textLength="97.6" clip-path="url(#breeze- [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="800.8" textLength="48.8" clip-path="url(#breeze- [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="825.2" textLength="85.4" clip-path="url(#breeze- [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="849.6" textLength="61" clip-path="url(#breeze-re [...] -</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="874" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-35)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)"> +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-6)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-6)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="166.4" textLength="97.6" clip-path="url(#breeze-re [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-7)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="190.8" textLength="866.2" clip-path="url(#breeze-release-management-generate-constraints-line-7)">(constraints-source-providers | constraints | constraints-no-providers)</text><text class="breeze-release-manage [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-8)">│</text><text class="breeze-release-management-generate-constraints-r5" x="414.8" y="215.2" textLength="866.2" clip-path="url(#breeze-release-management-generate-constraints-line-8)">[default: constraints-source-providers]               [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-9)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-9)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="239.6" textLength="97.6" clip-path="url(#breeze-re [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-10)">│</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="264" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-10)">current_version and should be installed in CI from locally built packages with [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-11)">│</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="288.4" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-11)">current_version.dev0                  & [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-12)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="312.8" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-12)">(TEXT)                     [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-13)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-13)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="337.2" textLength="85.4" clip-path="url(#breeze- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-14)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-14)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="361.6" textLength="73.2" clip-path="url(#breeze- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="386" textLength="963.8" clip-path="url(#breeze-release-management-generate-constraints-line-15)">(TEXT)                     &# [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">│</text><text class="breeze-release-management-generate-constraints-r5" x="414.8" y="410.4" textLength="963.8" clip-path="url(#breeze-release-management-generate-constraints-line-16)">[default: latest]                   [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-17)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-17)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="434.8" textLength="85.4" clip-path="url(#breeze- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-18)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="459.2" textLength="732" clip-path="url(#breeze-release-management-generate-constraints-line-18)">(>3.8< | 3.9 | 3.10 | 3.11)            [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">│</text><text class="breeze-release-management-generate-constraints-r5" x="414.8" y="483.6" textLength="732" clip-path="url(#breeze-release-management-generate-constraints-line-19)">[default: 3.8]                    [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="508" textLength="48.8" clip-path="url(#breeze-releas [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="532.4" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-21)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-21)"> +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="556.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-22)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="556.8" textLength="219.6" clip-path="url(#breeze-release-management-generate-constraints-line-22)"> Parallel running </text><text class="breeze-release-management-generate-constraints-r5" x="244" y="556.8" textLeng [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="581.2" textLength="73.2" clip-path="url(#breeze- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="605.6" textLength="146.4" clip-path="url(#breeze [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="630" textLength="915" clip-path="url(#breeze-release-management-generate-constraints-line-25)">[default: 4; 1<=x<=8]                 [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="654.4" textLength="85.4" clip-path="url(#breeze- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="678.8" textLength="951.6" clip-path="url(#breeze-release-management-generate-constraints-line-27)">[default: 3.8 3.9 3.10 3.11]              [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="703.2" textLength="48.8" clip-path="url(#breeze- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="727.6" textLength="61" clip-path="url(#breeze-re [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="752" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)"> +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="776.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-31)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="776.4" textLength="195.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)"> Common options </text><text class="breeze-release-management-generate-constraints-r5" x="219.6" y="776.4" textLeng [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="800.8" textLength="97.6" clip-path="url(#breeze- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="825.2" textLength="48.8" clip-path="url(#breeze- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="849.6" textLength="85.4" clip-path="url(#breeze- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="874" textLength="61" clip-path="url(#breeze-release- [...] +</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="898.4" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-36)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-36)"> </text> </g> </g> diff --git a/dev/breeze/doc/images/output_release-management_generate-constraints.txt b/dev/breeze/doc/images/output_release-management_generate-constraints.txt index 37b035c8d5..06c7108c2e 100644 --- a/dev/breeze/doc/images/output_release-management_generate-constraints.txt +++ b/dev/breeze/doc/images/output_release-management_generate-constraints.txt @@ -1 +1 @@ -587c21578af75c3c8fb9b4629e3577e1 +839a8605b97ed77f000b907f62752037 diff --git a/dev/breeze/doc/images/output_release-management_publish-docs.svg b/dev/breeze/doc/images/output_release-management_publish-docs.svg index 115fbb2d5a..55cca08f67 100644 --- a/dev/breeze/doc/images/output_release-management_publish-docs.svg +++ b/dev/breeze/doc/images/output_release-management_publish-docs.svg @@ -223,13 +223,13 @@ </text><text class="breeze-release-management-publish-docs-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-29)">│</text><text class="breeze-release-management-publish-docs-r8" x="488" y="727.6" textLength="951.6" clip-path="url(#breeze-release-management-publish-docs-line-29)">(TEXT)                          &# [...] </text><text class="breeze-release-management-publish-docs-r5" x="0" y="752" textLength="1464" clip-path="url(#breeze-release-management-publish-docs-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-30)"> </text><text class="breeze-release-management-publish-docs-r5" x="0" y="776.4" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs-line-31)">╭─</text><text class="breeze-release-management-publish-docs-r5" x="24.4" y="776.4" textLength="219.6" clip-path="url(#breeze-release-management-publish-docs-line-31)"> Parallel running </text><text class="breeze-release-management-publish-docs-r5" x="244" y="776.4" textLength="1195.6" clip-path="url(#breeze-relea [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-32)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-32)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="800.8" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-32) [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-33)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-33)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="825.2" textLength="146.4" clip-path="url(#breeze-release-management-publish-docs-line-33 [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-34)">│</text><text class="breeze-release-management-publish-docs-r8" x="378.2" y="849.6" textLength="915" clip-path="url(#breeze-release-management-publish-docs-line-34)">(INTEGER RANGE)                         [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-35)">│</text><text class="breeze-release-management-publish-docs-r5" x="378.2" y="874" textLength="915" clip-path="url(#breeze-release-management-publish-docs-line-35)">[default: 4; 1<=x<=8]                       [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-36)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-36)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="898.4" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-36)"> [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-37)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-37)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="922.8" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-37) [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-38)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-38)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="947.2" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-38) [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-32)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-32)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="800.8" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-32) [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-33)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-33)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="825.2" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-33) [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-34)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-34)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="849.6" textLength="146.4" clip-path="url(#breeze-release-management-publish-docs-line-34 [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-35)">│</text><text class="breeze-release-management-publish-docs-r8" x="378.2" y="874" textLength="915" clip-path="url(#breeze-release-management-publish-docs-line-35)">(INTEGER RANGE)                         [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-36)">│</text><text class="breeze-release-management-publish-docs-r5" x="378.2" y="898.4" textLength="915" clip-path="url(#breeze-release-management-publish-docs-line-36)">[default: 4; 1<=x<=8]                     & [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-37)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-37)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="922.8" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-37) [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-38)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-38)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="947.2" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-38)"> [...] </text><text class="breeze-release-management-publish-docs-r5" x="0" y="971.6" textLength="1464" clip-path="url(#breeze-release-management-publish-docs-line-39)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-39)"> </text><text class="breeze-release-management-publish-docs-r5" x="0" y="996" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs-line-40)">╭─</text><text class="breeze-release-management-publish-docs-r5" x="24.4" y="996" textLength="195.2" clip-path="url(#breeze-release-management-publish-docs-line-40)"> Common options </text><text class="breeze-release-management-publish-docs-r5" x="219.6" y="996" textLength="1220" clip-path="url(#breeze-release-manag [...] </text><text class="breeze-release-management-publish-docs-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-41)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-41)">-</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="1020.4" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line- [...] diff --git a/dev/breeze/doc/images/output_release-management_publish-docs.txt b/dev/breeze/doc/images/output_release-management_publish-docs.txt index 69a8235801..9529819686 100644 --- a/dev/breeze/doc/images/output_release-management_publish-docs.txt +++ b/dev/breeze/doc/images/output_release-management_publish-docs.txt @@ -1 +1 @@ -13ec64b7164df160ed21b6395cdd67ee +a6be6aad28ce6b74e0b3d075b03aabc4 diff --git a/dev/breeze/doc/images/output_release-management_release-prod-images.svg b/dev/breeze/doc/images/output_release-management_release-prod-images.svg index 5d958a3d3e..1106b97270 100644 --- a/dev/breeze/doc/images/output_release-management_release-prod-images.svg +++ b/dev/breeze/doc/images/output_release-management_release-prod-images.svg @@ -153,23 +153,23 @@ </text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-4)"> </text><text class="breeze-release-management-release-prod-images-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-5)">╭─</text><text class="breeze-release-management-release-prod-images-r5" x="24.4" y="142" textLength="317.2" clip-path="url(#breeze-release-management-release-prod-images-line-5)"> Release PROD IMAGE flags </text><text class="breeze-release-management-release-prod-images-r5" x="341.6" y="142" t [...] </text><text class="breeze-release-management-release-prod-images-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">│</text><text class="breeze-release-management-release-prod-images-r6" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">*</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="166.4" textLength="12.2" clip-path="url(#breeze-release-m [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="190.8" textLength="122" clip-path="url(#breeze-release-ma [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="215.2" textLength="61" clip-path="url(#breeze-release-man [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="239.6" textLength="73.2" clip-path="url(#breeze-release-m [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="264" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">all available python versions)               &# [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">│</text><text class="breeze-release-management-release-prod-images-r7" x="390.4" y="288.4" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">(3.8 | 3.9 | 3.10 | 3.11)              [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="312.8" textLength="73.2" clip-path="url(#breeze-release [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="337.2" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">built.                     & [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">│</text><text class="breeze-release-management-release-prod-images-r7" x="390.4" y="361.6" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64)           [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">│</text><text class="breeze-release-management-release-prod-images-r5" x="390.4" y="386" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">[default: linux/amd64,linux/arm64]                &# [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="410.4" textLength="61" clip-path="url(#breeze-release-m [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="434.8" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">updated). This should only be used if you release image for previous bran [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="459.2" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">Automatically set when rc/alpha/beta images are built.        & [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="483.6" textLength="85.4" clip-path="url(#breeze-release [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="508" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="508" textLength="97.6" clip-path="url(#breeze-release-manag [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="532.4" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">current_version and should be installed in CI from locally built packages with [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="556.8" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">current_version.dev0                    [...] -</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">│</text><text class="breeze-release-management-release-prod-images-r7" x="390.4" y="581.2" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">(TEXT)                     & [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-m [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="215.2" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">current_version and should be installed in CI from locally built packages with&# [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="239.6" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">current_version.dev0                   & [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">│</text><text class="breeze-release-management-release-prod-images-r7" x="390.4" y="264" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">(TEXT)                       [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="288.4" textLength="85.4" clip-path="url(#breeze-release [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="312.8" textLength="122" clip-path="url(#breeze-release- [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="337.2" textLength="73.2" clip-path="url(#breeze-release [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="361.6" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">all available python versions)               [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">│</text><text class="breeze-release-management-release-prod-images-r7" x="390.4" y="386" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">(3.8 | 3.9 | 3.10 | 3.11)              [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="410.4" textLength="73.2" clip-path="url(#breeze-release [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="434.8" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">built.                     & [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">│</text><text class="breeze-release-management-release-prod-images-r7" x="390.4" y="459.2" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64)           [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">│</text><text class="breeze-release-management-release-prod-images-r5" x="390.4" y="483.6" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">[default: linux/amd64,linux/arm64]                [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="508" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="508" textLength="61" clip-path="url(#breeze-release-managem [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="532.4" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">updated). This should only be used if you release image for previous bran [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="556.8" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">Automatically set when rc/alpha/beta images are built.        & [...] +</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="581.2" textLength="61" clip-path="url(#breeze-release-m [...] </text><text class="breeze-release-management-release-prod-images-r5" x="0" y="605.6" textLength="1464" clip-path="url(#breeze-release-management-release-prod-images-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-24)"> </text><text class="breeze-release-management-release-prod-images-r5" x="0" y="630" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-25)">╭─</text><text class="breeze-release-management-release-prod-images-r5" x="24.4" y="630" textLength="195.2" clip-path="url(#breeze-release-management-release-prod-images-line-25)"> Common options </text><text class="breeze-release-management-release-prod-images-r5" x="219.6" y="630" textLength="1220" c [...] </text><text class="breeze-release-management-release-prod-images-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-26)">│</text><text class="breeze-release-management-release-prod-images-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-26)">-</text><text class="breeze-release-management-release-prod-images-r4" x="36.6" y="654.4" textLength="48.8" clip-path="url(#breeze-relea [...] diff --git a/dev/breeze/doc/images/output_release-management_release-prod-images.txt b/dev/breeze/doc/images/output_release-management_release-prod-images.txt index 96ce03643f..9404ab7680 100644 --- a/dev/breeze/doc/images/output_release-management_release-prod-images.txt +++ b/dev/breeze/doc/images/output_release-management_release-prod-images.txt @@ -1 +1 @@ -7df532d7f563185a27b49f18286d2572 +08136e69a6e1f7e7522f330f2dd30250 diff --git a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py index 8213555c0a..b1dabb0a2a 100644 --- a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py +++ b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py @@ -71,6 +71,7 @@ from airflow_breeze.commands.common_options import ( option_python_versions, option_run_in_parallel, option_skip_cleanup, + option_use_uv, option_verbose, ) from airflow_breeze.commands.common_package_installation_options import ( @@ -252,14 +253,6 @@ option_eager_upgrade_additional_requirements = click.option( "(see `breeze ci find-backtracking-candidates`).", ) -option_use_uv_ci = click.option( - "--use-uv/--no-use-uv", - is_flag=True, - default=True, - help="Use uv instead of pip as packaging tool.", - envvar="USE_UV", -) - option_upgrade_to_newer_dependencies = click.option( "-u", "--upgrade-to-newer-dependencies", @@ -327,7 +320,7 @@ option_version_suffix_for_pypi_ci = click.option( @option_tag_as_latest @option_upgrade_on_failure @option_upgrade_to_newer_dependencies -@option_use_uv_ci +@option_use_uv @option_verbose @option_version_suffix_for_pypi_ci def build( diff --git a/dev/breeze/src/airflow_breeze/commands/common_options.py b/dev/breeze/src/airflow_breeze/commands/common_options.py index 03632bd601..af30a9d299 100644 --- a/dev/breeze/src/airflow_breeze/commands/common_options.py +++ b/dev/breeze/src/airflow_breeze/commands/common_options.py @@ -337,6 +337,13 @@ option_upgrade_boto = click.option( is_flag=True, envvar="UPGRADE_BOTO", ) +option_use_uv = click.option( + "--use-uv/--no-use-uv", + is_flag=True, + default=True, + help="Use uv instead of pip as packaging tool.", + envvar="USE_UV", +) option_pydantic = click.option( "--pydantic", help="Determines which pydantic should be used during tests.", 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 1f65ffaff0..9b700f6514 100644 --- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py +++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py @@ -61,6 +61,7 @@ from airflow_breeze.commands.common_options import ( option_run_in_parallel, option_skip_cleanup, option_use_airflow_version, + option_use_uv, option_verbose, option_version_suffix_for_pypi, ) @@ -980,11 +981,13 @@ def run_generate_constraints_in_parallel( @option_airflow_constraints_mode_ci @option_chicken_egg_providers @option_github_repository +@option_use_uv @option_verbose @option_dry_run @option_answer def generate_constraints( airflow_constraints_mode: str, + chicken_egg_providers: str, debug_resources: bool, github_repository: str, image_tag: str | None, @@ -993,7 +996,7 @@ def generate_constraints( python_versions: str, run_in_parallel: bool, skip_cleanup: bool, - chicken_egg_providers: str, + use_uv: bool, ): perform_environment_checks() check_remote_ghcr_io_commands() @@ -1035,6 +1038,7 @@ def generate_constraints( github_repository=github_repository, image_tag=image_tag, python=python, + use_uv=use_uv, ) for python in python_version_list ] @@ -1054,6 +1058,7 @@ def generate_constraints( github_repository=github_repository, image_tag=image_tag, python=python, + use_uv=use_uv, ) return_code, info = run_generate_constraints( shell_params=shell_params, 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 9300a7d642..4ac7fba7f4 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 @@ -217,21 +217,22 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = { { "name": "Generate constraints flags", "options": [ - "--image-tag", - "--python", "--airflow-constraints-mode", "--chicken-egg-providers", "--github-repository", + "--image-tag", + "--python", + "--use-uv", ], }, { "name": "Parallel running", "options": [ - "--run-in-parallel", + "--debug-resources", "--parallelism", "--python-versions", + "--run-in-parallel", "--skip-cleanup", - "--debug-resources", ], }, ], @@ -240,13 +241,13 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = { "name": "Release PROD IMAGE flags", "options": [ "--airflow-version", + "--chicken-egg-providers", + "--commit-sha", "--dockerhub-repo", - "--slim-images", "--limit-python", "--limit-platform", "--skip-latest", - "--commit-sha", - "--chicken-egg-providers", + "--slim-images", ], } ], @@ -265,11 +266,11 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = { { "name": "Parallel running", "options": [ - "--run-in-parallel", - "--parallelism", - "--skip-cleanup", "--debug-resources", "--include-success-outputs", + "--parallelism", + "--run-in-parallel", + "--skip-cleanup", ], }, ], diff --git a/dev/breeze/src/airflow_breeze/params/shell_params.py b/dev/breeze/src/airflow_breeze/params/shell_params.py index 01baf0d0e1..ced28c78d4 100644 --- a/dev/breeze/src/airflow_breeze/params/shell_params.py +++ b/dev/breeze/src/airflow_breeze/params/shell_params.py @@ -192,6 +192,7 @@ class ShellParams: upgrade_boto: bool = False use_airflow_version: str | None = None use_packages_from_dist: bool = False + use_uv: bool = False use_xdist: bool = False verbose: bool = False verbose_commands: bool = False @@ -531,6 +532,7 @@ class ShellParams: _set_var(_env, "PYDANTIC", self.pydantic) _set_var(_env, "USE_AIRFLOW_VERSION", self.use_airflow_version, "") _set_var(_env, "USE_PACKAGES_FROM_DIST", self.use_packages_from_dist) + _set_var(_env, "USE_UV", self.use_uv) _set_var(_env, "USE_XDIST", self.use_xdist) _set_var(_env, "VERBOSE", get_verbose()) _set_var(_env, "VERBOSE_COMMANDS", self.verbose_commands) diff --git a/dev/breeze/src/airflow_breeze/utils/packages.py b/dev/breeze/src/airflow_breeze/utils/packages.py index 307b4cc9c0..e908a29b01 100644 --- a/dev/breeze/src/airflow_breeze/utils/packages.py +++ b/dev/breeze/src/airflow_breeze/utils/packages.py @@ -403,7 +403,12 @@ def get_install_requirements(provider_id: str, version_suffix: str) -> str: """ def apply_version_suffix(install_clause: str) -> str: - if install_clause.startswith("apache-airflow") and ">=" in install_clause and version_suffix != "": + if ( + install_clause.startswith("apache-airflow") + and ">=" in install_clause + and version_suffix != "" + and not install_clause.endswith(version_suffix) + ): # This is workaround for `pip` way of handling `--pre` installation switch. It apparently does # not modify the meaning of `install_requires` to include also pre-releases, so we need to # modify our internal provider and airflow package version references to include all pre-releases diff --git a/scripts/in_container/run_generate_constraints.py b/scripts/in_container/run_generate_constraints.py index 9a77b17814..0d84c16ac3 100755 --- a/scripts/in_container/run_generate_constraints.py +++ b/scripts/in_container/run_generate_constraints.py @@ -109,6 +109,7 @@ class ConfigParams: github_actions: bool eager_upgrade_additional_requirements: str python: str + use_uv: bool @cached_property def constraints_dir(self) -> Path: @@ -128,22 +129,63 @@ class ConfigParams: def current_constraints_file(self) -> Path: return self.constraints_dir / f"{self.airflow_constraints_mode}-{self.python}.txt" + @cached_property + def get_freeze_command(self) -> list[str]: + if self.use_uv: + return ["uv", "pip", "freeze"] + else: + return ["pip", "freeze"] -def install_local_airflow_with_eager_upgrade( - config_params: ConfigParams, eager_upgrade_additional_requirements: str -) -> None: + @cached_property + def get_install_command(self) -> list[str]: + if self.use_uv: + return ["uv", "pip", "install"] + else: + return ["pip", "install"] + + @cached_property + def get_uninstall_command(self) -> list[str]: + if self.use_uv: + return ["uv", "pip", "uninstall"] + else: + return ["pip", "uninstall"] + + @cached_property + def get_install_args(self) -> list[str]: + if self.use_uv: + return [] + else: + return ["--root-user-action", "ignore"] + + @cached_property + def get_uninstall_args(self) -> list[str]: + if self.use_uv: + return [] + else: + return ["--root-user-action", "ignore", "--yes"] + + @cached_property + def get_resolution_highest_args(self) -> list[str]: + if self.use_uv: + return ["--resolution", "highest"] + else: + return ["--upgrade", "--upgrade-strategy", "eager"] + + @cached_property + def eager_upgrade_additional_requirements_list(self) -> list[str]: + if self.eager_upgrade_additional_requirements: + return self.eager_upgrade_additional_requirements.split(" ") + return [] + + +def install_local_airflow_with_eager_upgrade(config_params: ConfigParams) -> None: run_command( [ - "pip", - "install", - "--root-user-action", - "ignore", + *config_params.get_install_command, "-e", ".[all-core]", - *eager_upgrade_additional_requirements.split(" "), - "--upgrade", - "--upgrade-strategy", - "eager", + *config_params.eager_upgrade_additional_requirements_list, + *config_params.get_resolution_highest_args, ], github_actions=config_params.github_actions, cwd=AIRFLOW_SOURCE_DIR, @@ -154,7 +196,7 @@ def install_local_airflow_with_eager_upgrade( def freeze_packages_to_file(config_params: ConfigParams, file: TextIO) -> None: console.print(f"[bright_blue]Freezing constraints to file: {file.name}") result = run_command( - ["pip", "freeze"], + cmd=config_params.get_freeze_command, github_actions=config_params.github_actions, text=True, check=True, @@ -239,20 +281,22 @@ def diff_constraints(config_params: ConfigParams) -> None: def uninstall_all_packages(config_params: ConfigParams): console.print("[bright_blue]Uninstall All PIP packages") result = run_command( - ["pip", "freeze"], + cmd=config_params.get_freeze_command, github_actions=config_params.github_actions, cwd=AIRFLOW_SOURCE_DIR, text=True, check=True, capture_output=True, ) + # do not remove installer! + installer = "uv==" if config_params.use_uv else "pip==" all_installed_packages = [ dep.split("==")[0] for dep in result.stdout.strip().split("\n") - if not dep.startswith(("apache-airflow", "apache-airflow==", "/opt/airflow", "#", "-e")) + if not dep.startswith(("apache-airflow", "apache-airflow==", "/opt/airflow", "#", "-e", installer)) ] run_command( - ["pip", "uninstall", "--root-user-action", "ignore", "-y", *all_installed_packages], + cmd=[*config_params.get_uninstall_command, *all_installed_packages], github_actions=config_params.github_actions, cwd=AIRFLOW_SOURCE_DIR, text=True, @@ -314,7 +358,7 @@ def generate_constraints_pypi_providers(config_params: ConfigParams) -> None: f"[yellow]Installing {file.name} from local dist folder as it is " f"a chicken egg provider" ) - packages_to_install.append(file.as_posix()) + packages_to_install.append(f"{provider_package} @ file://{file.as_posix()}") else: console.print( f"[yellow]Skipping {provider_package} as it is not found in dist folder to install." @@ -329,16 +373,12 @@ def generate_constraints_pypi_providers(config_params: ConfigParams) -> None: console.print("[yellow]NOK. Skipping.") run_command( cmd=[ - "pip", - "install", - "--root-user-action", - "ignore", + *config_params.get_install_command, + "-e", ".[all-core]", *packages_to_install, - *config_params.eager_upgrade_additional_requirements.split(" "), - "--upgrade", - "--upgrade-strategy", - "eager", + *config_params.eager_upgrade_additional_requirements_list, + *config_params.get_resolution_highest_args, ], github_actions=config_params.github_actions, check=True, @@ -358,12 +398,10 @@ def generate_constraints_no_providers(config_params: ConfigParams) -> None: """ uninstall_all_packages(config_params) console.print( - "[bright_blue]Installing airflow with [all-core] extras only with eager upgrade in " + "[bright_blue]Installing airflow with `all-core` extras only with eager upgrade in " "installable mode." ) - install_local_airflow_with_eager_upgrade( - config_params, config_params.eager_upgrade_additional_requirements - ) + install_local_airflow_with_eager_upgrade(config_params) console.print("[success]Installed airflow with [all-core] extras only with eager upgrade.") with config_params.current_constraints_file.open("w") as constraints_file: constraints_file.write(NO_PROVIDERS_CONSTRAINTS_PREFIX) @@ -404,6 +442,7 @@ ALLOWED_CONSTRAINTS_MODES = ["constraints", "constraints-source-providers", "con @click.option( "--eager-upgrade-additional-requirements", envvar="EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS", + default="", help="Additional requirements to add to eager upgrade", ) @click.option( @@ -420,6 +459,13 @@ ALLOWED_CONSTRAINTS_MODES = ["constraints", "constraints-source-providers", "con envvar="PYTHON_MAJOR_MINOR_VERSION", help="Python major.minor version", ) +@click.option( + "--use-uv/--no-use-uv", + is_flag=True, + default=True, + help="Use uv instead of pip as packaging tool.", + envvar="USE_UV", +) def generate_constraints( airflow_constraints_mode: str, chicken_egg_providers: str, @@ -428,6 +474,7 @@ def generate_constraints( eager_upgrade_additional_requirements: str, github_actions: bool, python: str, + use_uv: bool, ) -> None: config_params = ConfigParams( airflow_constraints_mode=airflow_constraints_mode, @@ -437,6 +484,7 @@ def generate_constraints( eager_upgrade_additional_requirements=eager_upgrade_additional_requirements, github_actions=github_actions, python=python, + use_uv=use_uv, ) if airflow_constraints_mode == "constraints-source-providers": generate_constraints_source_providers(config_params)