diff --git a/backend/api/v1beta1/python_http_client/.gitlab-ci.yml b/backend/api/v1beta1/python_http_client/.gitlab-ci.yml index 1098a4acf217..fd2733277c09 100644 --- a/backend/api/v1beta1/python_http_client/.gitlab-ci.yml +++ b/backend/api/v1beta1/python_http_client/.gitlab-ci.yml @@ -10,24 +10,18 @@ stages: - pip install -r test-requirements.txt - pytest --cov=kfp_server_api -nosetest-2.7: - extends: .nosetest - image: python:2.7-alpine -nosetest-3.3: +nosetest-3.8: extends: .nosetest - image: python:3.3-alpine -nosetest-3.4: + image: python:3.8-alpine +nosetest-3.9: extends: .nosetest - image: python:3.4-alpine -nosetest-3.5: + image: python:3.9-alpine +nosetest-3.10: extends: .nosetest - image: python:3.5-alpine -nosetest-3.6: + image: python:3.10-alpine +nosetest-3.11: extends: .nosetest - image: python:3.6-alpine + image: python:3.11-alpine nosetest-3.7: extends: .nosetest - image: python:3.7-alpine -nosetest-3.8: - extends: .nosetest - image: python:3.8-alpine + image: python:3.12-alpine diff --git a/backend/api/v2beta1/python_http_client/.gitlab-ci.yml b/backend/api/v2beta1/python_http_client/.gitlab-ci.yml index 1098a4acf217..8f8597d17d2c 100644 --- a/backend/api/v2beta1/python_http_client/.gitlab-ci.yml +++ b/backend/api/v2beta1/python_http_client/.gitlab-ci.yml @@ -10,24 +10,19 @@ stages: - pip install -r test-requirements.txt - pytest --cov=kfp_server_api -nosetest-2.7: - extends: .nosetest - image: python:2.7-alpine -nosetest-3.3: +nosetest-3.8: extends: .nosetest - image: python:3.3-alpine -nosetest-3.4: + image: python:3.8-alpine +nosetest-3.9: extends: .nosetest - image: python:3.4-alpine -nosetest-3.5: + image: python:3.9-alpine +nosetest-3.10: extends: .nosetest - image: python:3.5-alpine -nosetest-3.6: + image: python:3.10-alpine +nosetest-3.11: extends: .nosetest - image: python:3.6-alpine + image: python:3.11-alpine nosetest-3.7: extends: .nosetest - image: python:3.7-alpine -nosetest-3.8: - extends: .nosetest - image: python:3.8-alpine + image: python:3.12-alpine + diff --git a/backend/src/apiserver/resource/resource_manager_test.go b/backend/src/apiserver/resource/resource_manager_test.go index c1221ec6caac..2b3c43487e5e 100644 --- a/backend/src/apiserver/resource/resource_manager_test.go +++ b/backend/src/apiserver/resource/resource_manager_test.go @@ -3512,7 +3512,7 @@ spec: - name: ENABLE_CACHING valueFrom: fieldRef: {fieldPath: 'metadata.labels[''pipelines.kubeflow.org/enable_caching'']'} - - {name: KFP_V2_IMAGE, value: 'python:3.7'} + - {name: KFP_V2_IMAGE, value: 'python:3.12'} - {name: KFP_V2_RUNTIME_INFO, value: '{"inputParameters": {"num_steps": {"type": "INT"}}, "inputArtifacts": {"dataset": {"metadataPath": "/tmp/inputs/dataset/data", "schemaTitle": "system.Dataset", "instanceSchema": ""}}, "outputParameters": @@ -3520,7 +3520,7 @@ spec: "", "metadataPath": "/tmp/outputs/model/data"}}}'} envFrom: - configMapRef: {name: metadata-grpc-configmap, optional: true} - image: python:3.7 + image: python:3.12 volumeMounts: - {mountPath: /kfp-launcher, name: kfp-launcher} inputs: @@ -4044,7 +4044,7 @@ deploymentSpec: _parsed_args = vars(_parser.parse_args()) _outputs = hello_world(**_parsed_args) - image: python:3.7 + image: python:3.12 pipelineInfo: name: hello-world root: @@ -4077,7 +4077,7 @@ deploymentSpec: executors: exec-hello-world: container: - image: python:3.7 + image: python:3.12 pipelineInfo: name: pipelines/p1/versions/v1 root: diff --git a/backend/src/apiserver/server/pipeline_upload_server_test.go b/backend/src/apiserver/server/pipeline_upload_server_test.go index e26eed60b93d..65a28cb28939 100644 --- a/backend/src/apiserver/server/pipeline_upload_server_test.go +++ b/backend/src/apiserver/server/pipeline_upload_server_test.go @@ -667,7 +667,7 @@ deploymentSpec: _parsed_args = vars(_parser.parse_args()) _outputs = hello_world(**_parsed_args) - image: python:3.7 + image: python:3.12 pipelineInfo: name: hello-world root: @@ -724,7 +724,7 @@ deploymentSpec: _parsed_args = vars(_parser.parse_args()) _outputs = hello_world(**_parsed_args) - image: python:3.7 + image: python:3.12 pipelineInfo: name: hello-world root: @@ -765,7 +765,7 @@ deploymentSpec: executors: exec-hello-world: container: - image: python:3.7 + image: python:3.12 pipelineInfo: name: hello-world- root: @@ -790,7 +790,7 @@ deploymentSpec: executors: exec-hello-world: container: - image: python:3.7 + image: python:3.12 pipelineInfo: name: hEllo-world root: @@ -815,7 +815,7 @@ deploymentSpec: executors: exec-hello-world: container: - image: python:3.7 + image: python:3.12 pipelineInfo: name: more than 128 characters more than 128 characters more than 128 characters more than 128 characters more than 128 characters root: @@ -840,7 +840,7 @@ deploymentSpec: executors: exec-hello-world: container: - image: python:3.7 + image: python:3.12 pipelineInfo: name: hello-worl.d root: diff --git a/backend/src/apiserver/server/test/pipeline_with_volume.yaml b/backend/src/apiserver/server/test/pipeline_with_volume.yaml index 809b3208895d..49c504e81197 100644 --- a/backend/src/apiserver/server/test/pipeline_with_volume.yaml +++ b/backend/src/apiserver/server/test/pipeline_with_volume.yaml @@ -66,7 +66,7 @@ deploymentSpec: ' - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef comp():\n pass\n\n" - image: python:3.7 + image: python:3.12 exec-comp-2: container: args: @@ -92,7 +92,7 @@ deploymentSpec: ' - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef comp():\n pass\n\n" - image: python:3.7 + image: python:3.12 exec-comp-3: container: args: @@ -118,7 +118,7 @@ deploymentSpec: ' - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef comp():\n pass\n\n" - image: python:3.7 + image: python:3.12 exec-createpvc: container: image: argostub/createpvc diff --git a/backend/src/apiserver/server/test/v2-hello-world.json b/backend/src/apiserver/server/test/v2-hello-world.json index d7a375c4ccae..b1a4b1afb382 100644 --- a/backend/src/apiserver/server/test/v2-hello-world.json +++ b/backend/src/apiserver/server/test/v2-hello-world.json @@ -22,7 +22,7 @@ "program_path=$(mktemp)\nprintf \"%s\" \"$0\" > \"$program_path\"\npython3 -u \"$program_path\" \"$@\"\n", "def hello_world(text):\n print(text)\n return text\n\nimport argparse\n_parser = argparse.ArgumentParser(prog='Hello world', description='')\n_parser.add_argument(\"--text\", dest=\"text\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n" ], - "image": "python:3.7" + "image": "python:3.12" } } } diff --git a/backend/src/apiserver/server/test/xgboost_sample_pipeline.yaml b/backend/src/apiserver/server/test/xgboost_sample_pipeline.yaml index e7d2be1cc355..da232c421e66 100644 --- a/backend/src/apiserver/server/test/xgboost_sample_pipeline.yaml +++ b/backend/src/apiserver/server/test/xgboost_sample_pipeline.yaml @@ -293,7 +293,7 @@ deploymentSpec: \ try:\n os.makedirs(os.path.dirname(output_file))\n except\ \ OSError:\n pass\n with open(output_file, 'w') as f:\n \ \ f.write(_output_serializers[idx](_outputs[idx]))\n" - image: python:3.7 + image: python:3.12 exec-xgboost-predict: container: args: @@ -344,7 +344,7 @@ deploymentSpec: _parser.add_argument(\"--predictions\", dest=\"predictions_path\", type=_make_parent_dirs_and_return_path,\ \ required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_predict(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-predict-2: container: args: @@ -398,7 +398,7 @@ deploymentSpec: predictions_path\", type=_make_parent_dirs_and_return_path, required=True,\ \ default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_predict(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-predict-3: container: args: @@ -452,7 +452,7 @@ deploymentSpec: predictions_path\", type=_make_parent_dirs_and_return_path, required=True,\ \ default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_predict(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-predict-4: container: args: @@ -503,7 +503,7 @@ deploymentSpec: _parser.add_argument(\"--predictions\", dest=\"predictions_path\", type=_make_parent_dirs_and_return_path,\ \ required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_predict(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-train: container: args: @@ -620,7 +620,7 @@ deploymentSpec: , dest=\"model_config_path\", type=_make_parent_dirs_and_return_path, required=True,\ \ default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_train(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-train-2: container: args: @@ -737,7 +737,7 @@ deploymentSpec: , dest=\"model_config_path\", type=_make_parent_dirs_and_return_path, required=True,\ \ default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_train(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 pipelineInfo: name: xgboost-sample-pipeline root: diff --git a/backend/src/apiserver/storage/pipeline_store_test.go b/backend/src/apiserver/storage/pipeline_store_test.go index 677df7b48250..3963e445fdd8 100644 --- a/backend/src/apiserver/storage/pipeline_store_test.go +++ b/backend/src/apiserver/storage/pipeline_store_test.go @@ -1936,7 +1936,7 @@ executors: _parsed_args = vars(_parser.parse_args()) _outputs = hello_world(**_parsed_args) - image: python:3.7 + image: python:3.12 pipelineInfo: name: hello-world root: diff --git a/backend/src/apiserver/template/testdata/hello_world.yaml b/backend/src/apiserver/template/testdata/hello_world.yaml index 5753b04846c1..e2ceef6c2664 100644 --- a/backend/src/apiserver/template/testdata/hello_world.yaml +++ b/backend/src/apiserver/template/testdata/hello_world.yaml @@ -31,7 +31,7 @@ deploymentSpec: _parsed_args = vars(_parser.parse_args()) _outputs = hello_world(**_parsed_args) - image: python:3.7 + image: python:3.12 pipelineInfo: name: namespace/n1/pipeline/hello-world root: diff --git a/backend/src/apiserver/template/testdata/hello_world_schema_2_0_0.yaml b/backend/src/apiserver/template/testdata/hello_world_schema_2_0_0.yaml index 14c571d27317..c13ee3ccdd97 100644 --- a/backend/src/apiserver/template/testdata/hello_world_schema_2_0_0.yaml +++ b/backend/src/apiserver/template/testdata/hello_world_schema_2_0_0.yaml @@ -30,7 +30,7 @@ deploymentSpec: _parsed_args = vars(_parser.parse_args()) _outputs = hello_world(**_parsed_args) - image: python:3.7 + image: python:3.12 pipelineInfo: name: hello-world root: diff --git a/backend/src/apiserver/template/testdata/pipeline_with_volume.yaml b/backend/src/apiserver/template/testdata/pipeline_with_volume.yaml index 3f612a8954f6..089a126d1fb1 100644 --- a/backend/src/apiserver/template/testdata/pipeline_with_volume.yaml +++ b/backend/src/apiserver/template/testdata/pipeline_with_volume.yaml @@ -68,7 +68,7 @@ deploymentSpec: ' - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef comp():\n pass\n\n" - image: python:3.7 + image: python:3.12 exec-comp-2: container: args: @@ -94,7 +94,7 @@ deploymentSpec: ' - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef comp():\n pass\n\n" - image: python:3.7 + image: python:3.12 exec-comp-3: container: args: @@ -120,7 +120,7 @@ deploymentSpec: ' - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef comp():\n pass\n\n" - image: python:3.7 + image: python:3.12 exec-createpvc: container: image: argostub/createpvc diff --git a/backend/src/cache/server/mutation_test.go b/backend/src/cache/server/mutation_test.go index 28ab114e1e5c..ed112e900d50 100644 --- a/backend/src/cache/server/mutation_test.go +++ b/backend/src/cache/server/mutation_test.go @@ -52,7 +52,7 @@ var ( Command: []string{"python"}, Env: []corev1.EnvVar{{ Name: ArgoWorkflowTemplateEnvKey, - Value: `{"name": "Does not matter","container":{"command":["echo", "Hello"],"image":"python:3.7"}}`, + Value: `{"name": "Does not matter","container":{"command":["echo", "Hello"],"image":"python:3.12"}}`, }}, }, }, @@ -171,7 +171,7 @@ func TestMutatePodIfCachedWithCacheEntryExist(t *testing.T) { executionCache := &model.ExecutionCache{ ExecutionCacheKey: "f5fe913be7a4516ebfe1b5de29bcb35edd12ecc776b2f33f10ca19709ea3b2f0", ExecutionOutput: "testOutput", - ExecutionTemplate: `{"container":{"command":["echo", "Hello"],"image":"python:3.7"}}`, + ExecutionTemplate: `{"container":{"command":["echo", "Hello"],"image":"python:3.12"}}`, MaxCacheStaleness: -1, } fakeClientManager.CacheStore().CreateExecutionCache(executionCache) @@ -190,7 +190,7 @@ func TestDefaultImage(t *testing.T) { executionCache := &model.ExecutionCache{ ExecutionCacheKey: "f5fe913be7a4516ebfe1b5de29bcb35edd12ecc776b2f33f10ca19709ea3b2f0", ExecutionOutput: "testOutput", - ExecutionTemplate: `{"container":{"command":["echo", "Hello"],"image":"python:3.7"}}`, + ExecutionTemplate: `{"container":{"command":["echo", "Hello"],"image":"python:3.12"}}`, MaxCacheStaleness: -1, } fakeClientManager.CacheStore().CreateExecutionCache(executionCache) @@ -209,7 +209,7 @@ func TestSetImage(t *testing.T) { executionCache := &model.ExecutionCache{ ExecutionCacheKey: "f5fe913be7a4516ebfe1b5de29bcb35edd12ecc776b2f33f10ca19709ea3b2f0", ExecutionOutput: "testOutput", - ExecutionTemplate: `{"container":{"command":["echo", "Hello"],"image":"python:3.7"}}`, + ExecutionTemplate: `{"container":{"command":["echo", "Hello"],"image":"python:3.12"}}`, MaxCacheStaleness: -1, } fakeClientManager.CacheStore().CreateExecutionCache(executionCache) @@ -226,7 +226,7 @@ func TestCacheNodeRestriction(t *testing.T) { executionCache := &model.ExecutionCache{ ExecutionCacheKey: "f5fe913be7a4516ebfe1b5de29bcb35edd12ecc776b2f33f10ca19709ea3b2f0", ExecutionOutput: "testOutput", - ExecutionTemplate: `{"container":{"command":["echo", "Hello"],"image":"python:3.7"},"nodeSelector":{"disktype":"ssd"}}`, + ExecutionTemplate: `{"container":{"command":["echo", "Hello"],"image":"python:3.12"},"nodeSelector":{"disktype":"ssd"}}`, MaxCacheStaleness: -1, } fakeClientManager.CacheStore().CreateExecutionCache(executionCache) @@ -241,7 +241,7 @@ func TestMutatePodIfCachedWithTeamplateCleanup(t *testing.T) { executionCache := &model.ExecutionCache{ ExecutionCacheKey: "5a20e3f2e74863b363291953082d9812a58e25f7117bface1c76d40ef0ee88fc", ExecutionOutput: "testOutput", - ExecutionTemplate: `Cache key was calculated from this: {"container":{"command":["echo", "Hello"],"image":"python:3.7"},"outputs":"anything"}`, + ExecutionTemplate: `Cache key was calculated from this: {"container":{"command":["echo", "Hello"],"image":"python:3.12"},"outputs":"anything"}`, MaxCacheStaleness: -1, } fakeClientManager.CacheStore().CreateExecutionCache(executionCache) @@ -253,7 +253,7 @@ func TestMutatePodIfCachedWithTeamplateCleanup(t *testing.T) { "name": "Does not matter", "metadata": "anything", "container": { - "image": "python:3.7", + "image": "python:3.12", "command": ["echo", "Hello"] }, "outputs": "anything", diff --git a/backend/src/v2/compiler/argocompiler/testdata/create_mount_delete_dynamic_pvc.yaml b/backend/src/v2/compiler/argocompiler/testdata/create_mount_delete_dynamic_pvc.yaml index e3b427d2455d..51a028d62865 100644 --- a/backend/src/v2/compiler/argocompiler/testdata/create_mount_delete_dynamic_pvc.yaml +++ b/backend/src/v2/compiler/argocompiler/testdata/create_mount_delete_dynamic_pvc.yaml @@ -14,7 +14,7 @@ metadata: \u0026\u0026 \"$0\" \"$@\"\n","sh","-ec","program_path=$(mktemp -d) printf \"%s\" \"$0\" \u003e \"$program_path/ephemeral_component.py\" python3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\" ","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import - *\n\ndef comp():\n pass\n\n"],"image":"python:3.7"}' + *\n\ndef comp():\n pass\n\n"],"image":"python:3.12"}' pipelines.kubeflow.org/implementations-comp-comp-2: '{"args":["--executor_input","{{$}}","--function_to_execute","comp"],"command":["sh","-c","\nif ! [ -x \"$(command -v pip)\" ]; then\n python3 -m ensurepip || python3 -m ensurepip --user || apt-get install python3-pip\nfi\n\nPIP_DISABLE_PIP_VERSION_CHECK=1 @@ -22,7 +22,7 @@ metadata: \u0026\u0026 \"$0\" \"$@\"\n","sh","-ec","program_path=$(mktemp -d) printf \"%s\" \"$0\" \u003e \"$program_path/ephemeral_component.py\" python3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\" ","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import - *\n\ndef comp():\n pass\n\n"],"image":"python:3.7"}' + *\n\ndef comp():\n pass\n\n"],"image":"python:3.12"}' pipelines.kubeflow.org/implementations-comp-createpvc: '{"image":"argostub/createpvc"}' pipelines.kubeflow.org/implementations-comp-deletepvc: '{"image":"argostub/deletepvc"}' pipelines.kubeflow.org/kubernetes-comp-comp: '{"pvcMount":[{"mountPath":"/data","taskOutputParameter":{"outputParameterKey":"name","producerTask":"createpvc"}}]}' diff --git a/backend/src/v2/compiler/argocompiler/testdata/create_pod_metadata.yaml b/backend/src/v2/compiler/argocompiler/testdata/create_pod_metadata.yaml index 450aed6aeca5..b8dfcbf42fae 100644 --- a/backend/src/v2/compiler/argocompiler/testdata/create_pod_metadata.yaml +++ b/backend/src/v2/compiler/argocompiler/testdata/create_pod_metadata.yaml @@ -9,7 +9,7 @@ metadata: hello_world(text):\n print(text)\n return text\n\nimport argparse\n_parser = argparse.ArgumentParser(prog=''Hello world'', description='''')\n_parser.add_argument(\"--text\", dest=\"text\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args - = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n"],"image":"python:3.7"}' + = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n"],"image":"python:3.12"}' pipelines.kubeflow.org/kubernetes-comp-hello-world: '{"podMetadata":{"annotations":{"experiment_id":"234567","run_id":"123456"},"labels":{"kubeflow.com/common":"test","kubeflow.com/kfp":"pipeline-node"}}}' creationTimestamp: null generateName: hello-world- diff --git a/backend/src/v2/compiler/argocompiler/testdata/hello_world.yaml b/backend/src/v2/compiler/argocompiler/testdata/hello_world.yaml index 5685ece5de58..2b67a727883f 100644 --- a/backend/src/v2/compiler/argocompiler/testdata/hello_world.yaml +++ b/backend/src/v2/compiler/argocompiler/testdata/hello_world.yaml @@ -9,7 +9,7 @@ metadata: hello_world(text):\n print(text)\n return text\n\nimport argparse\n_parser = argparse.ArgumentParser(prog=''Hello world'', description='''')\n_parser.add_argument(\"--text\", dest=\"text\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args - = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n"],"image":"python:3.7"}' + = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n"],"image":"python:3.12"}' creationTimestamp: null generateName: hello-world- spec: diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/condition_ir.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/condition_ir.yaml index 4eeb48af8d58..0eaf9d3c39dd 100644 --- a/backend/src/v2/compiler/tektoncompiler/testdata/condition_ir.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/condition_ir.yaml @@ -114,7 +114,7 @@ pipelineSpec: \ a coin and output heads or tails randomly.\"\"\"\n if force_flip_result:\n\ \ return force_flip_result\n import random\n result = 'heads'\ \ if random.randint(0, 1) == 0 else 'tails'\n return result\n\n" - image: python:3.7 + image: python:3.12 exec-flip-coin-2: container: args: @@ -143,7 +143,7 @@ pipelineSpec: \ a coin and output heads or tails randomly.\"\"\"\n if force_flip_result:\n\ \ return force_flip_result\n import random\n result = 'heads'\ \ if random.randint(0, 1) == 0 else 'tails'\n return result\n\n" - image: python:3.7 + image: python:3.12 exec-print-msg: container: args: @@ -170,7 +170,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_msg(msg: str):\n \"\"\"Print a message.\"\"\"\n print(msg)\n\ \n" - image: python:3.7 + image: python:3.12 exec-print-msg-2: container: args: @@ -197,7 +197,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_msg(msg: str):\n \"\"\"Print a message.\"\"\"\n print(msg)\n\ \n" - image: python:3.7 + image: python:3.12 exec-print-msg-3: container: args: @@ -224,7 +224,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_msg(msg: str):\n \"\"\"Print a message.\"\"\"\n print(msg)\n\ \n" - image: python:3.7 + image: python:3.12 pipelineInfo: name: condition-v2 root: diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/exit_handler.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/exit_handler.yaml index 3b2568eca091..a876a35c2c79 100755 --- a/backend/src/v2/compiler/tektoncompiler/testdata/exit_handler.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/exit_handler.yaml @@ -49,7 +49,7 @@ spec: -d)\nprintf \"%s\" \"$0\" \u003e \"$program_path/ephemeral_component.py\"\npython3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\"\n","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import - *\n\ndef print_op(message: str):\n \"\"\"Prints a message.\"\"\"\n print(message)\n\n"],"image":"python:3.7"}' + *\n\ndef print_op(message: str):\n \"\"\"Prints a message.\"\"\"\n print(message)\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -166,7 +166,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: root-system-dag-pub-driver params: @@ -210,7 +210,7 @@ spec: \"%s\" \"$0\" \u003e \"$program_path/ephemeral_component.py\"\npython3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\"\n","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import *\n\ndef - fail_op(message: str):\n \"\"\"Fails.\"\"\"\n import sys\n print(message)\n sys.exit(1)\n\n"],"image":"python:3.7"}' + fail_op(message: str):\n \"\"\"Fails.\"\"\"\n import sys\n print(message)\n sys.exit(1)\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -329,7 +329,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: print-op-2 params: @@ -352,7 +352,7 @@ spec: \"%s\" \"$0\" \u003e \"$program_path/ephemeral_component.py\"\npython3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\"\n","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import *\n\ndef - print_op(message: str):\n \"\"\"Prints a message.\"\"\"\n print(message)\n\n"],"image":"python:3.7"}' + print_op(message: str):\n \"\"\"Prints a message.\"\"\"\n print(message)\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -469,7 +469,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: exit-handler-1-dag-driver params: diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/exit_handler_ir.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/exit_handler_ir.yaml index f42800c71773..97a89ba80a3a 100644 --- a/backend/src/v2/compiler/tektoncompiler/testdata/exit_handler_ir.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/exit_handler_ir.yaml @@ -76,7 +76,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef fail_op(message: str):\n \"\"\"Fails.\"\"\"\n import sys\n\ \ print(message)\n sys.exit(1)\n\n" - image: python:3.7 + image: python:3.12 exec-print-op: container: args: @@ -103,7 +103,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_op(message: str):\n \"\"\"Prints a message.\"\"\"\n\ \ print(message)\n\n" - image: python:3.7 + image: python:3.12 exec-print-op-2: container: args: @@ -130,7 +130,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_op(message: str):\n \"\"\"Prints a message.\"\"\"\n\ \ print(message)\n\n" - image: python:3.7 + image: python:3.12 pipelineInfo: name: pipeline-with-exit-handler root: diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/hello_world.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/hello_world.yaml index bb5490da0be8..920516569b2b 100644 --- a/backend/src/v2/compiler/tektoncompiler/testdata/hello_world.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/hello_world.yaml @@ -31,7 +31,7 @@ spec: hello_world(text):\n print(text)\n return text\n\nimport argparse\n_parser = argparse.ArgumentParser(prog=''Hello world'', description='''')\n_parser.add_argument(\"--text\", dest=\"text\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args - = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n"],"image":"python:3.7"}' + = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -137,7 +137,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: root-system-dag-driver params: diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/loop_static.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/loop_static.yaml index 0bb2b7db3144..97fe9c93bfa8 100644 --- a/backend/src/v2/compiler/tektoncompiler/testdata/loop_static.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/loop_static.yaml @@ -78,7 +78,7 @@ spec: -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\"\n","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import *\n\ndef concat_op(a: str, b: str) -\u003e str:\n print(a + b)\n return - a + b\n\n"],"image":"python:3.7"}' + a + b\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -195,7 +195,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: print-op-2 params: @@ -219,7 +219,7 @@ spec: -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\"\n","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import *\n\ndef print_op(text: str) -\u003e str:\n print(text)\n return - text\n\n"],"image":"python:3.7"}' + text\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -338,7 +338,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: for-loop-2-dag-driver params: @@ -406,7 +406,7 @@ spec: \"%s\" \"$0\" \u003e \"$program_path/ephemeral_component.py\"\npython3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\"\n","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import *\n\ndef - print_op(text: str) -\u003e str:\n print(text)\n return text\n\n"],"image":"python:3.7"}' + print_op(text: str) -\u003e str:\n print(text)\n return text\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -523,7 +523,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: root-system-dag-driver params: diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/loop_static_ir.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/loop_static_ir.yaml index fd6af49a6ade..cc1606583a32 100644 --- a/backend/src/v2/compiler/tektoncompiler/testdata/loop_static_ir.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/loop_static_ir.yaml @@ -101,7 +101,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef concat_op(a: str, b: str) -> str:\n print(a + b)\n return\ \ a + b\n\n" - image: python:3.7 + image: python:3.12 exec-print-op: container: args: @@ -128,7 +128,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_op(text: str) -> str:\n print(text)\n return text\n\ \n" - image: python:3.7 + image: python:3.12 exec-print-op-2: container: args: @@ -155,7 +155,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_op(text: str) -> str:\n print(text)\n return text\n\ \n" - image: python:3.7 + image: python:3.12 pipelineInfo: name: pipeline-with-loop-static root: diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/mnist_pipeline.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/mnist_pipeline.yaml index 7cbe60e2ba2a..6ea754324534 100755 --- a/backend/src/v2/compiler/tektoncompiler/testdata/mnist_pipeline.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/mnist_pipeline.yaml @@ -37,7 +37,7 @@ spec: convert_experiment_spec_to_str(experiment_spec_json: Dict[str, str])-\u003e NamedTuple(''Outputs'', [(''experiment_spec_str_output'', str)]):\n import json\n output = NamedTuple(''Outputs'', [(''experiment_spec_str_output'', - str)])\n return output(json.dumps(experiment_spec_json))\n\n"],"image":"python:3.7"}' + str)])\n return output(json.dumps(experiment_spec_json))\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -157,7 +157,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: convert-katib-results params: @@ -188,7 +188,7 @@ spec: pa[\"name\"] == \"learning_rate\":\n best_hps.append(\"--tf-learning-rate=\" + pa[\"value\"])\n elif pa[\"name\"] == \"batch_size\":\n best_hps.append(\"--tf-batch-size=\" + pa[\"value\"])\n print(\"Best Hyperparameters: {}\".format(best_hps))\n return - \" \".join(best_hps)\n\n"],"image":"python:3.7"}' + \" \".join(best_hps)\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -321,7 +321,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: create-dataset params: @@ -812,7 +812,7 @@ spec: [\n \"python /opt/model.py --tf-export-dir=/mnt/export --tf-train-steps={} {}\".format(training_steps, best_hps) \n ],\n }\n ],\n }\n }\n }\n\n output = NamedTuple(''Outputs'', [(''chief_spec'', Dict[str, str]), (''worker_spec'', - Dict[str, str])])\n return output(tfjob_chief_spec, tfjob_worker_spec)\n\n"],"image":"python:3.7"}' + Dict[str, str])])\n return output(tfjob_chief_spec, tfjob_worker_spec)\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -962,7 +962,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: convert-inference-service-to-artifact params: @@ -987,7 +987,7 @@ spec: kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import *\n\ndef convert_inference_service_to_artifact(inferenceservice_yaml: Dict[str, str], inferenceservice_artifact: Output[Artifact]):\n import json\n with - open(inferenceservice_artifact.path, ''w'') as f:\n f.write(json.dumps(inferenceservice_yaml))\n\n"],"image":"python:3.7"}' + open(inferenceservice_artifact.path, ''w'') as f:\n f.write(json.dumps(inferenceservice_yaml))\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -1107,7 +1107,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: create-serving-task params: @@ -1138,7 +1138,7 @@ spec: {\n \"sidecar.istio.io/inject\": \"false\"\n }\n },\n \"spec\":{\n \"predictor\":{\n \"tensorflow\": {\n \"storageUri\": \"pvc://{}/\".format(model_volume_name)\n }\n }\n }\n }\n\n output = NamedTuple(''Outputs'', [(''inferenceservice_yaml'', Dict[str, str])])\n return - output(inference_service)\n\n"],"image":"python:3.7"}' + output(inference_service)\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -1277,7 +1277,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: serving-launcher params: diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/mnist_pipeline_ir.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/mnist_pipeline_ir.yaml index e215cccabe10..68be47b5653e 100644 --- a/backend/src/v2/compiler/tektoncompiler/testdata/mnist_pipeline_ir.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/mnist_pipeline_ir.yaml @@ -224,7 +224,7 @@ pipelineSpec: \ str])-> NamedTuple('Outputs', [('experiment_spec_str_output', str)]):\n\ \ import json\n output = NamedTuple('Outputs', [('experiment_spec_str_output',\ \ str)])\n return output(json.dumps(experiment_spec_json))\n\n" - image: python:3.7 + image: python:3.12 exec-convert-inference-service-to-artifact: container: args: @@ -253,7 +253,7 @@ pipelineSpec: \ Dict[str, str], inferenceservice_artifact: Output[Artifact]):\n import\ \ json\n with open(inferenceservice_artifact.path, 'w') as f:\n \ \ f.write(json.dumps(inferenceservice_yaml))\n\n" - image: python:3.7 + image: python:3.12 exec-convert-katib-results: container: args: @@ -289,7 +289,7 @@ pipelineSpec: batch_size\":\n best_hps.append(\"--tf-batch-size=\" + pa[\"\ value\"])\n print(\"Best Hyperparameters: {}\".format(best_hps))\n \ \ return \" \".join(best_hps)\n\n" - image: python:3.7 + image: python:3.12 exec-create-dataset: container: args: @@ -446,7 +446,7 @@ pipelineSpec: .format(model_volume_name)\n }\n }\n }\n }\n\ \n output = NamedTuple('Outputs', [('inferenceservice_yaml', Dict[str,\ \ str])])\n return output(inference_service)\n\n" - image: python:3.7 + image: python:3.12 exec-create-tfjob-task: container: args: @@ -513,7 +513,7 @@ pipelineSpec: \ ],\n }\n }\n }\n\n output = NamedTuple('Outputs',\ \ [('chief_spec', Dict[str, str]), ('worker_spec', Dict[str, str])])\n \ \ return output(tfjob_chief_spec, tfjob_worker_spec)\n\n" - image: python:3.7 + image: python:3.12 exec-serving-launcher: container: args: diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/nestedloop.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/nestedloop.yaml index b37660ec8d23..d508ce2c9ced 100644 --- a/backend/src/v2/compiler/tektoncompiler/testdata/nestedloop.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/nestedloop.yaml @@ -36,7 +36,7 @@ spec: kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import *\n\ndef flip_coin_op() -\u003e str:\n \"\"\"Flip a coin and output heads or tails randomly.\"\"\"\n import random\n result = random.choice([''heads'', - ''tails''])\n print(result)\n return result\n\n"],"image":"python:3.7"}' + ''tails''])\n print(result)\n return result\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -156,7 +156,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: for-loop-2-pipelineloop params: @@ -228,7 +228,7 @@ spec: -d)\nprintf \"%s\" \"$0\" \u003e \"$program_path/ephemeral_component.py\"\npython3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\"\n","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import - *\n\ndef print_op(message: str):\n \"\"\"Print a message.\"\"\"\n print(message)\n\n"],"image":"python:3.7"}' + *\n\ndef print_op(message: str):\n \"\"\"Print a message.\"\"\"\n print(message)\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -345,7 +345,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main when: - input: $(tasks.condition-4-dag-driver.results.condition) @@ -424,7 +424,7 @@ spec: -d)\nprintf \"%s\" \"$0\" \u003e \"$program_path/ephemeral_component.py\"\npython3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\"\n","\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import - *\n\ndef print_op(message: str):\n \"\"\"Print a message.\"\"\"\n print(message)\n\n"],"image":"python:3.7"}' + *\n\ndef print_op(message: str):\n \"\"\"Print a message.\"\"\"\n print(message)\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -541,7 +541,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main when: - input: $(tasks.condition-5-dag-driver.results.condition) @@ -621,7 +621,7 @@ spec: *\n\ndef get_random_int_op(minimum: int, maximum: int) -\u003e int:\n \"\"\"Generate a random number between minimum and maximum (inclusive).\"\"\"\n import random\n result = random.randint(minimum, maximum)\n print(result)\n return - result\n\n"],"image":"python:3.7"}' + result\n\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -741,7 +741,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main when: - input: $(tasks.condition-3-dag-driver.results.condition) diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/nestedloop_ir.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/nestedloop_ir.yaml index 5dad49057b9d..521d3cce0b8f 100644 --- a/backend/src/v2/compiler/tektoncompiler/testdata/nestedloop_ir.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/nestedloop_ir.yaml @@ -204,7 +204,7 @@ pipelineSpec: \ *\n\ndef flip_coin_op() -> str:\n \"\"\"Flip a coin and output heads\ \ or tails randomly.\"\"\"\n import random\n result = random.choice(['heads',\ \ 'tails'])\n print(result)\n return result\n\n" - image: python:3.7 + image: python:3.12 exec-get-random-int-op: container: args: @@ -233,7 +233,7 @@ pipelineSpec: \"\"Generate a random number between minimum and maximum (inclusive).\"\"\ \"\n import random\n result = random.randint(minimum, maximum)\n \ \ print(result)\n return result\n\n" - image: python:3.7 + image: python:3.12 exec-print-op: container: args: @@ -260,7 +260,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_op(message: str):\n \"\"\"Print a message.\"\"\"\n \ \ print(message)\n\n" - image: python:3.7 + image: python:3.12 exec-print-op-2: container: args: @@ -287,7 +287,7 @@ pipelineSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_op(message: str):\n \"\"\"Print a message.\"\"\"\n \ \ print(message)\n\n" - image: python:3.7 + image: python:3.12 pipelineInfo: description: Shows how to use dsl.Condition(), dsl.ParallelFor, and dsl.ExitHandler(). name: tutorial-control-flows diff --git a/backend/src/v2/compiler/tektoncompiler/testdata/pod_metadata.yaml b/backend/src/v2/compiler/tektoncompiler/testdata/pod_metadata.yaml index 58cf1d201157..016994cad679 100644 --- a/backend/src/v2/compiler/tektoncompiler/testdata/pod_metadata.yaml +++ b/backend/src/v2/compiler/tektoncompiler/testdata/pod_metadata.yaml @@ -31,7 +31,7 @@ spec: hello_world(text):\n print(text)\n return text\n\nimport argparse\n_parser = argparse.ArgumentParser(prog=''Hello world'', description='''')\n_parser.add_argument(\"--text\", dest=\"text\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args - = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n"],"image":"python:3.7"}' + = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n"],"image":"python:3.12"}' - name: iteration-index value: "" - name: kubernetes-config @@ -137,7 +137,7 @@ spec: - configMapRef: name: metadata-grpc-configmap optional: true - image: python:3.7 + image: python:3.12 name: user-main - name: root-system-dag-driver params: diff --git a/backend/src/v2/compiler/testdata/component_used_twice.json b/backend/src/v2/compiler/testdata/component_used_twice.json index 6773a1a85040..79dcadcb6520 100644 --- a/backend/src/v2/compiler/testdata/component_used_twice.json +++ b/backend/src/v2/compiler/testdata/component_used_twice.json @@ -23,7 +23,7 @@ "program_path=$(mktemp)\nprintf \"%s\" \"$0\" > \"$program_path\"\npython3 -u \"$program_path\" \"$@\"\n", "def hello_world(text):\n print(text)\n return text\n\nimport argparse\n_parser = argparse.ArgumentParser(prog='Hello world', description='')\n_parser.add_argument(\"--text\", dest=\"text\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n" ], - "image": "python:3.7" + "image": "python:3.12" } } } diff --git a/backend/src/v2/compiler/testdata/create_mount_delete_dynamic_pvc.json b/backend/src/v2/compiler/testdata/create_mount_delete_dynamic_pvc.json index b4f3b5dc1f42..86d83dd3483e 100644 --- a/backend/src/v2/compiler/testdata/create_mount_delete_dynamic_pvc.json +++ b/backend/src/v2/compiler/testdata/create_mount_delete_dynamic_pvc.json @@ -73,7 +73,7 @@ "program_path=$(mktemp -d) printf \"%s\" \"$0\" > \"$program_path/ephemeral_component.py\" python3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\" ", "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import *\n\ndef comp():\n pass\n\n" ], - "image": "python:3.7" + "image": "python:3.12" } }, "exec-comp-2": { @@ -88,7 +88,7 @@ "program_path=$(mktemp -d) printf \"%s\" \"$0\" > \"$program_path/ephemeral_component.py\" python3 -m kfp.components.executor_main --component_module_path \"$program_path/ephemeral_component.py\" \"$@\" ", "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import *\n\ndef comp():\n pass\n\n" ], - "image": "python:3.7" + "image": "python:3.12" } }, "exec-createpvc": { diff --git a/backend/src/v2/compiler/testdata/hello_world.json b/backend/src/v2/compiler/testdata/hello_world.json index 0f45d03aaad1..423dc924d931 100644 --- a/backend/src/v2/compiler/testdata/hello_world.json +++ b/backend/src/v2/compiler/testdata/hello_world.json @@ -26,7 +26,7 @@ "program_path=$(mktemp)\nprintf \"%s\" \"$0\" > \"$program_path\"\npython3 -u \"$program_path\" \"$@\"\n", "def hello_world(text):\n print(text)\n return text\n\nimport argparse\n_parser = argparse.ArgumentParser(prog='Hello world', description='')\n_parser.add_argument(\"--text\", dest=\"text\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = hello_world(**_parsed_args)\n" ], - "image": "python:3.7" + "image": "python:3.12" } } } diff --git a/backend/src/v2/driver/driver_test.go b/backend/src/v2/driver/driver_test.go index bea24890033b..34a77cda1a87 100644 --- a/backend/src/v2/driver/driver_test.go +++ b/backend/src/v2/driver/driver_test.go @@ -49,7 +49,7 @@ func Test_initPodSpecPatch_acceleratorConfig(t *testing.T) { "Valid - nvidia.com/gpu", args{ &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec{ - Image: "python:3.7", + Image: "python:3.12", Args: []string{"--function_to_execute", "add"}, Command: []string{"sh", "-ec", "python3 -m kfp.components.executor_main"}, Resources: &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec{ @@ -88,7 +88,7 @@ func Test_initPodSpecPatch_acceleratorConfig(t *testing.T) { "Valid - amd.com/gpu", args{ &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec{ - Image: "python:3.7", + Image: "python:3.12", Args: []string{"--function_to_execute", "add"}, Command: []string{"sh", "-ec", "python3 -m kfp.components.executor_main"}, Resources: &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec{ @@ -127,7 +127,7 @@ func Test_initPodSpecPatch_acceleratorConfig(t *testing.T) { "Valid - cloud-tpus.google.com/v3", args{ &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec{ - Image: "python:3.7", + Image: "python:3.12", Args: []string{"--function_to_execute", "add"}, Command: []string{"sh", "-ec", "python3 -m kfp.components.executor_main"}, Resources: &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec{ @@ -166,7 +166,7 @@ func Test_initPodSpecPatch_acceleratorConfig(t *testing.T) { "Valid - cloud-tpus.google.com/v2", args{ &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec{ - Image: "python:3.7", + Image: "python:3.12", Args: []string{"--function_to_execute", "add"}, Command: []string{"sh", "-ec", "python3 -m kfp.components.executor_main"}, Resources: &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec{ @@ -205,7 +205,7 @@ func Test_initPodSpecPatch_acceleratorConfig(t *testing.T) { "Valid - custom string", args{ &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec{ - Image: "python:3.7", + Image: "python:3.12", Args: []string{"--function_to_execute", "add"}, Command: []string{"sh", "-ec", "python3 -m kfp.components.executor_main"}, Resources: &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec{ @@ -334,7 +334,7 @@ func Test_initPodSpecPatch_resourceRequests(t *testing.T) { "Valid - with requests", args{ &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec{ - Image: "python:3.7", + Image: "python:3.12", Args: []string{"--function_to_execute", "add"}, Command: []string{"sh", "-ec", "python3 -m kfp.components.executor_main"}, Resources: &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec{ @@ -370,7 +370,7 @@ func Test_initPodSpecPatch_resourceRequests(t *testing.T) { "Valid - zero requests", args{ &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec{ - Image: "python:3.7", + Image: "python:3.12", Args: []string{"--function_to_execute", "add"}, Command: []string{"sh", "-ec", "python3 -m kfp.components.executor_main"}, Resources: &pipelinespec.PipelineDeploymentConfig_PipelineContainerSpec_ResourceSpec{ diff --git a/backend/src/v2/test/Dockerfile b/backend/src/v2/test/Dockerfile index 7c38ed6c9f74..d66ae2e0816a 100644 --- a/backend/src/v2/test/Dockerfile +++ b/backend/src/v2/test/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM python:3.7-slim +FROM python:3.12-slim WORKDIR /workdir COPY backend/src/v2/test/requirements.txt backend/src/v2/test/ diff --git a/backend/src/v2/test/components/run_sample.yaml b/backend/src/v2/test/components/run_sample.yaml index d4b4c9b7e973..611689f5a919 100644 --- a/backend/src/v2/test/components/run_sample.yaml +++ b/backend/src/v2/test/components/run_sample.yaml @@ -24,7 +24,7 @@ inputs: - {name: backend_compiler, type: Binary} implementation: container: - image: python:3.7-alpine + image: python:3.12-alpine command: - sh - -exc diff --git a/backend/test/resources/v2-hello-world.yaml b/backend/test/resources/v2-hello-world.yaml index c20d47c0650b..aa240f6f67d8 100644 --- a/backend/test/resources/v2-hello-world.yaml +++ b/backend/test/resources/v2-hello-world.yaml @@ -30,7 +30,7 @@ deploymentSpec: _parsed_args = vars(_parser.parse_args()) _outputs = hello_world(**_parsed_args) - image: python:3.7 + image: python:3.12 pipelineInfo: name: hello-world root: diff --git a/backend/update_requirements.sh b/backend/update_requirements.sh index 920940e90928..9a756f4b3dbd 100755 --- a/backend/update_requirements.sh +++ b/backend/update_requirements.sh @@ -1,5 +1,5 @@ #!/bin/bash # This image should be in sync with Dockerfile. -IMAGE="python:3.7" +IMAGE="python:3.12" ../hack/update-requirements.sh $IMAGE requirements.txt diff --git a/components/azure/azuredevops/queue-pipeline/Dockerfile b/components/azure/azuredevops/queue-pipeline/Dockerfile index 311d4b5813a6..64c2a3b19cfa 100644 --- a/components/azure/azuredevops/queue-pipeline/Dockerfile +++ b/components/azure/azuredevops/queue-pipeline/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7-slim +FROM python:3.12-slim RUN pip install azure-devops diff --git a/components/azure/azureml/aml-register-model/Dockerfile b/components/azure/azureml/aml-register-model/Dockerfile index 8763bc76c9ca..392e63604af2 100644 --- a/components/azure/azureml/aml-register-model/Dockerfile +++ b/components/azure/azureml/aml-register-model/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7-slim +FROM python:3.12-slim # pip install COPY requirements.txt /scripts/requirements.txt diff --git a/components/contrib/CatBoost/Predict_class_probabilities/from_CSV/component.py b/components/contrib/CatBoost/Predict_class_probabilities/from_CSV/component.py index 60f7248903fb..de1d3c7fcf7d 100644 --- a/components/contrib/CatBoost/Predict_class_probabilities/from_CSV/component.py +++ b/components/contrib/CatBoost/Predict_class_probabilities/from_CSV/component.py @@ -53,7 +53,7 @@ def catboost_predict_class_probabilities( catboost_predict_class_probabilities_op = create_component_from_func( catboost_predict_class_probabilities, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['catboost==0.23'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/CatBoost/Predict_class_probabilities/from_CSV/component.yaml b/components/contrib/CatBoost/Predict_class_probabilities/from_CSV/component.yaml index e4cb6a7807e5..3aca60b64c51 100644 --- a/components/contrib/CatBoost/Predict_class_probabilities/from_CSV/component.yaml +++ b/components/contrib/CatBoost/Predict_class_probabilities/from_CSV/component.yaml @@ -25,7 +25,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/CatBoost/Predict_class_probabilities/from_CSV/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/CatBoost/Predict_classes/from_CSV/component.py b/components/contrib/CatBoost/Predict_classes/from_CSV/component.py index 4e932b55c34d..114264d10673 100644 --- a/components/contrib/CatBoost/Predict_classes/from_CSV/component.py +++ b/components/contrib/CatBoost/Predict_classes/from_CSV/component.py @@ -53,7 +53,7 @@ def catboost_predict_classes( catboost_predict_classes_op = create_component_from_func( catboost_predict_classes, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['catboost==0.22'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/CatBoost/Predict_classes/from_CSV/component.yaml b/components/contrib/CatBoost/Predict_classes/from_CSV/component.yaml index b289abba743c..11e60032d97b 100644 --- a/components/contrib/CatBoost/Predict_classes/from_CSV/component.yaml +++ b/components/contrib/CatBoost/Predict_classes/from_CSV/component.yaml @@ -25,7 +25,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/CatBoost/Predict_classes/from_CSV/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/CatBoost/Predict_values/from_CSV/component.py b/components/contrib/CatBoost/Predict_values/from_CSV/component.py index 959edfabd877..4a7754258aab 100644 --- a/components/contrib/CatBoost/Predict_values/from_CSV/component.py +++ b/components/contrib/CatBoost/Predict_values/from_CSV/component.py @@ -53,7 +53,7 @@ def catboost_predict_values( catboost_predict_values_op = create_component_from_func( catboost_predict_values, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['catboost==0.23'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/CatBoost/Predict_values/from_CSV/component.yaml b/components/contrib/CatBoost/Predict_values/from_CSV/component.yaml index 642d993d3800..703f71234f4e 100644 --- a/components/contrib/CatBoost/Predict_values/from_CSV/component.yaml +++ b/components/contrib/CatBoost/Predict_values/from_CSV/component.yaml @@ -25,7 +25,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/CatBoost/Predict_values/from_CSV/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/CatBoost/Train_classifier/from_CSV/component.py b/components/contrib/CatBoost/Train_classifier/from_CSV/component.py index 183f562c695f..89e3c85285ec 100644 --- a/components/contrib/CatBoost/Train_classifier/from_CSV/component.py +++ b/components/contrib/CatBoost/Train_classifier/from_CSV/component.py @@ -88,7 +88,7 @@ def catboost_train_classifier( catboost_train_classifier_op = create_component_from_func( catboost_train_classifier, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['catboost==0.23'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/CatBoost/Train_classifier/from_CSV/component.yaml b/components/contrib/CatBoost/Train_classifier/from_CSV/component.yaml index 54c58d840a2b..5a6c7cd499b0 100644 --- a/components/contrib/CatBoost/Train_classifier/from_CSV/component.yaml +++ b/components/contrib/CatBoost/Train_classifier/from_CSV/component.yaml @@ -46,7 +46,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/CatBoost/Train_classifier/from_CSV/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/CatBoost/Train_regression/from_CSV/component.py b/components/contrib/CatBoost/Train_regression/from_CSV/component.py index 84eb738376fe..3bb480866998 100644 --- a/components/contrib/CatBoost/Train_regression/from_CSV/component.py +++ b/components/contrib/CatBoost/Train_regression/from_CSV/component.py @@ -86,7 +86,7 @@ def catboost_train_regression( catboost_train_regression_op = create_component_from_func( catboost_train_regression, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['catboost==0.23'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/CatBoost/Train_regression/from_CSV/component.yaml b/components/contrib/CatBoost/Train_regression/from_CSV/component.yaml index 8361049a7ca1..bc2dd16513de 100644 --- a/components/contrib/CatBoost/Train_regression/from_CSV/component.yaml +++ b/components/contrib/CatBoost/Train_regression/from_CSV/component.yaml @@ -45,7 +45,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/CatBoost/Train_regression/from_CSV/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/CatBoost/convert_CatBoostModel_to_AppleCoreMLModel/component.py b/components/contrib/CatBoost/convert_CatBoostModel_to_AppleCoreMLModel/component.py index c018c994bc00..eeb479fba901 100644 --- a/components/contrib/CatBoost/convert_CatBoostModel_to_AppleCoreMLModel/component.py +++ b/components/contrib/CatBoost/convert_CatBoostModel_to_AppleCoreMLModel/component.py @@ -32,7 +32,7 @@ def convert_CatBoostModel_to_AppleCoreMLModel( create_component_from_func( convert_CatBoostModel_to_AppleCoreMLModel, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['catboost==0.22'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/CatBoost/convert_CatBoostModel_to_AppleCoreMLModel/component.yaml b/components/contrib/CatBoost/convert_CatBoostModel_to_AppleCoreMLModel/component.yaml index c2ab79130a50..7d075f00d62c 100644 --- a/components/contrib/CatBoost/convert_CatBoostModel_to_AppleCoreMLModel/component.yaml +++ b/components/contrib/CatBoost/convert_CatBoostModel_to_AppleCoreMLModel/component.yaml @@ -21,7 +21,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/CatBoost/convert_CatBoostModel_to_AppleCoreMLModel/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/CatBoost/convert_CatBoostModel_to_ONNX/component.py b/components/contrib/CatBoost/convert_CatBoostModel_to_ONNX/component.py index e4cbbddeadc5..06bf3d3c398a 100644 --- a/components/contrib/CatBoost/convert_CatBoostModel_to_ONNX/component.py +++ b/components/contrib/CatBoost/convert_CatBoostModel_to_ONNX/component.py @@ -27,7 +27,7 @@ def convert_CatBoostModel_to_ONNX( create_component_from_func( convert_CatBoostModel_to_ONNX, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['catboost==0.22'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/CatBoost/convert_CatBoostModel_to_ONNX/component.yaml b/components/contrib/CatBoost/convert_CatBoostModel_to_ONNX/component.yaml index 0d9cc302cb2c..c30bcc9a7165 100644 --- a/components/contrib/CatBoost/convert_CatBoostModel_to_ONNX/component.yaml +++ b/components/contrib/CatBoost/convert_CatBoostModel_to_ONNX/component.yaml @@ -21,7 +21,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/CatBoost/convert_CatBoostModel_to_ONNX/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/XGBoost/Predict/component.py b/components/contrib/XGBoost/Predict/component.py index 01ce24558039..0b61729b6a1f 100644 --- a/components/contrib/XGBoost/Predict/component.py +++ b/components/contrib/XGBoost/Predict/component.py @@ -46,7 +46,7 @@ def xgboost_predict( create_component_from_func( xgboost_predict, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=[ 'xgboost==1.1.1', 'pandas==1.0.5', diff --git a/components/contrib/XGBoost/Predict/component.yaml b/components/contrib/XGBoost/Predict/component.yaml index ccce27127065..0a6494d376bd 100644 --- a/components/contrib/XGBoost/Predict/component.yaml +++ b/components/contrib/XGBoost/Predict/component.yaml @@ -22,7 +22,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/XGBoost/Predict/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/XGBoost/Predict/from_ApacheParquet/component.py b/components/contrib/XGBoost/Predict/from_ApacheParquet/component.py index 37b1f773e31b..8f67f0f557a7 100644 --- a/components/contrib/XGBoost/Predict/from_ApacheParquet/component.py +++ b/components/contrib/XGBoost/Predict/from_ApacheParquet/component.py @@ -45,7 +45,7 @@ def xgboost_predict( create_component_from_func( xgboost_predict, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=[ 'xgboost==1.1.1', 'pandas==1.0.5', diff --git a/components/contrib/XGBoost/Predict/from_ApacheParquet/component.yaml b/components/contrib/XGBoost/Predict/from_ApacheParquet/component.yaml index d421cdc21ef5..411a12f2d651 100644 --- a/components/contrib/XGBoost/Predict/from_ApacheParquet/component.yaml +++ b/components/contrib/XGBoost/Predict/from_ApacheParquet/component.yaml @@ -22,7 +22,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/XGBoost/Predict/from_ApacheParquet/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/XGBoost/Train/component.py b/components/contrib/XGBoost/Train/component.py index ce9a0e301ea2..504faa85b81c 100644 --- a/components/contrib/XGBoost/Train/component.py +++ b/components/contrib/XGBoost/Train/component.py @@ -82,7 +82,7 @@ def xgboost_train( create_component_from_func( xgboost_train, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=[ 'xgboost==1.1.1', 'pandas==1.0.5', diff --git a/components/contrib/XGBoost/Train/component.yaml b/components/contrib/XGBoost/Train/component.yaml index 8d89a3514de2..dec2549f8ecc 100644 --- a/components/contrib/XGBoost/Train/component.yaml +++ b/components/contrib/XGBoost/Train/component.yaml @@ -42,7 +42,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/XGBoost/Train/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/XGBoost/Train/from_ApacheParquet/component.py b/components/contrib/XGBoost/Train/from_ApacheParquet/component.py index 579052edd119..bf76b8480a8c 100644 --- a/components/contrib/XGBoost/Train/from_ApacheParquet/component.py +++ b/components/contrib/XGBoost/Train/from_ApacheParquet/component.py @@ -81,7 +81,7 @@ def xgboost_train( create_component_from_func( xgboost_train, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=[ 'xgboost==1.1.1', 'pandas==1.0.5', diff --git a/components/contrib/XGBoost/Train/from_ApacheParquet/component.yaml b/components/contrib/XGBoost/Train/from_ApacheParquet/component.yaml index ee2e4e9f0d0a..989861662161 100644 --- a/components/contrib/XGBoost/Train/from_ApacheParquet/component.yaml +++ b/components/contrib/XGBoost/Train/from_ApacheParquet/component.yaml @@ -42,7 +42,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/XGBoost/Train/from_ApacheParquet/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/_converters/ApacheParquet/from_ApacheArrowFeather/component.py b/components/contrib/_converters/ApacheParquet/from_ApacheArrowFeather/component.py index c24b25ce15a5..567adfb88361 100644 --- a/components/contrib/_converters/ApacheParquet/from_ApacheArrowFeather/component.py +++ b/components/contrib/_converters/ApacheParquet/from_ApacheArrowFeather/component.py @@ -22,7 +22,7 @@ def convert_apache_arrow_feather_to_apache_parquet( create_component_from_func( convert_apache_arrow_feather_to_apache_parquet, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['pyarrow==0.17.1'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/_converters/ApacheParquet/from_ApacheArrowFeather/component.yaml b/components/contrib/_converters/ApacheParquet/from_ApacheArrowFeather/component.yaml index a7d147290be1..5e7afcb8702c 100644 --- a/components/contrib/_converters/ApacheParquet/from_ApacheArrowFeather/component.yaml +++ b/components/contrib/_converters/ApacheParquet/from_ApacheArrowFeather/component.yaml @@ -17,7 +17,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/_converters/ApacheParquet/from_ApacheArrowFeather/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/_converters/ApacheParquet/from_CSV/component.py b/components/contrib/_converters/ApacheParquet/from_CSV/component.py index 08290a65443d..b546188cbbad 100644 --- a/components/contrib/_converters/ApacheParquet/from_CSV/component.py +++ b/components/contrib/_converters/ApacheParquet/from_CSV/component.py @@ -21,7 +21,7 @@ def convert_csv_to_apache_parquet( create_component_from_func( convert_csv_to_apache_parquet, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['pyarrow==0.17.1'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/_converters/ApacheParquet/from_CSV/component.yaml b/components/contrib/_converters/ApacheParquet/from_CSV/component.yaml index 72d7e012e6f0..26fed2ce636e 100644 --- a/components/contrib/_converters/ApacheParquet/from_CSV/component.yaml +++ b/components/contrib/_converters/ApacheParquet/from_CSV/component.yaml @@ -16,7 +16,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/_converters/ApacheParquet/from_CSV/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/_converters/ApacheParquet/from_TSV/component.py b/components/contrib/_converters/ApacheParquet/from_TSV/component.py index 3edf45d2c2dd..8b3f5fc950de 100644 --- a/components/contrib/_converters/ApacheParquet/from_TSV/component.py +++ b/components/contrib/_converters/ApacheParquet/from_TSV/component.py @@ -21,7 +21,7 @@ def convert_tsv_to_apache_parquet( create_component_from_func( convert_tsv_to_apache_parquet, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['pyarrow==0.17.1'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/_converters/ApacheParquet/from_TSV/component.yaml b/components/contrib/_converters/ApacheParquet/from_TSV/component.yaml index 017d4a692e9f..8f15c9a6eb84 100644 --- a/components/contrib/_converters/ApacheParquet/from_TSV/component.yaml +++ b/components/contrib/_converters/ApacheParquet/from_TSV/component.yaml @@ -16,7 +16,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/_converters/ApacheParquet/from_TSV/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/_converters/ApacheParquet/to_ApacheArrowFeather/component.py b/components/contrib/_converters/ApacheParquet/to_ApacheArrowFeather/component.py index 08a259a58a4b..659c0573cbf4 100644 --- a/components/contrib/_converters/ApacheParquet/to_ApacheArrowFeather/component.py +++ b/components/contrib/_converters/ApacheParquet/to_ApacheArrowFeather/component.py @@ -22,7 +22,7 @@ def convert_apache_parquet_to_apache_arrow_feather( convert_apache_parquet_to_apache_arrow_feather_op = create_component_from_func( convert_apache_parquet_to_apache_arrow_feather, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['pyarrow==0.17.1', 'pandas==1.0.3'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/_converters/ApacheParquet/to_ApacheArrowFeather/component.yaml b/components/contrib/_converters/ApacheParquet/to_ApacheArrowFeather/component.yaml index 0a0fef6046ee..96a1b360da18 100644 --- a/components/contrib/_converters/ApacheParquet/to_ApacheArrowFeather/component.yaml +++ b/components/contrib/_converters/ApacheParquet/to_ApacheArrowFeather/component.yaml @@ -17,7 +17,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/_converters/ApacheParquet/to_ApacheArrowFeather/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/_converters/ApacheParquet/to_CSV/component.py b/components/contrib/_converters/ApacheParquet/to_CSV/component.py index 55fa3e93a12a..61faff50713c 100644 --- a/components/contrib/_converters/ApacheParquet/to_CSV/component.py +++ b/components/contrib/_converters/ApacheParquet/to_CSV/component.py @@ -24,7 +24,7 @@ def convert_apache_parquet_to_csv( convert_apache_parquet_to_csv_op = create_component_from_func( convert_apache_parquet_to_csv, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['pyarrow==0.17.1', 'pandas==1.0.3'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/_converters/ApacheParquet/to_CSV/component.yaml b/components/contrib/_converters/ApacheParquet/to_CSV/component.yaml index 095a0d19e483..7e9e7846b504 100644 --- a/components/contrib/_converters/ApacheParquet/to_CSV/component.yaml +++ b/components/contrib/_converters/ApacheParquet/to_CSV/component.yaml @@ -16,7 +16,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/_converters/ApacheParquet/to_CSV/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/_converters/ApacheParquet/to_TSV/component.py b/components/contrib/_converters/ApacheParquet/to_TSV/component.py index 4a09f9b6cc6f..3e1c530e8ab6 100644 --- a/components/contrib/_converters/ApacheParquet/to_TSV/component.py +++ b/components/contrib/_converters/ApacheParquet/to_TSV/component.py @@ -25,7 +25,7 @@ def convert_apache_parquet_to_tsv( convert_apache_parquet_to_tsv_op = create_component_from_func( convert_apache_parquet_to_tsv, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['pyarrow==0.17.1', 'pandas==1.0.3'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/_converters/ApacheParquet/to_TSV/component.yaml b/components/contrib/_converters/ApacheParquet/to_TSV/component.yaml index a213d5d92502..019ecc5ab030 100644 --- a/components/contrib/_converters/ApacheParquet/to_TSV/component.yaml +++ b/components/contrib/_converters/ApacheParquet/to_TSV/component.yaml @@ -16,7 +16,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/_converters/ApacheParquet/to_TSV/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/arena/docker/Dockerfile b/components/contrib/arena/docker/Dockerfile index adea6952f74a..4e65d58c923f 100644 --- a/components/contrib/arena/docker/Dockerfile +++ b/components/contrib/arena/docker/Dockerfile @@ -18,7 +18,7 @@ RUN curl -o /usr/local/bin/kubectl https://storage.googleapis.com/kubernetes-rel # FROM python:3.6.8-stretch -FROM python:3.7-alpine3.9 +FROM python:3.12-alpine3.9 RUN apk update && \ apk add --no-cache ca-certificates py-dev python-setuptools wget unzip git bash \ diff --git a/components/contrib/dataset_manipulation/split_data_into_folds/in_CSV/component.py b/components/contrib/dataset_manipulation/split_data_into_folds/in_CSV/component.py index c9b0ce2e351e..fb1ef60ade8d 100644 --- a/components/contrib/dataset_manipulation/split_data_into_folds/in_CSV/component.py +++ b/components/contrib/dataset_manipulation/split_data_into_folds/in_CSV/component.py @@ -80,7 +80,7 @@ def split_table_into_folds( if __name__ == '__main__': split_table_into_folds_op = create_component_from_func( split_table_into_folds, - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['scikit-learn==0.23.1', 'pandas==1.0.5'], output_component_file='component.yaml', annotations={ diff --git a/components/contrib/dataset_manipulation/split_data_into_folds/in_CSV/component.yaml b/components/contrib/dataset_manipulation/split_data_into_folds/in_CSV/component.yaml index 274ae0562e09..e2e78be534e2 100644 --- a/components/contrib/dataset_manipulation/split_data_into_folds/in_CSV/component.yaml +++ b/components/contrib/dataset_manipulation/split_data_into_folds/in_CSV/component.yaml @@ -39,7 +39,7 @@ outputs: - {name: test_5, type: CSV} implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/google-cloud/automl/create_dataset_for_tables/component.py b/components/contrib/google-cloud/automl/create_dataset_for_tables/component.py index 085e84f349fe..ed7e755d59dd 100644 --- a/components/contrib/google-cloud/automl/create_dataset_for_tables/component.py +++ b/components/contrib/google-cloud/automl/create_dataset_for_tables/component.py @@ -60,7 +60,7 @@ def automl_create_dataset_for_tables( automl_create_dataset_for_tables_op = create_component_from_func( automl_create_dataset_for_tables, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['google-cloud-automl==0.4.0'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/google-cloud/automl/create_dataset_for_tables/component.yaml b/components/contrib/google-cloud/automl/create_dataset_for_tables/component.yaml index 4e4f314f0dae..7a2d584488c4 100644 --- a/components/contrib/google-cloud/automl/create_dataset_for_tables/component.yaml +++ b/components/contrib/google-cloud/automl/create_dataset_for_tables/component.yaml @@ -21,7 +21,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/create_dataset_for_tables/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/google-cloud/automl/create_model_for_tables/component.py b/components/contrib/google-cloud/automl/create_model_for_tables/component.py index f4798cb33d68..4b85b042fbf1 100644 --- a/components/contrib/google-cloud/automl/create_model_for_tables/component.py +++ b/components/contrib/google-cloud/automl/create_model_for_tables/component.py @@ -62,7 +62,7 @@ def automl_create_model_for_tables( automl_create_model_for_tables_op = create_component_from_func( automl_create_model_for_tables, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['google-cloud-automl==0.4.0'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/google-cloud/automl/create_model_for_tables/component.yaml b/components/contrib/google-cloud/automl/create_model_for_tables/component.yaml index d14440ad04d7..fbe860b9abc5 100644 --- a/components/contrib/google-cloud/automl/create_model_for_tables/component.yaml +++ b/components/contrib/google-cloud/automl/create_model_for_tables/component.yaml @@ -18,7 +18,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/create_model_for_tables/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/google-cloud/automl/export_data_to_gcs/component.py b/components/contrib/google-cloud/automl/export_data_to_gcs/component.py index f8323b78f35a..626a07e674c2 100644 --- a/components/contrib/google-cloud/automl/export_data_to_gcs/component.py +++ b/components/contrib/google-cloud/automl/export_data_to_gcs/component.py @@ -53,7 +53,7 @@ def automl_export_data_to_gcs( automl_export_data_to_gcs_op = create_component_from_func( automl_export_data_to_gcs, - output_component_file='component.yaml',base_image='python:3.7', + output_component_file='component.yaml',base_image='python:3.12', annotations={ "author": "Alexey Volkov ", "canonical_location": "https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/export_data_to_gcs/component.yaml", diff --git a/components/contrib/google-cloud/automl/export_data_to_gcs/component.yaml b/components/contrib/google-cloud/automl/export_data_to_gcs/component.yaml index 6b83078a6c51..2d26b5d3f6b9 100644 --- a/components/contrib/google-cloud/automl/export_data_to_gcs/component.yaml +++ b/components/contrib/google-cloud/automl/export_data_to_gcs/component.yaml @@ -23,7 +23,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/export_data_to_gcs/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - python3 - -u diff --git a/components/contrib/google-cloud/automl/import_data_from_bigquery/component.py b/components/contrib/google-cloud/automl/import_data_from_bigquery/component.py index 508803a475bb..e54e505a8306 100644 --- a/components/contrib/google-cloud/automl/import_data_from_bigquery/component.py +++ b/components/contrib/google-cloud/automl/import_data_from_bigquery/component.py @@ -53,7 +53,7 @@ def automl_import_data_from_bigquery( automl_import_data_from_bigquery_op = create_component_from_func( automl_import_data_from_bigquery, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', annotations={ "author": "Alexey Volkov ", "canonical_location": "https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/import_data_from_bigquery/component.yaml", diff --git a/components/contrib/google-cloud/automl/import_data_from_bigquery/component.yaml b/components/contrib/google-cloud/automl/import_data_from_bigquery/component.yaml index 8da2ee82fd0e..26b63805c707 100644 --- a/components/contrib/google-cloud/automl/import_data_from_bigquery/component.yaml +++ b/components/contrib/google-cloud/automl/import_data_from_bigquery/component.yaml @@ -19,7 +19,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/import_data_from_bigquery/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - python3 - -u diff --git a/components/contrib/google-cloud/automl/import_data_from_gcs/component.py b/components/contrib/google-cloud/automl/import_data_from_gcs/component.py index e24eba764b7c..2d2f4fc70295 100644 --- a/components/contrib/google-cloud/automl/import_data_from_gcs/component.py +++ b/components/contrib/google-cloud/automl/import_data_from_gcs/component.py @@ -54,7 +54,7 @@ def automl_import_data_from_gcs( automl_import_data_from_gcs_op = create_component_from_func( automl_import_data_from_gcs, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', annotations={ "author": "Alexey Volkov ", "canonical_location": "https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/import_data_from_gcs/component.yaml", diff --git a/components/contrib/google-cloud/automl/import_data_from_gcs/component.yaml b/components/contrib/google-cloud/automl/import_data_from_gcs/component.yaml index 09a82a457f6b..4c0ece95393b 100644 --- a/components/contrib/google-cloud/automl/import_data_from_gcs/component.yaml +++ b/components/contrib/google-cloud/automl/import_data_from_gcs/component.yaml @@ -20,7 +20,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/import_data_from_gcs/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - python3 - -u diff --git a/components/contrib/google-cloud/automl/prediction_service_batch_predict/component.py b/components/contrib/google-cloud/automl/prediction_service_batch_predict/component.py index b2d9d34dc02e..30f7bf5f98a8 100644 --- a/components/contrib/google-cloud/automl/prediction_service_batch_predict/component.py +++ b/components/contrib/google-cloud/automl/prediction_service_batch_predict/component.py @@ -70,7 +70,7 @@ def automl_prediction_service_batch_predict( automl_prediction_service_batch_predict_op = create_component_from_func( automl_prediction_service_batch_predict, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', annotations={ "author": "Alexey Volkov ", "canonical_location": "https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/prediction_service_batch_predict/component.yaml", diff --git a/components/contrib/google-cloud/automl/prediction_service_batch_predict/component.yaml b/components/contrib/google-cloud/automl/prediction_service_batch_predict/component.yaml index fb7d8133f671..bb95cef41ed8 100644 --- a/components/contrib/google-cloud/automl/prediction_service_batch_predict/component.yaml +++ b/components/contrib/google-cloud/automl/prediction_service_batch_predict/component.yaml @@ -33,7 +33,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/prediction_service_batch_predict/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - python3 - -u diff --git a/components/contrib/google-cloud/automl/split_dataset_table_column_names/component.py b/components/contrib/google-cloud/automl/split_dataset_table_column_names/component.py index 582aa5e8400d..ac0398f0b912 100644 --- a/components/contrib/google-cloud/automl/split_dataset_table_column_names/component.py +++ b/components/contrib/google-cloud/automl/split_dataset_table_column_names/component.py @@ -51,7 +51,7 @@ def automl_split_dataset_table_column_names( automl_split_dataset_table_column_names_op = create_component_from_func( automl_split_dataset_table_column_names, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', annotations={ "author": "Alexey Volkov ", "canonical_location": "https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/split_dataset_table_column_names/component.yaml", diff --git a/components/contrib/google-cloud/automl/split_dataset_table_column_names/component.yaml b/components/contrib/google-cloud/automl/split_dataset_table_column_names/component.yaml index 05939a3f8b01..4ae555f9a66c 100644 --- a/components/contrib/google-cloud/automl/split_dataset_table_column_names/component.yaml +++ b/components/contrib/google-cloud/automl/split_dataset_table_column_names/component.yaml @@ -19,7 +19,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/gcp/automl/split_dataset_table_column_names/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - python3 - -u diff --git a/components/contrib/ml_metrics/Aggregate_regression_metrics/component.py b/components/contrib/ml_metrics/Aggregate_regression_metrics/component.py index aae1b88a9bba..507d2c3ccd83 100644 --- a/components/contrib/ml_metrics/Aggregate_regression_metrics/component.py +++ b/components/contrib/ml_metrics/Aggregate_regression_metrics/component.py @@ -51,7 +51,7 @@ def aggregate_regression_metrics( aggregate_regression_metrics_op = create_component_from_func( aggregate_regression_metrics, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', annotations={ "author": "Alexey Volkov ", "canonical_location": "https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/ml_metrics/Aggregate_regression_metrics/component.yaml", diff --git a/components/contrib/ml_metrics/Aggregate_regression_metrics/component.yaml b/components/contrib/ml_metrics/Aggregate_regression_metrics/component.yaml index 35853a962340..bae6d986c674 100644 --- a/components/contrib/ml_metrics/Aggregate_regression_metrics/component.yaml +++ b/components/contrib/ml_metrics/Aggregate_regression_metrics/component.yaml @@ -23,7 +23,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/ml_metrics/Aggregate_regression_metrics/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - python3 - -u diff --git a/components/contrib/ml_metrics/Calculate_classification_metrics/_samples/sample_pipleine.py b/components/contrib/ml_metrics/Calculate_classification_metrics/_samples/sample_pipleine.py index 19cfe8604521..d8d512e4cfbb 100644 --- a/components/contrib/ml_metrics/Calculate_classification_metrics/_samples/sample_pipleine.py +++ b/components/contrib/ml_metrics/Calculate_classification_metrics/_samples/sample_pipleine.py @@ -24,7 +24,7 @@ def convert_values_to_int(text_path: InputPath('Text'), convert_values_to_int_op = create_component_from_func( func=convert_values_to_int, - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['pandas==1.1'], ) diff --git a/components/contrib/ml_metrics/Calculate_classification_metrics/from_CSV/component.py b/components/contrib/ml_metrics/Calculate_classification_metrics/from_CSV/component.py index e9e1bc83bbc2..69179900ab5e 100644 --- a/components/contrib/ml_metrics/Calculate_classification_metrics/from_CSV/component.py +++ b/components/contrib/ml_metrics/Calculate_classification_metrics/from_CSV/component.py @@ -70,6 +70,6 @@ def calculate_classification_metrics_from_csv( calculate_regression_metrics_from_csv_op = create_component_from_func( calculate_classification_metrics_from_csv, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['numpy==1.19.0', 'scikit-learn==0.23.2'] ) diff --git a/components/contrib/ml_metrics/Calculate_classification_metrics/from_CSV/component.yaml b/components/contrib/ml_metrics/Calculate_classification_metrics/from_CSV/component.yaml index 7cbbfa32340d..9646ebc66245 100644 --- a/components/contrib/ml_metrics/Calculate_classification_metrics/from_CSV/component.yaml +++ b/components/contrib/ml_metrics/Calculate_classification_metrics/from_CSV/component.yaml @@ -16,7 +16,7 @@ outputs: - {name: accuracy, type: Float} implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/ml_metrics/Calculate_regression_metrics/from_CSV/component.py b/components/contrib/ml_metrics/Calculate_regression_metrics/from_CSV/component.py index dcb57dce0106..6d64e9f01ce2 100644 --- a/components/contrib/ml_metrics/Calculate_regression_metrics/from_CSV/component.py +++ b/components/contrib/ml_metrics/Calculate_regression_metrics/from_CSV/component.py @@ -61,7 +61,7 @@ def calculate_regression_metrics_from_csv( calculate_regression_metrics_from_csv_op = create_component_from_func( calculate_regression_metrics_from_csv, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['numpy==1.19.0'], annotations={ "author": "Alexey Volkov ", diff --git a/components/contrib/ml_metrics/Calculate_regression_metrics/from_CSV/component.yaml b/components/contrib/ml_metrics/Calculate_regression_metrics/from_CSV/component.yaml index 602405cf850b..679c61f08b9e 100644 --- a/components/contrib/ml_metrics/Calculate_regression_metrics/from_CSV/component.yaml +++ b/components/contrib/ml_metrics/Calculate_regression_metrics/from_CSV/component.yaml @@ -20,7 +20,7 @@ outputs: - {name: metrics, type: JsonObject} implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/notebooks/Run_notebook_using_papermill/component.yaml b/components/contrib/notebooks/Run_notebook_using_papermill/component.yaml index d1b08c93d252..e82a6e81ef08 100644 --- a/components/contrib/notebooks/Run_notebook_using_papermill/component.yaml +++ b/components/contrib/notebooks/Run_notebook_using_papermill/component.yaml @@ -16,7 +16,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/notebooks/Run_notebook_using_papermill/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -exc diff --git a/components/contrib/pandas/Transform_DataFrame/in_ApacheParquet_format/component.py b/components/contrib/pandas/Transform_DataFrame/in_ApacheParquet_format/component.py index 4c44233f696b..960a24e144d7 100644 --- a/components/contrib/pandas/Transform_DataFrame/in_ApacheParquet_format/component.py +++ b/components/contrib/pandas/Transform_DataFrame/in_ApacheParquet_format/component.py @@ -35,7 +35,7 @@ def Pandas_Transform_DataFrame_in_ApacheParquet_format( Pandas_Transform_DataFrame_in_ApacheParquet_format_op = create_component_from_func( Pandas_Transform_DataFrame_in_ApacheParquet_format, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=[ 'pandas==1.0.4', 'pyarrow==0.14.1', diff --git a/components/contrib/pandas/Transform_DataFrame/in_ApacheParquet_format/component.yaml b/components/contrib/pandas/Transform_DataFrame/in_ApacheParquet_format/component.yaml index 364f6273e4fa..9f665350ea87 100644 --- a/components/contrib/pandas/Transform_DataFrame/in_ApacheParquet_format/component.yaml +++ b/components/contrib/pandas/Transform_DataFrame/in_ApacheParquet_format/component.yaml @@ -27,7 +27,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/pandas/Transform_DataFrame/in_ApacheParquet_format/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/pandas/Transform_DataFrame/in_CSV_format/component.py b/components/contrib/pandas/Transform_DataFrame/in_CSV_format/component.py index 666351731e92..f3f2a92f7442 100644 --- a/components/contrib/pandas/Transform_DataFrame/in_CSV_format/component.py +++ b/components/contrib/pandas/Transform_DataFrame/in_CSV_format/component.py @@ -40,7 +40,7 @@ def Pandas_Transform_DataFrame_in_CSV_format( Pandas_Transform_DataFrame_in_CSV_format_op = create_component_from_func( Pandas_Transform_DataFrame_in_CSV_format, output_component_file='component.yaml', - base_image='python:3.7', + base_image='python:3.12', packages_to_install=[ 'pandas==1.0.4', ], diff --git a/components/contrib/pandas/Transform_DataFrame/in_CSV_format/component.yaml b/components/contrib/pandas/Transform_DataFrame/in_CSV_format/component.yaml index 8520bb3a573e..6d223227251f 100644 --- a/components/contrib/pandas/Transform_DataFrame/in_CSV_format/component.yaml +++ b/components/contrib/pandas/Transform_DataFrame/in_CSV_format/component.yaml @@ -27,7 +27,7 @@ metadata: canonical_location: 'https://raw.githubusercontent.com/Ark-kun/pipeline_components/master/components/pandas/Transform_DataFrame/in_CSV_format/component.yaml' implementation: container: - image: python:3.7 + image: python:3.12 command: - sh - -c diff --git a/components/contrib/presto/query/Dockerfile b/components/contrib/presto/query/Dockerfile index 85ebd0a90917..9a62be2dada9 100644 --- a/components/contrib/presto/query/Dockerfile +++ b/components/contrib/presto/query/Dockerfile @@ -10,7 +10,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM python:3.7 +FROM python:3.12 COPY requirements.txt . RUN python3 -m pip install -r \ diff --git a/components/google-cloud/google_cloud_pipeline_components/preview/automl/tabular/wide_and_deep_hyperparameter_tuning_job_pipeline.yaml b/components/google-cloud/google_cloud_pipeline_components/preview/automl/tabular/wide_and_deep_hyperparameter_tuning_job_pipeline.yaml index 056bca0d92d1..8ffdbcc83ed8 100644 --- a/components/google-cloud/google_cloud_pipeline_components/preview/automl/tabular/wide_and_deep_hyperparameter_tuning_job_pipeline.yaml +++ b/components/google-cloud/google_cloud_pipeline_components/preview/automl/tabular/wide_and_deep_hyperparameter_tuning_job_pipeline.yaml @@ -2954,7 +2954,7 @@ deploymentSpec: \ warnings.warn(\n f'The overrides {extra_override_str} were not\ \ found in the params and '\n 'will be ignored.'\n )\n\n return\ \ study_spec_parameters\n\n" - image: python:3.7 + image: python:3.12 exec-model-batch-predict: container: args: diff --git a/components/google-cloud/google_cloud_pipeline_components/preview/automl/tabular/xgboost_hyperparameter_tuning_job_pipeline.yaml b/components/google-cloud/google_cloud_pipeline_components/preview/automl/tabular/xgboost_hyperparameter_tuning_job_pipeline.yaml index 7b6890aa39d5..d9b2f050c514 100644 --- a/components/google-cloud/google_cloud_pipeline_components/preview/automl/tabular/xgboost_hyperparameter_tuning_job_pipeline.yaml +++ b/components/google-cloud/google_cloud_pipeline_components/preview/automl/tabular/xgboost_hyperparameter_tuning_job_pipeline.yaml @@ -3354,7 +3354,7 @@ deploymentSpec: \ # specs from user input and the default booster parameter specs.\n\ \ override_param['conditional_parameter_specs'] = booster_param_specs\n\ \n return study_spec_parameters\n\n" - image: python:3.7 + image: python:3.12 exec-model-batch-predict: container: args: diff --git a/components/google-cloud/google_cloud_pipeline_components/v1/automl/tabular/deprecated/default_pipeline.json b/components/google-cloud/google_cloud_pipeline_components/v1/automl/tabular/deprecated/default_pipeline.json index 5133d9cf2e8b..54b8ab18f424 100644 --- a/components/google-cloud/google_cloud_pipeline_components/v1/automl/tabular/deprecated/default_pipeline.json +++ b/components/google-cloud/google_cloud_pipeline_components/v1/automl/tabular/deprecated/default_pipeline.json @@ -6695,7 +6695,7 @@ "program_path=$(mktemp)\nprintf \"%s\" \"$0\" > \"$program_path\"\npython3 -u \"$program_path\" \"$@\"\n", "def _bool_identity(value):\n \"\"\"Returns boolean value.\n\n Args:\n value: Boolean value to return\n\n Returns:\n Boolean value.\n \"\"\"\n return 'true' if value else 'false'\n\ndef _deserialize_bool(s) -> bool:\n from distutils.util import strtobool\n return strtobool(s) == 1\n\ndef _serialize_str(str_value: str) -> str:\n if not isinstance(str_value, str):\n raise TypeError('Value \"{}\" has type \"{}\" instead of str.'.format(\n str(str_value), str(type(str_value))))\n return str_value\n\nimport argparse\n_parser = argparse.ArgumentParser(prog='Bool identity', description='Returns boolean value.')\n_parser.add_argument(\"--value\", dest=\"value\", type=_deserialize_bool, required=True, default=argparse.SUPPRESS)\n_parser.add_argument(\"----output-paths\", dest=\"_output_paths\", type=str, nargs=1)\n_parsed_args = vars(_parser.parse_args())\n_output_files = _parsed_args.pop(\"_output_paths\", [])\n\n_outputs = _bool_identity(**_parsed_args)\n\n_outputs = [_outputs]\n\n_output_serializers = [\n _serialize_str,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, 'w') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n" ], - "image": "python:3.7-slim" + "image": "python:3.12-slim" } }, "exec-bool-identity-2": { @@ -6712,7 +6712,7 @@ "program_path=$(mktemp)\nprintf \"%s\" \"$0\" > \"$program_path\"\npython3 -u \"$program_path\" \"$@\"\n", "def _bool_identity(value):\n \"\"\"Returns boolean value.\n\n Args:\n value: Boolean value to return\n\n Returns:\n Boolean value.\n \"\"\"\n return 'true' if value else 'false'\n\ndef _deserialize_bool(s) -> bool:\n from distutils.util import strtobool\n return strtobool(s) == 1\n\ndef _serialize_str(str_value: str) -> str:\n if not isinstance(str_value, str):\n raise TypeError('Value \"{}\" has type \"{}\" instead of str.'.format(\n str(str_value), str(type(str_value))))\n return str_value\n\nimport argparse\n_parser = argparse.ArgumentParser(prog='Bool identity', description='Returns boolean value.')\n_parser.add_argument(\"--value\", dest=\"value\", type=_deserialize_bool, required=True, default=argparse.SUPPRESS)\n_parser.add_argument(\"----output-paths\", dest=\"_output_paths\", type=str, nargs=1)\n_parsed_args = vars(_parser.parse_args())\n_output_files = _parsed_args.pop(\"_output_paths\", [])\n\n_outputs = _bool_identity(**_parsed_args)\n\n_outputs = [_outputs]\n\n_output_serializers = [\n _serialize_str,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, 'w') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n" ], - "image": "python:3.7-slim" + "image": "python:3.12-slim" } }, "exec-merge-materialized-splits": { @@ -6731,7 +6731,7 @@ "program_path=$(mktemp)\nprintf \"%s\" \"$0\" > \"$program_path\"\npython3 -u \"$program_path\" \"$@\"\n", "def _make_parent_dirs_and_return_path(file_path: str):\n import os\n os.makedirs(os.path.dirname(file_path), exist_ok=True)\n return file_path\n\ndef _merge_materialized_splits(\n split_0,\n split_1,\n splits,\n):\n \"\"\"Merge two materialized splits.\n\n Args:\n split_0: The first materialized split.\n split_1: The second materialized split.\n splits: The merged materialized split.\n \"\"\"\n with open(split_0, 'r') as f:\n split_0_content = f.read()\n with open(split_1, 'r') as f:\n split_1_content = f.read()\n with open(splits, 'w') as f:\n f.write(','.join([split_0_content, split_1_content]))\n\nimport argparse\n_parser = argparse.ArgumentParser(prog='Merge materialized splits', description='Merge two materialized splits.')\n_parser.add_argument(\"--split-0\", dest=\"split_0\", type=str, required=True, default=argparse.SUPPRESS)\n_parser.add_argument(\"--split-1\", dest=\"split_1\", type=str, required=True, default=argparse.SUPPRESS)\n_parser.add_argument(\"--splits\", dest=\"splits\", type=_make_parent_dirs_and_return_path, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = _merge_materialized_splits(**_parsed_args)\n" ], - "image": "python:3.7-slim" + "image": "python:3.12-slim" } }, "exec-model-batch-explanation": { @@ -7355,7 +7355,7 @@ "program_path=$(mktemp)\nprintf \"%s\" \"$0\" > \"$program_path\"\npython3 -u \"$program_path\" \"$@\"\n", "def _read_input_uri(split_uri):\n \"\"\"Construct Dataset based on the batch prediction job.\n\n Args:\n split_uri: Tbe path to the file that contains Dataset data.\n\n Returns:\n The list of string that represents the batch prediction input files.\n \"\"\"\n # pylint: disable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n import json\n # pylint: enable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n with open(split_uri, 'r') as f:\n data_source = json.loads(f.read())\n return data_source['tf_record_data_source']['file_patterns']\n\ndef _serialize_json(obj) -> str:\n if isinstance(obj, str):\n return obj\n import json\n\n def default_serializer(obj):\n if hasattr(obj, 'to_struct'):\n return obj.to_struct()\n else:\n raise TypeError(\n \"Object of type '%s' is not JSON serializable and does not have .to_struct() method.\"\n % obj.__class__.__name__)\n\n return json.dumps(obj, default=default_serializer, sort_keys=True)\n\nimport argparse\n_parser = argparse.ArgumentParser(prog='Read input uri', description='Construct Dataset based on the batch prediction job.')\n_parser.add_argument(\"--split-uri\", dest=\"split_uri\", type=str, required=True, default=argparse.SUPPRESS)\n_parser.add_argument(\"----output-paths\", dest=\"_output_paths\", type=str, nargs=1)\n_parsed_args = vars(_parser.parse_args())\n_output_files = _parsed_args.pop(\"_output_paths\", [])\n\n_outputs = _read_input_uri(**_parsed_args)\n\n_outputs = [_outputs]\n\n_output_serializers = [\n _serialize_json,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, 'w') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n" ], - "image": "python:3.7-slim" + "image": "python:3.12-slim" } }, "exec-read-input-uri-2": { @@ -7372,7 +7372,7 @@ "program_path=$(mktemp)\nprintf \"%s\" \"$0\" > \"$program_path\"\npython3 -u \"$program_path\" \"$@\"\n", "def _read_input_uri(split_uri):\n \"\"\"Construct Dataset based on the batch prediction job.\n\n Args:\n split_uri: Tbe path to the file that contains Dataset data.\n\n Returns:\n The list of string that represents the batch prediction input files.\n \"\"\"\n # pylint: disable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n import json\n # pylint: enable=g-import-not-at-top,import-outside-toplevel,redefined-outer-name,reimported\n with open(split_uri, 'r') as f:\n data_source = json.loads(f.read())\n return data_source['tf_record_data_source']['file_patterns']\n\ndef _serialize_json(obj) -> str:\n if isinstance(obj, str):\n return obj\n import json\n\n def default_serializer(obj):\n if hasattr(obj, 'to_struct'):\n return obj.to_struct()\n else:\n raise TypeError(\n \"Object of type '%s' is not JSON serializable and does not have .to_struct() method.\"\n % obj.__class__.__name__)\n\n return json.dumps(obj, default=default_serializer, sort_keys=True)\n\nimport argparse\n_parser = argparse.ArgumentParser(prog='Read input uri', description='Construct Dataset based on the batch prediction job.')\n_parser.add_argument(\"--split-uri\", dest=\"split_uri\", type=str, required=True, default=argparse.SUPPRESS)\n_parser.add_argument(\"----output-paths\", dest=\"_output_paths\", type=str, nargs=1)\n_parsed_args = vars(_parser.parse_args())\n_output_files = _parsed_args.pop(\"_output_paths\", [])\n\n_outputs = _read_input_uri(**_parsed_args)\n\n_outputs = [_outputs]\n\n_output_serializers = [\n _serialize_json,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, 'w') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n" ], - "image": "python:3.7-slim" + "image": "python:3.12-slim" } }, "exec-set-model-can-skip-validation": { diff --git a/components/local/base/Dockerfile b/components/local/base/Dockerfile index 7bfe0552fe69..455c9c32c20b 100644 --- a/components/local/base/Dockerfile +++ b/components/local/base/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM python:3.7 +FROM python:3.12 COPY requirements.txt . RUN python3 -m pip install -r \ diff --git a/hack/update-requirements.sh b/hack/update-requirements.sh index d7879ab26a44..c59a1dbd07a9 100755 --- a/hack/update-requirements.sh +++ b/hack/update-requirements.sh @@ -16,7 +16,7 @@ # Usage: ./update_requirements.sh requirements.txt set -euo pipefail -IMAGE=${1:-"python:3.7"} +IMAGE=${1:-"python:3.12"} docker run -i --rm --entrypoint "" "$IMAGE" sh -c ' python3 -m pip install pip setuptools --quiet --upgrade python3 -m pip install pip-tools==6.14.0 --quiet diff --git a/manifests/kustomize/base/installs/multi-user/pipelines-profile-controller/deployment.yaml b/manifests/kustomize/base/installs/multi-user/pipelines-profile-controller/deployment.yaml index 99dd9e21c61a..4c2e760819dd 100644 --- a/manifests/kustomize/base/installs/multi-user/pipelines-profile-controller/deployment.yaml +++ b/manifests/kustomize/base/installs/multi-user/pipelines-profile-controller/deployment.yaml @@ -11,7 +11,7 @@ spec: spec: containers: - name: profile-controller - image: python:3.7 + image: python:3.12 command: ["python", "/hooks/sync.py"] envFrom: - configMapRef: diff --git a/samples/contrib/versioned-pipeline-ci-samples/helloworld-ci-sample/cloudbuild.yaml b/samples/contrib/versioned-pipeline-ci-samples/helloworld-ci-sample/cloudbuild.yaml index 7a0c7b503c31..490f9a015149 100644 --- a/samples/contrib/versioned-pipeline-ci-samples/helloworld-ci-sample/cloudbuild.yaml +++ b/samples/contrib/versioned-pipeline-ci-samples/helloworld-ci-sample/cloudbuild.yaml @@ -12,7 +12,7 @@ steps: "${_CODE_PATH}/helloworld", ] id: "BuildImages" - - name: "python:3.7-slim" + - name: "python:3.12-slim" entrypoint: "/bin/sh" args: [ "-c", diff --git a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/cloudbuild.yaml b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/cloudbuild.yaml index 665ce878b2e5..9c9dc59e05de 100644 --- a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/cloudbuild.yaml +++ b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/cloudbuild.yaml @@ -114,7 +114,7 @@ steps: id: "PushSubmitImage" waitFor: ["BuildSubmitImage"] - - name: "python:3.7-slim" + - name: "python:3.12-slim" entrypoint: "/bin/sh" args: [ "-c", diff --git a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/download_dataset/Dockerfile b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/download_dataset/Dockerfile index fcfaa1ed722c..23a5c38b175b 100644 --- a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/download_dataset/Dockerfile +++ b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/download_dataset/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7 +FROM python:3.12 ENV KAGGLE_USERNAME=[YOUR KAGGLE USERNAME] \ KAGGLE_KEY=[YOUR KAGGLE KEY] COPY requirements.txt . diff --git a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/submit_result/Dockerfile b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/submit_result/Dockerfile index 69dd18958006..9ab0c39d1210 100644 --- a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/submit_result/Dockerfile +++ b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/submit_result/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7 +FROM python:3.12 ENV KAGGLE_USERNAME=[YOUR KAGGLE USERNAME] \ KAGGLE_KEY=[YOUR KAGGLE KEY] COPY requirements.txt . diff --git a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/train_model/Dockerfile b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/train_model/Dockerfile index efcc30306b3c..9b0fc61af2d1 100644 --- a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/train_model/Dockerfile +++ b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/train_model/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7 +FROM python:3.12 COPY ./train.py . COPY requirements.txt . RUN python3 -m pip install -r \ diff --git a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/visualize_table/Dockerfile b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/visualize_table/Dockerfile index c839d1504edf..fcb047376b0f 100644 --- a/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/visualize_table/Dockerfile +++ b/samples/contrib/versioned-pipeline-ci-samples/kaggle-ci-sample/visualize_table/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7 +FROM python:3.12 COPY requirements.txt . RUN python3 -m pip install -r \ requirements.txt --quiet --no-cache-dir \ diff --git a/samples/contrib/versioned-pipeline-ci-samples/mnist-ci-sample/cloudbuild.yaml b/samples/contrib/versioned-pipeline-ci-samples/mnist-ci-sample/cloudbuild.yaml index 07931245d3c8..fd8f7df1bef6 100644 --- a/samples/contrib/versioned-pipeline-ci-samples/mnist-ci-sample/cloudbuild.yaml +++ b/samples/contrib/versioned-pipeline-ci-samples/mnist-ci-sample/cloudbuild.yaml @@ -45,7 +45,7 @@ steps: id: "MnistPushSecondImage" waitFor: ["MnistBuildSecondImage"] - - name: "python:3.7-slim" + - name: "python:3.12-slim" entrypoint: "/bin/sh" args: [ "-c", diff --git a/samples/contrib/versioned-pipeline-ci-samples/mnist-ci-sample/tensorboard/Dockerfile b/samples/contrib/versioned-pipeline-ci-samples/mnist-ci-sample/tensorboard/Dockerfile index 5948e2e0a8d2..5418bc0f85f5 100644 --- a/samples/contrib/versioned-pipeline-ci-samples/mnist-ci-sample/tensorboard/Dockerfile +++ b/samples/contrib/versioned-pipeline-ci-samples/mnist-ci-sample/tensorboard/Dockerfile @@ -1,3 +1,3 @@ -FROM python:3.7-slim +FROM python:3.12-slim COPY tensorboard.py . CMD ["python", "./tensorboard.py"] \ No newline at end of file diff --git a/samples/core/secret/secret.py b/samples/core/secret/secret.py index b05df81cb8fa..ed91a9984d8e 100644 --- a/samples/core/secret/secret.py +++ b/samples/core/secret/secret.py @@ -42,7 +42,7 @@ # Accessing GCS using the Google Cloud Python library @dsl.component( - base_image='python:3.7', + base_image='python:3.12', packages_to_install=['google-cloud-storage==1.31.2'] ) def gcs_list_buckets(): diff --git a/samples/v2/pipeline_container_no_input.py b/samples/v2/pipeline_container_no_input.py index d9e7c24c5c5f..1c9014972097 100644 --- a/samples/v2/pipeline_container_no_input.py +++ b/samples/v2/pipeline_container_no_input.py @@ -20,7 +20,7 @@ @dsl.container_component def container_no_input(): return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=['echo', 'hello world'], args=[], ) diff --git a/sdk/python/kfp/cli/compile_test.py b/sdk/python/kfp/cli/compile_test.py index cf7169863eec..e31587fed931 100644 --- a/sdk/python/kfp/cli/compile_test.py +++ b/sdk/python/kfp/cli/compile_test.py @@ -29,7 +29,7 @@ def my_comp(): @dsl.container_component def my_container_comp(): return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=['echo', 'hello world'], args=[], ) @@ -55,7 +55,7 @@ def my_comp(): @dsl.container_component def my_container_comp(): return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=['echo', 'hello world'], args=[], ) diff --git a/sdk/python/kfp/compiler/compiler_test.py b/sdk/python/kfp/compiler/compiler_test.py index d417d9eec199..e52997647126 100644 --- a/sdk/python/kfp/compiler/compiler_test.py +++ b/sdk/python/kfp/compiler/compiler_test.py @@ -696,7 +696,7 @@ def test_use_task_final_status_in_non_exit_op_yaml(self): - {name: message, type: PipelineTaskFinalStatus} implementation: container: - image: python:3.7 + image: python:3.12 command: - echo - {inputValue: message} @@ -1172,7 +1172,7 @@ def test_compile_container_component_simple(self): def hello_world_container() -> dsl.ContainerSpec: """Hello world component.""" return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=['echo', 'hello world'], args=[], ) @@ -1195,7 +1195,7 @@ def test_compile_container_with_simple_io(self): @dsl.container_component def container_simple_io(text: str, output_path: dsl.OutputPath(str)): return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=['my_program', text], args=['--output_path', output_path]) @@ -2243,7 +2243,7 @@ def my_component(string: str, model: bool) -> str: def my_container_component(text: str, output_path: OutputPath(str)): """component description.""" return ContainerSpec( - image='python:3.7', + image='python:3.12', command=['my_program', text], args=['--output_path', output_path]) diff --git a/sdk/python/kfp/components/load_yaml_utilities_test.py b/sdk/python/kfp/components/load_yaml_utilities_test.py index 55ba29cf575c..40a1e6f54db5 100644 --- a/sdk/python/kfp/components/load_yaml_utilities_test.py +++ b/sdk/python/kfp/components/load_yaml_utilities_test.py @@ -121,7 +121,7 @@ def test_load_component_from_url(self): self.assertEqual(component.name, 'identity') self.assertEqual( component.component_spec.implementation.container.image, - 'python:3.7') + 'python:3.12') if __name__ == '__main__': diff --git a/sdk/python/kfp/deprecated/cli/components_test.py b/sdk/python/kfp/deprecated/cli/components_test.py index 5eda0cc43ef5..e64a78f77509 100644 --- a/sdk/python/kfp/deprecated/cli/components_test.py +++ b/sdk/python/kfp/deprecated/cli/components_test.py @@ -404,7 +404,7 @@ def testDockerfileIsCreatedCorrectly(self): textwrap.dedent('''\ # Generated by KFP. - FROM python:3.7 + FROM python:3.12 WORKDIR /usr/local/src/kfp/components COPY requirements.txt requirements.txt @@ -447,7 +447,7 @@ def testExistingDockerfileCanBeOverwritten(self): textwrap.dedent('''\ # Generated by KFP. - FROM python:3.7 + FROM python:3.12 WORKDIR /usr/local/src/kfp/components COPY requirements.txt requirements.txt @@ -477,7 +477,7 @@ def testDockerfileCanContainCustomKFPPackage(self): textwrap.dedent('''\ # Generated by KFP. - FROM python:3.7 + FROM python:3.12 WORKDIR /usr/local/src/kfp/components COPY requirements.txt requirements.txt diff --git a/sdk/python/kfp/deprecated/compiler/testdata/v2_compatible_two_step_pipeline.yaml b/sdk/python/kfp/deprecated/compiler/testdata/v2_compatible_two_step_pipeline.yaml index 57809640aa8f..e503632ca374 100644 --- a/sdk/python/kfp/deprecated/compiler/testdata/v2_compatible_two_step_pipeline.yaml +++ b/sdk/python/kfp/deprecated/compiler/testdata/v2_compatible_two_step_pipeline.yaml @@ -101,7 +101,7 @@ spec: - name: ENABLE_CACHING valueFrom: fieldRef: {fieldPath: 'metadata.labels[''pipelines.kubeflow.org/enable_caching'']'} - - {name: KFP_V2_IMAGE, value: 'python:3.7'} + - {name: KFP_V2_IMAGE, value: 'python:3.12'} - {name: KFP_V2_RUNTIME_INFO, value: '{"inputParameters": {"some_int": {"type": "NUMBER_INTEGER"}, "uri": {"type": "STRING"}}, "inputArtifacts": {}, "outputParameters": {"output_parameter_one": {"type": "NUMBER_INTEGER", "path": "/tmp/outputs/output_parameter_one/data"}}, @@ -109,7 +109,7 @@ spec: "instanceSchema": "", "schemaVersion": "0.0.1", "metadataPath": "/tmp/outputs/output_dataset_one/data"}}}'} envFrom: - configMapRef: {name: metadata-grpc-configmap, optional: true} - image: python:3.7 + image: python:3.12 volumeMounts: - {mountPath: /kfp-launcher, name: kfp-launcher} inputs: @@ -208,7 +208,7 @@ spec: - name: ENABLE_CACHING valueFrom: fieldRef: {fieldPath: 'metadata.labels[''pipelines.kubeflow.org/enable_caching'']'} - - {name: KFP_V2_IMAGE, value: 'python:3.7'} + - {name: KFP_V2_IMAGE, value: 'python:3.12'} - {name: KFP_V2_RUNTIME_INFO, value: '{"inputParameters": {"num_steps": {"type": "NUMBER_INTEGER"}}, "inputArtifacts": {"dataset": {"metadataPath": "/tmp/inputs/dataset/data", "schemaTitle": "system.Dataset", "instanceSchema": "", "schemaVersion": @@ -217,7 +217,7 @@ spec: "/tmp/outputs/model/data"}}}'} envFrom: - configMapRef: {name: metadata-grpc-configmap, optional: true} - image: python:3.7 + image: python:3.12 volumeMounts: - {mountPath: /kfp-launcher, name: kfp-launcher} inputs: diff --git a/sdk/python/kfp/deprecated/compiler/testdata/v2_compatible_two_step_pipeline_with_custom_launcher.yaml b/sdk/python/kfp/deprecated/compiler/testdata/v2_compatible_two_step_pipeline_with_custom_launcher.yaml index b8fd8185806c..4621e5087062 100644 --- a/sdk/python/kfp/deprecated/compiler/testdata/v2_compatible_two_step_pipeline_with_custom_launcher.yaml +++ b/sdk/python/kfp/deprecated/compiler/testdata/v2_compatible_two_step_pipeline_with_custom_launcher.yaml @@ -101,7 +101,7 @@ spec: - name: ENABLE_CACHING valueFrom: fieldRef: {fieldPath: 'metadata.labels[''pipelines.kubeflow.org/enable_caching'']'} - - {name: KFP_V2_IMAGE, value: 'python:3.7'} + - {name: KFP_V2_IMAGE, value: 'python:3.12'} - {name: KFP_V2_RUNTIME_INFO, value: '{"inputParameters": {"some_int": {"type": "NUMBER_INTEGER"}, "uri": {"type": "STRING"}}, "inputArtifacts": {}, "outputParameters": {"output_parameter_one": {"type": "NUMBER_INTEGER", "path": "/tmp/outputs/output_parameter_one/data"}}, @@ -109,7 +109,7 @@ spec: "instanceSchema": "", "schemaVersion": "0.0.1", "metadataPath": "/tmp/outputs/output_dataset_one/data"}}}'} envFrom: - configMapRef: {name: metadata-grpc-configmap, optional: true} - image: python:3.7 + image: python:3.12 volumeMounts: - {mountPath: /kfp-launcher, name: kfp-launcher} inputs: @@ -208,7 +208,7 @@ spec: - name: ENABLE_CACHING valueFrom: fieldRef: {fieldPath: 'metadata.labels[''pipelines.kubeflow.org/enable_caching'']'} - - {name: KFP_V2_IMAGE, value: 'python:3.7'} + - {name: KFP_V2_IMAGE, value: 'python:3.12'} - {name: KFP_V2_RUNTIME_INFO, value: '{"inputParameters": {"num_steps": {"type": "NUMBER_INTEGER"}}, "inputArtifacts": {"dataset": {"metadataPath": "/tmp/inputs/dataset/data", "schemaTitle": "system.Dataset", "instanceSchema": "", "schemaVersion": @@ -217,7 +217,7 @@ spec: "/tmp/outputs/model/data"}}}'} envFrom: - configMapRef: {name: metadata-grpc-configmap, optional: true} - image: python:3.7 + image: python:3.12 volumeMounts: - {mountPath: /kfp-launcher, name: kfp-launcher} inputs: diff --git a/sdk/python/kfp/deprecated/components/_python_op.py b/sdk/python/kfp/deprecated/components/_python_op.py index 423b577148a5..0eae316b2f6e 100644 --- a/sdk/python/kfp/deprecated/components/_python_op.py +++ b/sdk/python/kfp/deprecated/components/_python_op.py @@ -152,7 +152,7 @@ def make_parent_dirs_and_return_path(file_path: str): return make_parent_dirs_and_return_path -default_base_image_or_builder = 'python:3.7' +default_base_image_or_builder = 'python:3.12' def _python_function_name_to_component_name(name): @@ -518,7 +518,7 @@ def _func_to_component_spec(func, Args: func: Required. The function to be converted - base_image: Optional. Docker image to be used as a base image for the python component. Must have python 3.5+ installed. Default is python:3.7 + base_image: Optional. Docker image to be used as a base image for the python component. Must have python 3.5+ installed. Default is python:3.12 Note: The image can also be specified by decorating the function with the @python_component decorator. If different base images are explicitly specified in both places, an error is raised. extra_code: Optional. Python source code that gets placed before the function code. Can be used as workaround to define types used in function signature. packages_to_install: Optional. List of [versioned] python packages to pip install before executing the user function. @@ -828,7 +828,7 @@ def add_multiply_two_numbers(a: float, b: float) -> NamedTuple('DummyName', [('s Args: func: The python function to convert - base_image: Optional. Specify a custom Docker container image to use in the component. For lightweight components, the image needs to have python 3.5+. Default is python:3.7 + base_image: Optional. Specify a custom Docker container image to use in the component. For lightweight components, the image needs to have python 3.5+. Default is python:3.12 extra_code: Optional. Extra code to add before the function code. Can be used as workaround to define types used in function signature. packages_to_install: Optional. List of [versioned] python packages to pip install before executing the user function. modules_to_capture: Optional. List of module names that will be captured (instead of just referencing) during the dependency scan. By default the :code:`func.__module__` is captured. The actual algorithm: Starting with the initial function, start traversing dependencies. If the dependency.__module__ is in the modules_to_capture list then it's captured and it's dependencies are traversed. Otherwise the dependency is only referenced instead of capturing and its dependencies are not traversed. @@ -1026,7 +1026,7 @@ def add(a: float, b: float) -> float: # add_op is a task factory function that creates a task object when given arguments add_op = create_component_from_func( func=add, - base_image='python:3.7', # Optional + base_image='python:3.12', # Optional output_component_file='add.component.yaml', # Optional packages_to_install=['pandas==0.24'], # Optional ) diff --git a/sdk/python/kfp/deprecated/dsl/_container_op_test.py b/sdk/python/kfp/deprecated/dsl/_container_op_test.py index a712f6987ecd..0545e4092c98 100644 --- a/sdk/python/kfp/deprecated/dsl/_container_op_test.py +++ b/sdk/python/kfp/deprecated/dsl/_container_op_test.py @@ -38,7 +38,7 @@ class ContainerOpTest(unittest.TestCase): def test_chained_call_resource_setter(self): - task = _container_op.ContainerOp(name='test_task', image='python:3.7') + task = _container_op.ContainerOp(name='test_task', image='python:3.12') task.container_spec = _PipelineContainerSpec() (task.set_cpu_limit('1').set_memory_limit( '1G').add_node_selector_constraint( diff --git a/sdk/python/kfp/dsl/container_component_decorator_test.py b/sdk/python/kfp/dsl/container_component_decorator_test.py index d49253b1e8f6..5f836ec4b80b 100644 --- a/sdk/python/kfp/dsl/container_component_decorator_test.py +++ b/sdk/python/kfp/dsl/container_component_decorator_test.py @@ -47,7 +47,7 @@ def hello_world_io( text_output_path: dsl.OutputPath(str)) -> dsl.ContainerSpec: """Hello world component with input and output.""" return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=['echo'], args=['--text', text, '--output_path', text_output_path]) diff --git a/sdk/python/kfp/dsl/placeholders.py b/sdk/python/kfp/dsl/placeholders.py index edd22e088542..42810882a276 100644 --- a/sdk/python/kfp/dsl/placeholders.py +++ b/sdk/python/kfp/dsl/placeholders.py @@ -179,7 +179,7 @@ class ConcatPlaceholder(Placeholder): def container_with_concat_placeholder(text1: str, text2: Output[Dataset], output_path: OutputPath(str)): return ContainerSpec( - image='python:3.7', + image='python:3.12', command=[ 'my_program', ConcatPlaceholder(['prefix-', text1, text2.uri]) @@ -227,7 +227,7 @@ def container_with_if_placeholder(output_path: OutputPath(str), dataset: Output[Dataset], optional_input: str = 'default'): return ContainerSpec( - image='python:3.7', + image='python:3.12', command=[ 'my_program', IfPresentPlaceholder( diff --git a/sdk/python/kfp/dsl/placeholders_test.py b/sdk/python/kfp/dsl/placeholders_test.py index a6310ed5b5b3..5e8efa4d6a1e 100644 --- a/sdk/python/kfp/dsl/placeholders_test.py +++ b/sdk/python/kfp/dsl/placeholders_test.py @@ -514,7 +514,7 @@ def container_with_placeholder_in_fstring( text1: str, ): return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=[ 'my_program', f'prefix-{text1}', @@ -540,7 +540,7 @@ def container_with_placeholder_in_fstring( text2: str, ): return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=[ 'my_program', f'another-prefix-{dsl.ConcatPlaceholder([text1, text2])}', @@ -557,7 +557,7 @@ def container_with_placeholder_in_fstring( text2: str, ): return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=[ 'echo', f"another-prefix-{dsl.IfPresentPlaceholder(input_name='text1', then=['val'])}", diff --git a/sdk/python/kfp/dsl/structures_test.py b/sdk/python/kfp/dsl/structures_test.py index 4bdb7bf9a598..a2ec5402bc18 100644 --- a/sdk/python/kfp/dsl/structures_test.py +++ b/sdk/python/kfp/dsl/structures_test.py @@ -454,7 +454,7 @@ def test_env(self): def test_from_container_dict_no_placeholders(self): expected_container_spec = structures.ContainerSpecImplementation( - image='python:3.7', + image='python:3.12', command=['sh', '-c', 'dummy'], args=['--executor_input', '{{$}}', '--function_to_execute', 'func'], env={'ENV1': 'val1'}, @@ -465,7 +465,7 @@ def test_from_container_dict_no_placeholders(self): '--executor_input', '{{$}}', '--function_to_execute', 'func' ], 'command': ['sh', '-c', 'dummy'], - 'image': 'python:3.7', + 'image': 'python:3.12', 'env': { 'ENV1': 'val1' }, diff --git a/sdk/python/test_data/components/container_io.py b/sdk/python/test_data/components/container_io.py index 1b64bbc0b1b5..3c8853f6bc6b 100644 --- a/sdk/python/test_data/components/container_io.py +++ b/sdk/python/test_data/components/container_io.py @@ -19,7 +19,7 @@ @container_component def container_io(text: str, output_path: OutputPath(str)): return ContainerSpec( - image='python:3.7', + image='python:3.12', command=['my_program', text], args=['--output_path', output_path]) diff --git a/sdk/python/test_data/components/container_io.yaml b/sdk/python/test_data/components/container_io.yaml index 1ed70066c3b8..cf3f23df22c0 100644 --- a/sdk/python/test_data/components/container_io.yaml +++ b/sdk/python/test_data/components/container_io.yaml @@ -25,7 +25,7 @@ deploymentSpec: command: - my_program - '{{$.inputs.parameters[''text'']}}' - image: python:3.7 + image: python:3.12 pipelineInfo: name: container-io root: diff --git a/sdk/python/test_data/components/container_no_input.py b/sdk/python/test_data/components/container_no_input.py index 1a35eb3c47fc..ef57a48b2b8a 100644 --- a/sdk/python/test_data/components/container_no_input.py +++ b/sdk/python/test_data/components/container_no_input.py @@ -18,7 +18,7 @@ @container_component def container_no_input(): return ContainerSpec( - image='python:3.7', + image='python:3.12', command=['echo', 'hello world'], args=[], ) diff --git a/sdk/python/test_data/components/container_no_input.yaml b/sdk/python/test_data/components/container_no_input.yaml index a490a9c389da..7846d76ed4bf 100644 --- a/sdk/python/test_data/components/container_no_input.yaml +++ b/sdk/python/test_data/components/container_no_input.yaml @@ -10,7 +10,7 @@ deploymentSpec: command: - echo - hello world - image: python:3.7 + image: python:3.12 pipelineInfo: name: container-no-input root: diff --git a/sdk/python/test_data/components/container_with_concat_placeholder.py b/sdk/python/test_data/components/container_with_concat_placeholder.py index 707f71fd50ed..efe4b5ed15cc 100644 --- a/sdk/python/test_data/components/container_with_concat_placeholder.py +++ b/sdk/python/test_data/components/container_with_concat_placeholder.py @@ -23,7 +23,7 @@ def container_with_concat_placeholder(text1: str, text2: Output[Dataset], output_path: OutputPath(str)): return ContainerSpec( - image='python:3.7', + image='python:3.12', command=[ 'my_program', ConcatPlaceholder(['prefix-', text1, text2.uri]) diff --git a/sdk/python/test_data/components/container_with_concat_placeholder.yaml b/sdk/python/test_data/components/container_with_concat_placeholder.yaml index 8a1dba56da62..941d80ae34ad 100644 --- a/sdk/python/test_data/components/container_with_concat_placeholder.yaml +++ b/sdk/python/test_data/components/container_with_concat_placeholder.yaml @@ -31,7 +31,7 @@ deploymentSpec: command: - my_program - '{"Concat": ["prefix-", "{{$.inputs.parameters[''text1'']}}", "{{$.outputs.artifacts[''text2''].uri}}"]}' - image: python:3.7 + image: python:3.12 pipelineInfo: name: container-with-concat-placeholder root: diff --git a/sdk/python/test_data/components/container_with_if_placeholder.py b/sdk/python/test_data/components/container_with_if_placeholder.py index b5e20e8ff9b6..4c6d2ae765ae 100644 --- a/sdk/python/test_data/components/container_with_if_placeholder.py +++ b/sdk/python/test_data/components/container_with_if_placeholder.py @@ -24,7 +24,7 @@ def container_with_if_placeholder(output_path: OutputPath(str), dataset: Output[Dataset], optional_input: str = 'default'): return ContainerSpec( - image='python:3.7', + image='python:3.12', command=[ 'my_program', IfPresentPlaceholder( diff --git a/sdk/python/test_data/components/container_with_if_placeholder.yaml b/sdk/python/test_data/components/container_with_if_placeholder.yaml index 3b968d777760..ce1cb773e274 100644 --- a/sdk/python/test_data/components/container_with_if_placeholder.yaml +++ b/sdk/python/test_data/components/container_with_if_placeholder.yaml @@ -37,7 +37,7 @@ deploymentSpec: - --dataset - '{"IfPresent": {"InputName": "optional_input", "Then": ["{{$.outputs.artifacts[''dataset''].uri}}"], "Else": ["bye"]}}' - image: python:3.7 + image: python:3.12 pipelineInfo: name: container-with-if-placeholder root: diff --git a/sdk/python/test_data/components/container_with_placeholder_in_fstring.py b/sdk/python/test_data/components/container_with_placeholder_in_fstring.py index 78103b7d00b8..6b8d62e52de4 100644 --- a/sdk/python/test_data/components/container_with_placeholder_in_fstring.py +++ b/sdk/python/test_data/components/container_with_placeholder_in_fstring.py @@ -24,7 +24,7 @@ def container_with_placeholder_in_fstring( text1: str = 'text!', ): return ContainerSpec( - image='python:3.7', + image='python:3.12', command=[ 'my_program', f'prefix-{text1}', diff --git a/sdk/python/test_data/components/container_with_placeholder_in_fstring.yaml b/sdk/python/test_data/components/container_with_placeholder_in_fstring.yaml index e1be212ad1bd..4c565952dfc9 100644 --- a/sdk/python/test_data/components/container_with_placeholder_in_fstring.yaml +++ b/sdk/python/test_data/components/container_with_placeholder_in_fstring.yaml @@ -27,7 +27,7 @@ deploymentSpec: - my_program - prefix-{{$.inputs.parameters['text1']}} - '{{$.outputs.artifacts[''output_artifact''].uri}}/0' - image: python:3.7 + image: python:3.12 pipelineInfo: name: container-with-placeholder-in-fstring root: diff --git a/sdk/python/test_data/components/containerized_python_component.py b/sdk/python/test_data/components/containerized_python_component.py index 041722d97ff5..7c47934e272e 100644 --- a/sdk/python/test_data/components/containerized_python_component.py +++ b/sdk/python/test_data/components/containerized_python_component.py @@ -14,7 +14,7 @@ from kfp import dsl -@dsl.component(base_image='python:3.7', target_image='kfp-image') +@dsl.component(base_image='python:3.12', target_image='kfp-image') def concat_message(message1: str, message2: str) -> str: return message1 + message2 diff --git a/sdk/python/test_data/pipelines/container_component_with_no_inputs.py b/sdk/python/test_data/pipelines/container_component_with_no_inputs.py index 724b701dba10..e48e759c0423 100644 --- a/sdk/python/test_data/pipelines/container_component_with_no_inputs.py +++ b/sdk/python/test_data/pipelines/container_component_with_no_inputs.py @@ -19,7 +19,7 @@ @dsl.container_component def hello_world_container(): return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=['echo', 'hello world'], args=[], ) diff --git a/sdk/python/test_data/pipelines/container_component_with_no_inputs.yaml b/sdk/python/test_data/pipelines/container_component_with_no_inputs.yaml index 06ccc139ca2d..433fd6869689 100644 --- a/sdk/python/test_data/pipelines/container_component_with_no_inputs.yaml +++ b/sdk/python/test_data/pipelines/container_component_with_no_inputs.yaml @@ -10,7 +10,7 @@ deploymentSpec: command: - echo - hello world - image: python:3.7 + image: python:3.12 pipelineInfo: name: v2-container-component-no-input root: diff --git a/sdk/python/test_data/pipelines/parallelfor_fan_in/artifacts_simple.py b/sdk/python/test_data/pipelines/parallelfor_fan_in/artifacts_simple.py index 5d49ae326805..c877c2433451 100644 --- a/sdk/python/test_data/pipelines/parallelfor_fan_in/artifacts_simple.py +++ b/sdk/python/test_data/pipelines/parallelfor_fan_in/artifacts_simple.py @@ -28,7 +28,7 @@ def add(in_datasets: Input[List[Dataset]], out_dataset: Output[Dataset]): def add_container(in_datasets: Input[List[Dataset]], out_dataset: Output[Dataset]): return dsl.ContainerSpec( - image='python:3.7', + image='python:3.12', command=['python', '-c'], args=[ textwrap.dedent(""" diff --git a/sdk/python/test_data/pipelines/parallelfor_fan_in/artifacts_simple.yaml b/sdk/python/test_data/pipelines/parallelfor_fan_in/artifacts_simple.yaml index 696c2d4a5614..9d172afe9eba 100644 --- a/sdk/python/test_data/pipelines/parallelfor_fan_in/artifacts_simple.yaml +++ b/sdk/python/test_data/pipelines/parallelfor_fan_in/artifacts_simple.yaml @@ -125,7 +125,7 @@ deploymentSpec: command: - python - -c - image: python:3.7 + image: python:3.12 exec-double: container: args: diff --git a/sdk/python/test_data/pipelines/pipeline_with_task_final_status_yaml.py b/sdk/python/test_data/pipelines/pipeline_with_task_final_status_yaml.py index 6cf1282009ca..60221b3cd5da 100644 --- a/sdk/python/test_data/pipelines/pipeline_with_task_final_status_yaml.py +++ b/sdk/python/test_data/pipelines/pipeline_with_task_final_status_yaml.py @@ -24,7 +24,7 @@ - {name: status, type: PipelineTaskFinalStatus} implementation: container: - image: python:3.7 + image: python:3.12 command: - echo - "user input:" @@ -39,7 +39,7 @@ - {name: message, type: String} implementation: container: - image: python:3.7 + image: python:3.12 command: - echo - {inputValue: message} diff --git a/sdk/python/test_data/pipelines/pipeline_with_task_final_status_yaml.yaml b/sdk/python/test_data/pipelines/pipeline_with_task_final_status_yaml.yaml index 598293b89588..213e6a7c7d3d 100644 --- a/sdk/python/test_data/pipelines/pipeline_with_task_final_status_yaml.yaml +++ b/sdk/python/test_data/pipelines/pipeline_with_task_final_status_yaml.yaml @@ -46,13 +46,13 @@ deploymentSpec: - '{{$.inputs.parameters[''user_input'']}}' - 'pipeline status:' - '{{$.inputs.parameters[''status'']}}' - image: python:3.7 + image: python:3.12 exec-print-op: container: command: - echo - '{{$.inputs.parameters[''message'']}}' - image: python:3.7 + image: python:3.12 pipelineInfo: name: pipeline-with-task-final-status-yaml root: diff --git a/sdk/python/test_data/pipelines/xgboost_sample_pipeline.yaml b/sdk/python/test_data/pipelines/xgboost_sample_pipeline.yaml index 2e03d06edff1..e80f0a1976ee 100644 --- a/sdk/python/test_data/pipelines/xgboost_sample_pipeline.yaml +++ b/sdk/python/test_data/pipelines/xgboost_sample_pipeline.yaml @@ -292,7 +292,7 @@ deploymentSpec: \ try:\n os.makedirs(os.path.dirname(output_file))\n except\ \ OSError:\n pass\n with open(output_file, 'w') as f:\n \ \ f.write(_output_serializers[idx](_outputs[idx]))\n" - image: python:3.7 + image: python:3.12 exec-xgboost-predict: container: args: @@ -343,7 +343,7 @@ deploymentSpec: _parser.add_argument(\"--predictions\", dest=\"predictions_path\", type=_make_parent_dirs_and_return_path,\ \ required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_predict(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-predict-2: container: args: @@ -397,7 +397,7 @@ deploymentSpec: predictions_path\", type=_make_parent_dirs_and_return_path, required=True,\ \ default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_predict(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-predict-3: container: args: @@ -451,7 +451,7 @@ deploymentSpec: predictions_path\", type=_make_parent_dirs_and_return_path, required=True,\ \ default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_predict(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-predict-4: container: args: @@ -502,7 +502,7 @@ deploymentSpec: _parser.add_argument(\"--predictions\", dest=\"predictions_path\", type=_make_parent_dirs_and_return_path,\ \ required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_predict(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-train: container: args: @@ -619,7 +619,7 @@ deploymentSpec: , dest=\"model_config_path\", type=_make_parent_dirs_and_return_path, required=True,\ \ default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_train(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 exec-xgboost-train-2: container: args: @@ -736,7 +736,7 @@ deploymentSpec: , dest=\"model_config_path\", type=_make_parent_dirs_and_return_path, required=True,\ \ default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\ \n_outputs = xgboost_train(**_parsed_args)\n" - image: python:3.7 + image: python:3.12 pipelineInfo: name: xgboost-sample-pipeline root: diff --git a/sdk/python/tests/compiler/testdata/artifact_passing_using_volume.yaml b/sdk/python/tests/compiler/testdata/artifact_passing_using_volume.yaml index 2a5d433f5db3..5926bfb827a5 100644 --- a/sdk/python/tests/compiler/testdata/artifact_passing_using_volume.yaml +++ b/sdk/python/tests/compiler/testdata/artifact_passing_using_volume.yaml @@ -115,7 +115,7 @@ spec: pass with open(output_file, 'w') as f: f.write(_output_serializers[idx](_outputs[idx])) - image: python:3.7 + image: python:3.12 volumeMounts: - {mountPath: /tmp/outputs/mlpipeline_ui_metadata, name: data-storage, subPath: 'artifact_data/{{workflow.uid}}_{{pod.name}}/mlpipeline-ui-metadata'} - {mountPath: /tmp/outputs/mlpipeline_metrics, name: data-storage, subPath: 'artifact_data/{{workflow.uid}}_{{pod.name}}/mlpipeline-metrics'} @@ -147,7 +147,7 @@ spec: = _parsed_args.pop(\"_output_paths\", [])\n\n_outputs = metadata_and_metrics(**_parsed_args)\n\n_output_serializers = [\n str,\n str,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, ''w'') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n"], - "image": "python:3.7"}}, "name": "Metadata and metrics", "outputs": [{"name": + "image": "python:3.12"}}, "name": "Metadata and metrics", "outputs": [{"name": "mlpipeline_ui_metadata", "type": "UI_metadata"}, {"name": "mlpipeline_metrics", "type": "Metrics"}]}', pipelines.kubeflow.org/component_ref: '{}'} - name: processor diff --git a/sdk/python/tests/compiler/testdata/parallelfor_item_argument_resolving.yaml b/sdk/python/tests/compiler/testdata/parallelfor_item_argument_resolving.yaml index f9449e73c7cd..f6663701f720 100644 --- a/sdk/python/tests/compiler/testdata/parallelfor_item_argument_resolving.yaml +++ b/sdk/python/tests/compiler/testdata/parallelfor_item_argument_resolving.yaml @@ -28,7 +28,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: produce-list-of-strings-Output} @@ -44,7 +44,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.produce-list-of-strings-Output}}"}'} - name: consume-2 @@ -67,7 +67,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: produce-list-of-strings-Output-loop-item} @@ -83,7 +83,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.produce-list-of-strings-Output-loop-item}}"}'} - name: consume-3 @@ -106,7 +106,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: produce-str-Output} @@ -122,7 +122,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.produce-str-Output}}"}'} - name: consume-4 @@ -145,7 +145,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: produce-list-of-ints-Output} @@ -161,7 +161,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.produce-list-of-ints-Output}}"}'} - name: consume-5 @@ -184,7 +184,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: produce-list-of-ints-Output-loop-item} @@ -200,7 +200,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.produce-list-of-ints-Output-loop-item}}"}'} - name: consume-6 @@ -223,7 +223,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: produce-list-of-dicts-Output} @@ -239,7 +239,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.produce-list-of-dicts-Output}}"}'} - name: consume-7 @@ -262,7 +262,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: produce-list-of-dicts-Output-loop-item-subvar-aaa} @@ -278,7 +278,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.produce-list-of-dicts-Output-loop-item-subvar-aaa}}"}'} - name: consume-8 @@ -301,7 +301,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 metadata: labels: pipelines.kubeflow.org/kfp_sdk_version: 1.7.2 @@ -314,7 +314,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "[{\"a\": 1, \"b\": 2}, {\"a\": 10, \"b\": 20}]"}'} - name: consume-9 @@ -337,7 +337,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: loop-item-param-4} @@ -353,7 +353,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.loop-item-param-4}}"}'} - name: for-loop-1 @@ -517,7 +517,7 @@ spec: pass with open(output_file, 'w') as f: f.write(_output_serializers[idx](_outputs[idx])) - image: python:3.7 + image: python:3.12 outputs: parameters: - name: produce-list-of-dicts-Output @@ -546,7 +546,7 @@ spec: = [_outputs]\n\n_output_serializers = [\n _serialize_json,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, ''w'') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n"], - "image": "python:3.7"}}, "name": "Produce list of dicts", "outputs": [{"name": + "image": "python:3.12"}}, "name": "Produce list of dicts", "outputs": [{"name": "Output", "type": "JsonArray"}]}', pipelines.kubeflow.org/component_ref: '{}'} - name: produce-list-of-ints container: @@ -600,7 +600,7 @@ spec: pass with open(output_file, 'w') as f: f.write(_output_serializers[idx](_outputs[idx])) - image: python:3.7 + image: python:3.12 outputs: parameters: - name: produce-list-of-ints-Output @@ -628,7 +628,7 @@ spec: = [_outputs]\n\n_output_serializers = [\n _serialize_json,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, ''w'') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n"], - "image": "python:3.7"}}, "name": "Produce list of ints", "outputs": [{"name": + "image": "python:3.12"}}, "name": "Produce list of ints", "outputs": [{"name": "Output", "type": "JsonArray"}]}', pipelines.kubeflow.org/component_ref: '{}'} - name: produce-list-of-strings container: @@ -682,7 +682,7 @@ spec: pass with open(output_file, 'w') as f: f.write(_output_serializers[idx](_outputs[idx])) - image: python:3.7 + image: python:3.12 outputs: parameters: - name: produce-list-of-strings-Output @@ -710,7 +710,7 @@ spec: = [_outputs]\n\n_output_serializers = [\n _serialize_json,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, ''w'') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n"], - "image": "python:3.7"}}, "name": "Produce list of strings", "outputs": [{"name": + "image": "python:3.12"}}, "name": "Produce list of strings", "outputs": [{"name": "Output", "type": "JsonArray"}]}', pipelines.kubeflow.org/component_ref: '{}'} - name: produce-str container: @@ -755,7 +755,7 @@ spec: pass with open(output_file, 'w') as f: f.write(_output_serializers[idx](_outputs[idx])) - image: python:3.7 + image: python:3.12 outputs: parameters: - name: produce-str-Output @@ -781,7 +781,7 @@ spec: = [_outputs]\n\n_output_serializers = [\n _serialize_str,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, ''w'') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n"], - "image": "python:3.7"}}, "name": "Produce str", "outputs": [{"name": "Output", + "image": "python:3.12"}}, "name": "Produce str", "outputs": [{"name": "Output", "type": "String"}]}', pipelines.kubeflow.org/component_ref: '{}'} arguments: parameters: [] diff --git a/sdk/python/tests/compiler/testdata/parallelfor_pipeline_param_in_items_resolving.yaml b/sdk/python/tests/compiler/testdata/parallelfor_pipeline_param_in_items_resolving.yaml index 64dcdbbcfe85..dfd00a4f7ec9 100644 --- a/sdk/python/tests/compiler/testdata/parallelfor_pipeline_param_in_items_resolving.yaml +++ b/sdk/python/tests/compiler/testdata/parallelfor_pipeline_param_in_items_resolving.yaml @@ -30,7 +30,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: loop-item-param-1} @@ -46,7 +46,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.loop-item-param-1}}"}'} - name: consume-2 @@ -69,7 +69,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: loop-item-param-3-subvar-first_name} @@ -85,7 +85,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.loop-item-param-3-subvar-first_name}}"}'} - name: consume-3 @@ -108,7 +108,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: loop-item-param-3-subvar-message} @@ -124,7 +124,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.loop-item-param-3-subvar-message}}"}'} - name: consume-4 @@ -147,7 +147,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: loop-item-param-5-subvar-first_name} @@ -163,7 +163,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.loop-item-param-5-subvar-first_name}}"}'} - name: consume-5 @@ -186,7 +186,7 @@ spec: _parsed_args = vars(_parser.parse_args()) _outputs = consume(**_parsed_args) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: loop-item-param-5-subvar-message} @@ -202,7 +202,7 @@ spec: argparse\n_parser = argparse.ArgumentParser(prog=''Consume'', description='''')\n_parser.add_argument(\"--param1\", dest=\"param1\", type=str, required=True, default=argparse.SUPPRESS)\n_parsed_args = vars(_parser.parse_args())\n\n_outputs = consume(**_parsed_args)\n"], - "image": "python:3.7"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', + "image": "python:3.12"}}, "inputs": [{"name": "param1"}], "name": "Consume"}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"param1": "{{inputs.parameters.loop-item-param-5-subvar-message}}"}'} - name: for-loop-2 @@ -336,7 +336,7 @@ spec: pass with open(output_file, 'w') as f: f.write(_output_serializers[idx](_outputs[idx])) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: fname1} @@ -366,7 +366,7 @@ spec: = [_outputs]\n\n_output_serializers = [\n _serialize_str,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, ''w'') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n"], - "image": "python:3.7"}}, "inputs": [{"name": "fname1", "type": "String"}], + "image": "python:3.12"}}, "inputs": [{"name": "fname1", "type": "String"}], "name": "Produce message", "outputs": [{"name": "Output", "type": "String"}]}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"fname1": "{{inputs.parameters.fname1}}"}'} @@ -414,7 +414,7 @@ spec: pass with open(output_file, 'w') as f: f.write(_output_serializers[idx](_outputs[idx])) - image: python:3.7 + image: python:3.12 inputs: parameters: - {name: fname2} @@ -444,7 +444,7 @@ spec: = [_outputs]\n\n_output_serializers = [\n _serialize_str,\n\n]\n\nimport os\nfor idx, output_file in enumerate(_output_files):\n try:\n os.makedirs(os.path.dirname(output_file))\n except OSError:\n pass\n with open(output_file, ''w'') as f:\n f.write(_output_serializers[idx](_outputs[idx]))\n"], - "image": "python:3.7"}}, "inputs": [{"name": "fname1", "type": "String"}], + "image": "python:3.12"}}, "inputs": [{"name": "fname1", "type": "String"}], "name": "Produce message", "outputs": [{"name": "Output", "type": "String"}]}', pipelines.kubeflow.org/component_ref: '{}', pipelines.kubeflow.org/arguments.parameters: '{"fname1": "{{inputs.parameters.fname2}}"}'} diff --git a/sdk/python/tests/local_runner_test.py b/sdk/python/tests/local_runner_test.py index 7074f32365a6..8b4b62bee585 100644 --- a/sdk/python/tests/local_runner_test.py +++ b/sdk/python/tests/local_runner_test.py @@ -22,7 +22,7 @@ InputPath = kfp.components.InputPath() OutputPath = kfp.components.OutputPath() -BASE_IMAGE = "python:3.7" +BASE_IMAGE = "python:3.12" def light_component(base_image: str = BASE_IMAGE,): @@ -30,7 +30,7 @@ def light_component(base_image: str = BASE_IMAGE,): Usage: ```python - @light_component(base_image="python:3.7") + @light_component(base_image="python:3.12") def a_component(src: kfp.components.InputPath(), ...): ... ``` diff --git a/sdk/runtime_tests/test_data/pipeline_with_task_final_status.yaml b/sdk/runtime_tests/test_data/pipeline_with_task_final_status.yaml index 18ae5fa44dc4..e7e646b13cf1 100644 --- a/sdk/runtime_tests/test_data/pipeline_with_task_final_status.yaml +++ b/sdk/runtime_tests/test_data/pipeline_with_task_final_status.yaml @@ -88,7 +88,7 @@ deploymentSpec: \ print('Pipeline task name: ', status.pipeline_task_name)\n print('Error\ \ code: ', status.error_code)\n print('Error message: ', status.error_message)\n\ \n" - image: python:3.7 + image: python:3.12 exec-fail-op: container: args: @@ -117,7 +117,7 @@ deploymentSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef fail_op(message: str):\n \"\"\"Fails.\"\"\"\n import sys\n\ \ print(message)\n sys.exit(1)\n\n" - image: python:3.7 + image: python:3.12 exec-print-op: container: args: @@ -146,7 +146,7 @@ deploymentSpec: - "\nimport kfp\nfrom kfp import dsl\nfrom kfp.dsl import *\nfrom typing import\ \ *\n\ndef print_op(message: str):\n \"\"\"Prints a message.\"\"\"\n\ \ print(message)\n\n" - image: python:3.7 + image: python:3.12 pipelineInfo: name: pipeline-with-task-final-status root: