diff --git a/INSTALL b/INSTALL index 9a8b1a84118c..8d81910f071c 100644 --- a/INSTALL +++ b/INSTALL @@ -257,8 +257,8 @@ Those extras are available as regular core airflow extras - they install optiona # START CORE EXTRAS HERE aiobotocore, apache-atlas, apache-webhdfs, async, cgroups, cloudpickle, github-enterprise, google- -auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, rabbitmq, s3fs, saml, sentry, -statsd, uv, virtualenv +auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, rabbitmq, s3fs, sentry, statsd, uv, +virtualenv # END CORE EXTRAS HERE diff --git a/airflow/providers/papermill/provider.yaml b/airflow/providers/papermill/provider.yaml index afd273a69e1b..ff738b2ec73d 100644 --- a/airflow/providers/papermill/provider.yaml +++ b/airflow/providers/papermill/provider.yaml @@ -57,6 +57,7 @@ dependencies: - ipykernel - pandas>=2.1.2,<2.2;python_version>="3.9" - pandas>=1.5.3,<2.2;python_version<"3.9" + - python3-saml>=1.16.0 integrations: - integration-name: Papermill diff --git a/contributing-docs/12_airflow_dependencies_and_extras.rst b/contributing-docs/12_airflow_dependencies_and_extras.rst index 59b5c6b8053d..70f30fa0b7a7 100644 --- a/contributing-docs/12_airflow_dependencies_and_extras.rst +++ b/contributing-docs/12_airflow_dependencies_and_extras.rst @@ -165,8 +165,8 @@ Those extras are available as regular core airflow extras - they install optiona .. START CORE EXTRAS HERE aiobotocore, apache-atlas, apache-webhdfs, async, cgroups, cloudpickle, github-enterprise, google- -auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, rabbitmq, s3fs, saml, sentry, -statsd, uv, virtualenv +auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, rabbitmq, s3fs, sentry, statsd, uv, +virtualenv .. END CORE EXTRAS HERE diff --git a/generated/provider_dependencies.json b/generated/provider_dependencies.json index 18e98f76cd7e..3ea4df282d78 100644 --- a/generated/provider_dependencies.json +++ b/generated/provider_dependencies.json @@ -1014,6 +1014,7 @@ "pandas>=1.5.3,<2.2;python_version<\"3.9\"", "pandas>=2.1.2,<2.2;python_version>=\"3.9\"", "papermill[all]>=2.6.0", + "python3-saml>=1.16.0", "scrapbook[all]" ], "devel-deps": [], diff --git a/hatch_build.py b/hatch_build.py index 02c761c8d5d7..6233712ce676 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -124,10 +124,6 @@ # which can have a conflict with boto3 as mentioned in aiobotocore extra "s3fs>=2023.10.0", ], - "saml": [ - # This is required for support of SAML which might be used by some providers (e.g. Amazon) - "python3-saml>=1.16.0", - ], "sentry": [ "blinker>=1.1", # Sentry SDK 1.33 is broken when greenlets are installed and fails to import diff --git a/newsfragments/42137.significant.rst b/newsfragments/42137.significant.rst new file mode 100644 index 000000000000..0e1848933a0a --- /dev/null +++ b/newsfragments/42137.significant.rst @@ -0,0 +1 @@ +Optional ``[saml]`` extra has been removed from Airflow core - instead Amazon Provider gets saml as required dependency. diff --git a/pyproject.toml b/pyproject.toml index 7c466743a935..cd51540529bc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -79,8 +79,8 @@ dynamic = ["version", "optional-dependencies", "dependencies"] # START CORE EXTRAS HERE # # aiobotocore, apache-atlas, apache-webhdfs, async, cgroups, cloudpickle, github-enterprise, google- -# auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, rabbitmq, s3fs, saml, sentry, -# statsd, uv, virtualenv +# auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, rabbitmq, s3fs, sentry, statsd, uv, +# virtualenv # # END CORE EXTRAS HERE # @@ -387,7 +387,6 @@ combine-as-imports = true "airflow/security/kerberos.py" = ["E402"] "airflow/security/utils.py" = ["E402"] "tests/providers/amazon/aws/auth_manager/security_manager/test_aws_security_manager_override.py" = ["E402"] -"tests/system/providers/amazon/aws/tests/test_aws_auth_manager.py" = ["E402"] "tests/providers/common/io/xcom/test_backend.py" = ["E402"] "tests/providers/elasticsearch/log/elasticmock/__init__.py" = ["E402"] "tests/providers/elasticsearch/log/elasticmock/utilities/__init__.py" = ["E402"] diff --git a/tests/providers/amazon/aws/auth_manager/security_manager/test_aws_security_manager_override.py b/tests/providers/amazon/aws/auth_manager/security_manager/test_aws_security_manager_override.py index d386ec015aee..ebb452fb1afb 100644 --- a/tests/providers/amazon/aws/auth_manager/security_manager/test_aws_security_manager_override.py +++ b/tests/providers/amazon/aws/auth_manager/security_manager/test_aws_security_manager_override.py @@ -51,7 +51,6 @@ class TestAwsSecurityManagerOverride: "airflow.providers.amazon.aws.auth_manager.views.auth.conf.get_mandatory_value", return_value="test" ) def test_register_views(self, mock_get_mandatory_value, override, appbuilder): - pytest.importorskip("onelogin") from airflow.providers.amazon.aws.auth_manager.views.auth import AwsAuthManagerAuthenticationViews with patch.object(AwsAuthManagerAuthenticationViews, "idp_data"): diff --git a/tests/providers/amazon/aws/auth_manager/test_aws_auth_manager.py b/tests/providers/amazon/aws/auth_manager/test_aws_auth_manager.py index 0ebad2c0fc60..f54a2a3e5fb1 100644 --- a/tests/providers/amazon/aws/auth_manager/test_aws_auth_manager.py +++ b/tests/providers/amazon/aws/auth_manager/test_aws_auth_manager.py @@ -790,7 +790,6 @@ def test_get_cli_commands_return_cli_commands(self, auth_manager): "airflow.providers.amazon.aws.auth_manager.views.auth.conf.get_mandatory_value", return_value="test" ) def test_register_views(self, mock_get_mandatory_value, auth_manager_with_appbuilder): - pytest.importorskip("onelogin") from airflow.providers.amazon.aws.auth_manager.views.auth import AwsAuthManagerAuthenticationViews with patch.object(AwsAuthManagerAuthenticationViews, "idp_data"): diff --git a/tests/providers/amazon/aws/auth_manager/views/test_auth.py b/tests/providers/amazon/aws/auth_manager/views/test_auth.py index 4fad8e42578c..435dd8d2c32f 100644 --- a/tests/providers/amazon/aws/auth_manager/views/test_auth.py +++ b/tests/providers/amazon/aws/auth_manager/views/test_auth.py @@ -26,8 +26,6 @@ from tests.test_utils.compat import AIRFLOW_V_2_9_PLUS from tests.test_utils.config import conf_vars -pytest.importorskip("onelogin") - pytestmark = [ pytest.mark.skipif(not AIRFLOW_V_2_9_PLUS, reason="Test requires Airflow 2.9+"), pytest.mark.skip_if_database_isolation_mode, diff --git a/tests/system/providers/amazon/aws/tests/test_aws_auth_manager.py b/tests/system/providers/amazon/aws/tests/test_aws_auth_manager.py index 792df7b155d0..dac7398a1ba8 100644 --- a/tests/system/providers/amazon/aws/tests/test_aws_auth_manager.py +++ b/tests/system/providers/amazon/aws/tests/test_aws_auth_manager.py @@ -22,8 +22,6 @@ import boto3 import pytest -pytest.importorskip("onelogin") - from airflow.www import app as application from tests.system.providers.amazon.aws.utils import set_env_id from tests.test_utils.config import conf_vars