Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/test-providers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,10 @@ jobs:
run: >
breeze release-management prepare-task-sdk-distributions
--distribution-format ${{ matrix.package-format }}
- name: "Prepare airflow-ctl package: ${{ matrix.package-format }}"
Comment thread
bugraoz93 marked this conversation as resolved.
run: >
breeze release-management prepare-airflow-ctl-distributions
--distribution-format ${{ matrix.package-format }}
- name: "Verify ${{ matrix.package-format }} packages with twine"
run: |
uv tool uninstall twine || true
Expand Down
7 changes: 5 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -1048,8 +1048,11 @@ function install_airflow_and_providers_from_docker_context_files(){
install_airflow_core_distribution=("apache-airflow-core==${AIRFLOW_VERSION}")
fi

# Find Provider/TaskSDK/CTL distributions in docker-context files
readarray -t airflow_distributions< <(python /scripts/docker/get_distribution_specs.py /docker-context-files/apache?airflow?{providers,task?sdk,airflowctl}*.{whl,tar.gz} 2>/dev/null || true)
# Find Provider/TaskSDK/CTL distributions in docker-context files.
# NOTE: the ctl wheel is named ``apache_airflow_ctl-*.whl`` (distribution
# ``apache-airflow-ctl``), not ``apache_airflow_airflowctl-*.whl`` — the
# glob must say ``ctl``, not ``airflowctl``.
readarray -t airflow_distributions< <(python /scripts/docker/get_distribution_specs.py /docker-context-files/apache?airflow?{providers,task?sdk,ctl}*.{whl,tar.gz} 2>/dev/null || true)
echo
echo "${COLOR_BLUE}Found provider distributions in docker-context-files folder: ${airflow_distributions[*]}${COLOR_RESET}"
echo
Expand Down
2 changes: 1 addition & 1 deletion airflow-core/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ dependencies = [
"universal-pathlib>=0.3.8",
"uuid6>=2024.7.10",
"apache-airflow-task-sdk<1.4.0,>=1.3.0",
"apache-airflow-ctl<0.1.5,>=0.1.4",
"apache-airflow-ctl<0.1.6,>=0.1.5",
# pre-installed providers
"apache-airflow-providers-common-compat>=1.7.4",
"apache-airflow-providers-common-io>=1.6.3",
Expand Down
2 changes: 1 addition & 1 deletion airflow-ctl/src/airflowctl/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@

__path__ = __import__("pkgutil").extend_path(__path__, __name__)

__version__ = "0.1.4"
__version__ = "0.1.5"
7 changes: 5 additions & 2 deletions scripts/docker/install_from_docker_context_files.sh
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,11 @@ function install_airflow_and_providers_from_docker_context_files(){
install_airflow_core_distribution=("apache-airflow-core==${AIRFLOW_VERSION}")
fi

# Find Provider/TaskSDK/CTL distributions in docker-context files
readarray -t airflow_distributions< <(python /scripts/docker/get_distribution_specs.py /docker-context-files/apache?airflow?{providers,task?sdk,airflowctl}*.{whl,tar.gz} 2>/dev/null || true)
# Find Provider/TaskSDK/CTL distributions in docker-context files.
# NOTE: the ctl wheel is named ``apache_airflow_ctl-*.whl`` (distribution
# ``apache-airflow-ctl``), not ``apache_airflow_airflowctl-*.whl`` — the
# glob must say ``ctl``, not ``airflowctl``.
readarray -t airflow_distributions< <(python /scripts/docker/get_distribution_specs.py /docker-context-files/apache?airflow?{providers,task?sdk,ctl}*.{whl,tar.gz} 2>/dev/null || true)
echo
echo "${COLOR_BLUE}Found provider distributions in docker-context-files folder: ${airflow_distributions[*]}${COLOR_RESET}"
echo
Expand Down
15 changes: 12 additions & 3 deletions scripts/in_container/install_airflow_and_providers.py
Original file line number Diff line number Diff line change
Expand Up @@ -1183,9 +1183,11 @@ def _install_airflow_ctl_with_constraints(installation_spec: InstallationSpec, g
"pip",
"install",
]
# if airflow is also being installed we should add airflow to the base_install_providers_cmd
# to avoid accidentally upgrading airflow to a version that is different from installed in the
# previous step
# Install the ctl distribution itself, plus pin airflow alongside (if it's being
# installed) so the resolver does not accidentally upgrade airflow to a version
# different from the one installed in the previous step.
if installation_spec.airflow_ctl_distribution:
base_install_airflow_ctl_cmd.append(installation_spec.airflow_ctl_distribution)
if installation_spec.airflow_distribution:
base_install_airflow_ctl_cmd.append(installation_spec.airflow_distribution)
install_airflow_ctl_cmd = base_install_airflow_ctl_cmd.copy()
Expand Down Expand Up @@ -1246,6 +1248,13 @@ def _install_only_airflow_airflow_core_task_sdk_with_constraints(
f"{installation_spec.airflow_task_sdk_distribution} with constraints"
)
console.print()
if installation_spec.airflow_ctl_distribution:
base_install_airflow_cmd.append(installation_spec.airflow_ctl_distribution)
console.print(
f"\n[bright_blue]Installing airflow ctl distribution alongside core: "
f"{installation_spec.airflow_ctl_distribution}"
)
console.print()
install_airflow_cmd = base_install_airflow_cmd.copy()
if installation_spec.airflow_constraints_location:
console.print(f"[bright_blue]Use constraints: {installation_spec.airflow_constraints_location}")
Expand Down
Loading