Skip to content

chore: migrate Python linting and formatting to Ruff - #15005

Merged
google-oss-prow[bot] merged 3 commits into
kubeflow:masterfrom
droctothorpe:chore/ruff-migration
Oct 21, 2026
Merged

google-oss-prow[bot] merged 3 commits into
kubeflow:masterfrom
droctothorpe:chore/ruff-migration

Conversation

@droctothorpe

@droctothorpe droctothorpe commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Python pre-commit checks currently run separate Flake8, pycln, isort, and YAPF tools. This adds interpreter/environment overhead and requires keeping overlapping import and formatting behavior aligned between local hooks and CI. The dedicated lint and formatting jobs also check only the SDK, leaving the rest of the repository without the same full-tree checks.

Changes

  • Replace YAPF, isort, pycln, and the Flake8 W605 check with Ruff 0.17.1. Local pre-commit hooks and CI both use uv run --frozen --extra lint ruff, sharing the authoritative workspace pin and lockfile introduced by fix(ci): share the locked isort version across formatting checks #14978. Keep uv provisioning and lockfile-triggered smoke checks; do not maintain a separate hook version. Enable only import sorting, unused-import detection, and invalid-escape checks; this does not introduce Ruff's broader default rule set.
  • Retain docformatter 1.7.7 for docstring prose wrapping and run it before Ruff's final formatting pass.
  • Reformat handwritten Python outside components/google-cloud, retaining an 80-column target and single quotes. All 613 in-scope Python files pass Ruff; generated Python files remain unchanged. Notebooks and Markdown are outside this migration.
  • Leave the entire components/google-cloud tree unchanged because it is scheduled for deletion. Exclude it from Ruff discovery, explicit-file lint/format invocations, and all pre-commit hooks, including docformatter.
  • Preserve package re-exports and intentional side-effect imports. In-scope sources target Python 3.11.
  • Update CI, the lockfile, contributor instructions, and regression checks. Remove the obsolete YAPF/isort configuration and presubmit scripts.
  • Display the repository-wide checks as Python Ruff Format and Python Ruff Lint, with matching CI Check completion selectors and regenerated workflow inventory. Retain only the historical YAML filenames: CI Check matches file paths against the PR's immutable base, not display names.

Most of this large diff is mechanical formatting and import sorting. An AST comparison found no unexpected executable changes beyond imports, docstrings, and the migration regression tests. No unsafe Ruff fixes were enabled.

Validation

  • Full SDK suite: 1,785 passed on Python 3.11 and 1,785 passed on Python 3.13.
  • Kubernetes helper suite: 173 passed.
  • CI resource-script suite: 767 passed, followed by the updated migration checks (10 passed) and CI gate checks (177 passed).
  • Repository workflow scripts: 27 passed; JUnit-summary tests: 7 passed.
  • Release and component-fixture tests: 188 passed, including 96 subtests.
  • Full changed-file pre-commit chain passed twice without modifications; representative configuration smoke checks also passed, including Go lint/format/config validation and actionlint.
  • Repository-wide Ruff checks, SDK docformatter checks, Python syntax checks, uv lock --check, and git diff --check passed.

After excluding Google Cloud components, reran the migration regression tests, repository-wide Ruff checks, lock/diff checks, and the full PR hook chain twice. Verified that Ruff discovers no files in that tree, including when a file is passed explicitly, and that its complete contents match the pre-migration commit. The full SDK/integration suites were not rerun for this exclusion-only update.

After rebasing onto 88968c489, reran the 10 hook/configuration tests, 177 CI-gate tests, repository-wide lint/format/syntax checks, lock validation, and both the full PR hook chain and representative smoke checks twice. The compiler implementation matches the previously tested branch, and components/google-cloud has no diff against the new base.

Hosted CI on the previous head 5dadc50d2 completed with 36 successful workflows and 3 intentional skips. Fresh CI is required for the rebased head; the full SDK suites were not rerun locally for this tooling conflict resolution. Live-cluster and cloud integration tests were not run locally. End-to-end hook speedups were not benchmarked.

After the latest rebase onto f518442a5, fixed the Ruff formatting of the newly added SDK-client diagnostics test in collect_logs_test.py (AST unchanged). Both the Ruff-format and pre-commit failures reproduced locally before the fix. The follow-up passed 3 log-collection tests, 10 hook/configuration tests, 177 CI-gate tests, repository-wide Ruff and lock checks, and two full PR hook passes. The Google Cloud tree remains unchanged.

Checklist

  • Commits are signed off.
  • PR title follows the repository's conventional-commit convention.

Copilot AI balanced review requested due to automatic review settings October 21, 2026 02:41
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Contributor Report for @droctothorpe

Metric Value
Kubeflow org member Yes
Issues opened in kubeflow/pipelines 147
Merged PRs in kubeflow/pipelines 108
GitHub account age 3585 days (created 2016-12-27)
PR comments in kubeflow/pipelines 1248

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The presubmit script can report success despite lint failures; the generated-file exclusion nit also remains unresolved.

No open issues 🎉

What changed in this PR

Migrates Python linting and formatting to Ruff 0.17.1 across the repository, retaining docformatter and existing merge-gate workflow identities.

Changes:

  • Replace legacy linting and formatting tools with narrowly scoped Ruff checks.
  • Normalize Python formatting and imports across SDK code, components, samples, and fixtures.
  • Update CI, dependencies, presubmit tooling, and contributor guidance.

Unresolved review comments:

  • Moderate · 1 vote — test/presubmit-ruff.sh:19: Explicitly propagate lint failures. Running the documented bash test/presubmit-ruff.sh ignores the shebang’s -e, allowing successful formatting to mask failed linting.
  • Nit · 1 vote — pyproject.toml:15: Exclude the GCPC generated image-version directory, align pre-commit exclusions, and revert its formatting edit. The file identifies itself as generated; formatting it conflicts with generation guidance and requires manual cleanup after regeneration.
File Description
test/​presubmit-yapf-sdk.sh Remove obsolete formatter script.
test/​presubmit-ruff.sh Combine repository-wide Ruff checks.
test/​kfp-kubernetes-native-migration-tests/​run_state.py Format exception construction.
test/​frontend-integration-test/​compile_fixtures.py Format fixture compiler.
test_data/​sdk_uncompiled_pipelines/​nested_pipeline_sub_component_retry.py Normalize imports and layout.
test_data/​sdk_uncompiled_pipelines/​nested_pipeline_pipeline_retry.py Normalize imports and layout.
test_data/​sdk_uncompiled_pipelines/​nested_pipeline_all_level_retry.py Normalize imports and layout.
test_data/​sdk_uncompiled_pipelines/​hello-world-with-returning-component.py Normalize quotes.
test_data/​sdk_compiled_pipelines/​valid/​two_step_with_uri_placeholder.py Format container command.
test_data/​sdk_compiled_pipelines/​valid/​sequential_v2.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​sequential_container.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​scale/​dag_120.py Format chained task configuration.
test_data/​sdk_compiled_pipelines/​valid/​run_as_user_cache_enabled.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​run_as_user_cache_disabled.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pythonic_artifacts_with_multiple_returns.py Format annotations and slicing.
test_data/​sdk_compiled_pipelines/​valid/​pythonic_artifacts_with_list_of_artifacts.py Format signatures and compilation.
test_data/​sdk_compiled_pipelines/​valid/​pythonic_artifact_with_single_return.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pvc_mount.py Normalize imports and docstring layout.
test_data/​sdk_compiled_pipelines/​valid/​pvc_mount_subpath.py Normalize imports and spacing.
test_data/​sdk_compiled_pipelines/​valid/​preprocess.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_volume.py Format PVC task configuration.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_volume_no_cache.py Format PVC task configuration.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_volume_long_name.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_utils.py Normalize quotes and decorators.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_task_using_ignore_upstream_failure.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_task_final_status.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_task_final_status_yaml.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_string_machine_fields_task_output.py Format compilation call.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_string_machine_fields_pipeline_input.py Format compilation call.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_retry.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_retry_policy.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_parallelfor_pipeline_param.py Normalize imports and prose wrapping.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_parallelfor_list_artifacts.py Format imports and signatures.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_metadata_fields.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_loops_and_conditions.py Normalize imports and spacing.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_importer_and_gcpc_types.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_with_concat_placeholder.py Sort imports and format arguments.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_container_no_input.py Remove unused import; format layout.
test_data/​sdk_compiled_pipelines/​valid/​pipeline_as_exit_task.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​parameters_complex.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​parameter.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​parallel_and_nested/​pipeline_with_loops.py Normalize imports and quotes.
test_data/​sdk_compiled_pipelines/​valid/​parallel_and_nested/​pipeline_in_pipeline.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​parallel_and_nested/​pipeline_in_pipeline_loaded_from_yaml.py Clean imports and format calls.
test_data/​sdk_compiled_pipelines/​valid/​parallel_and_nested/​pipeline_in_pipeline_complex.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​parallel_and_nested/​loop_consume_upstream.py Clean imports and normalize quotes.
test_data/​sdk_compiled_pipelines/​valid/​output_metrics.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​nested_with_parameters.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​nested_return.py Format compilation call.
test_data/​sdk_compiled_pipelines/​valid/​mounted_cabundle_secret.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​mounted_cabundle_configmap.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​long_running.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​local_execution/​pipeline_with_collected_artifacts.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​local_execution/​pipeline_with_caching.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​local_execution/​local_execution_pipeline_with_retry.py Normalize imports and spacing.
test_data/​sdk_compiled_pipelines/​valid/​local_execution/​local_execution_pipeline_with_oneof.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​local_execution/​local_execution_pipeline_with_k8s_only_methods.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​local_execution/​local_execution_pipeline_with_ignore_upstream_failure.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​local_execution/​local_execution_pipeline_with_exit_handler.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​input_artifact.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​if_else_with_oneof_parameters.py Normalize spacing and layout.
test_data/​sdk_compiled_pipelines/​valid/​if_else_with_oneof_artifacts.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​if_elif_else_with_oneof_parameters.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​identity.py Format compilation call.
test_data/​sdk_compiled_pipelines/​valid/​hello_world.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​failing/​pipeline_with_multiple_exit_handlers.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​failing/​pipeline_with_exit_handler.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​failing/​fail_v2.py Normalize docstring and layout.
test_data/​sdk_compiled_pipelines/​valid/​essential/​pipeline_with_reused_component.py Clean imports and format paths.
test_data/​sdk_compiled_pipelines/​valid/​essential/​pipeline_with_params_containing_format.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​essential/​pipeline_with_outputs.py Format imports and annotations.
test_data/​sdk_compiled_pipelines/​valid/​essential/​pipeline_with_nested_conditions.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​essential/​pipeline_with_metrics_outputs.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​essential/​pipeline_with_condition.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​essential/​pipeline_with_after.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​essential/​dict_input.py Format compilation call.
test_data/​sdk_compiled_pipelines/​valid/​essential/​container_no_input.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​essential/​concat_message.py Format compilation call.
test_data/​sdk_compiled_pipelines/​valid/​essential/​component_with_pip_install.py Format decorator and compilation.
test_data/​sdk_compiled_pipelines/​valid/​essential/​component_with_pip_index_urls.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​essential/​component_with_env_variable.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​env_var.py Normalize quotes.
test_data/​sdk_compiled_pipelines/​valid/​driver_plugin/​pipeline_with_flaky_retry.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​dra/​dra_json_input_check.py Format imports and configuration.
test_data/​sdk_compiled_pipelines/​valid/​cross_loop_after_topology.py Format compilation call.
test_data/​sdk_compiled_pipelines/​valid/​critical/​two_step_pipeline_containerized.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​critical/​pipeline_with_input_status_state.py Normalize assertions and spacing.
test_data/​sdk_compiled_pipelines/​valid/​critical/​parameters_simple.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​critical/​parameter_cache.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​critical/​multiple_parameters_namedtuple.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​critical/​multiple_artifacts_namedtuple.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​critical/​mixed_parameters.py Clean imports and format compilation.
test_data/​sdk_compiled_pipelines/​valid/​critical/​if_else_with_oneof_artifacts.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​critical/​container_component_with_no_inputs.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​critical/​component_with_optional_inputs.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​critical/​collected_parameters.py Normalize signature and whitespace.
test_data/​sdk_compiled_pipelines/​valid/​critical/​artifact_crust.py Clean imports and format compilation.
test_data/​sdk_compiled_pipelines/​valid/​critical/​artifact_cache.py Consolidate imports.
test_data/​sdk_compiled_pipelines/​valid/​critical/​add_numbers.py Format compilation call.
test_data/​sdk_compiled_pipelines/​valid/​containerized_python_component.py Format decorator and compilation.
test_data/​sdk_compiled_pipelines/​valid/​container_with_placeholder_in_fstring.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​container_with_if_placeholder_default.py Format placeholder configuration.
test_data/​sdk_compiled_pipelines/​valid/​container_with_concat_placeholder.py Format imports and arguments.
test_data/​sdk_compiled_pipelines/​valid/​container_with_artifact_output.py Format imports and arguments.
test_data/​sdk_compiled_pipelines/​valid/​container_io.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​conditional_producer_and_consumers.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​components_with_optional_artifacts.py Format imports and placeholders.
test_data/​sdk_compiled_pipelines/​valid/​component_with_task_final_status.py Format compilation call.
test_data/​sdk_compiled_pipelines/​valid/​component_with_metadata_fields.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​valid/​artifacts_simple.py Format imports and signature.
test_data/​sdk_compiled_pipelines/​valid/​arguments_parameters.py Normalize imports and layout.
test_data/​sdk_compiled_pipelines/​argo_compatibility/​fast_artifact.py Consolidate imports.
sdk/​python/​test/​test_utils/​file_utils.py Normalize quotes and docstring indentation.
sdk/​python/​test/​kubernetes/​unit/​test_timeout.py Format imports and assertions.
sdk/​python/​test/​kubernetes/​unit/​test_image_pull_policy.py Format imports and expectations.
sdk/​python/​test/​kubernetes/​snapshot/​data/​toleration.py Normalize imports and quotes.
sdk/​python/​test/​kubernetes/​snapshot/​data/​timeout.py Normalize imports and spacing.
sdk/​python/​test/​kubernetes/​snapshot/​data/​secret_as_vol.py Format imports and arguments.
sdk/​python/​test/​kubernetes/​snapshot/​data/​secret_as_env.py Format imports and arguments.
sdk/​python/​test/​kubernetes/​snapshot/​data/​node_selector.py Normalize imports and spacing.
sdk/​python/​test/​kubernetes/​snapshot/​data/​init_container.py Consolidate imports.
sdk/​python/​test/​kubernetes/​snapshot/​data/​image_pull_secrets.py Normalize imports and spacing.
sdk/​python/​test/​kubernetes/​snapshot/​data/​general_ephemeral_volume.py Normalize imports and quotes.
sdk/​python/​test/​kubernetes/​snapshot/​data/​field_path_as_env.py Format imports and arguments.
sdk/​python/​test/​kubernetes/​snapshot/​data/​empty_dir_mounts.py Format imports and arguments.
sdk/​python/​test/​kubernetes/​snapshot/​data/​create_mount_delete_existing_pvc.py Format imports and task chaining.
sdk/​python/​test/​kubernetes/​snapshot/​data/​create_mount_delete_existing_pvc_from_task_output.py Normalize imports and spacing.
sdk/​python/​test/​kubernetes/​snapshot/​data/​create_mount_delete_dynamic_pvc.py Format imports and task chaining.
sdk/​python/​test/​kubernetes/​snapshot/​data/​config_map_as_vol.py Format imports and arguments.
sdk/​python/​test/​kubernetes/​snapshot/​data/​config_map_as_env.py Format imports and arguments.
sdk/​python/​test/​__init__.py Normalize quotes.
sdk/​python/​kfp/​v2/​__init__.py Format warning and re-exports.
sdk/​python/​kfp/​registry/​__init__.py Consolidate re-exports.
sdk/​python/​kfp/​local/​utils.py Consolidate imports.
sdk/​python/​kfp/​local/​utils_test.py Format imports and protobuf construction.
sdk/​python/​kfp/​local/​task_handler_interface.py Consolidate imports.
sdk/​python/​kfp/​local/​task_handler_interface_test.py Format class and assertion.
sdk/​python/​kfp/​local/​status.py Normalize module spacing.
sdk/​python/​kfp/​local/​logging_utils.py Format spacing and signature.
sdk/​python/​kfp/​local/​io.py Format annotations and exceptions.
sdk/​python/​kfp/​local/​graph_utils.py Format signatures.
sdk/​python/​kfp/​local/​__init__.py Consolidate re-exports.
sdk/​python/​kfp/​kubernetes/​volume.py Format imports and expressions.
sdk/​python/​kfp/​kubernetes/​timeout.py Separate import groups.
sdk/​python/​kfp/​kubernetes/​security_context.py Format imports and exception.
sdk/​python/​kfp/​kubernetes/​secret.py Format imports and comprehension.
sdk/​python/​kfp/​kubernetes/​pod_metadata.py Separate import groups.
sdk/​python/​kfp/​kubernetes/​node_selector.py Format imports and call.
sdk/​python/​kfp/​kubernetes/​image.py Format imports and annotations.
sdk/​python/​kfp/​kubernetes/​field.py Separate import groups.
sdk/​python/​kfp/​kubernetes/​empty_dir.py Separate import groups.
sdk/​python/​kfp/​kubeflow_client/​types.py Remove redundant parentheses.
sdk/​python/​kfp/​kubeflow_client/​constants.py Format state collection.
sdk/​python/​kfp/​kubeflow_client/​backends/​kubernetes/​types.py Format representation string.
sdk/​python/​kfp/​kubeflow_client/​backends/​kubernetes/​__init__.py Format re-export.
sdk/​python/​kfp/​kubeflow_client/​__init__.py Consolidate re-exports.
sdk/​python/​kfp/​dsl/​yaml_component.py Format imports and parsing.
sdk/​python/​kfp/​dsl/​task_final_status.py Normalize class spacing.
sdk/​python/​kfp/​dsl/​python_component.py Consolidate imports.
sdk/​python/​kfp/​dsl/​notebook_component_decorator.py Format imports and comprehension.
sdk/​python/​kfp/​dsl/​kfp_config.py Format imports and expressions.
sdk/​python/​kfp/​dsl/​importer_component.py Consolidate imports.
sdk/​python/​kfp/​dsl/​container_component_decorator.py Format imports and signature.
sdk/​python/​kfp/​dsl/​container_component_class.py Format imports and signature.
sdk/​python/​kfp/​dsl/​container_component_artifact_channel.py Normalize trailing comma.
sdk/​python/​kfp/​components/​__init__.py Format public re-exports.
sdk/​python/​kfp/​compiler/​compiler.py Format annotations and calls.
sdk/​python/​kfp/​client/​token_credentials_base.py Normalize class spacing.
sdk/​python/​kfp/​client/​set_volume_credentials_test.py Format imports and construction.
sdk/​python/​kfp/​client/​__init__.py Update re-export formatting.
sdk/​python/​kfp/​cli/​utils/​parsing.py Format slices and exceptions.
sdk/​python/​kfp/​cli/​utils/​deprecated_alias_group.py Format signatures and calls.
sdk/​python/​kfp/​cli/​utils/​deprecated_alias_group_test.py Format decorator and assertion.
sdk/​python/​kfp/​cli/​utils/​aliased_plurals_group.py Format signature and spacing.
sdk/​python/​kfp/​cli/​utils/​aliased_plurals_group_test.py Format imports and assertion.
sdk/​python/​kfp/​cli/​dsl.py Separate import groups.
sdk/​python/​kfp/​cli/​diagnose_me/​utility.py Format dataclass and construction.
sdk/​python/​kfp/​cli/​diagnose_me/​utility_test.py Consolidate mock imports.
sdk/​python/​kfp/​cli/​diagnose_me/​dev_env.py Format signature and collection.
sdk/​python/​kfp/​cli/​compile_test.py Normalize spacing.
sdk/​python/​kfp/​cli/​__main__.py Separate import groups.
sdk/​python/​kfp/​__init__.py Format exception and re-exports.
sdk/​python/​hatch_build.py Format build exception.
samples/​core/​sequential/​sequential.py Format imports and configuration.
samples/​core/​secret/​secret_test.py Format imports and test invocation.
samples/​core/​retry/​retry.py Normalize imports and quotes.
samples/​core/​retry/​retry_test.py Format imports and test invocation.
samples/​core/​resource_spec/​runtime_resource_request_test.py Format test cases.
samples/​core/​resource_spec/​resource_spec.py Format pipeline decorator.
samples/​core/​resource_spec/​resource_spec_test.py Format test cases.
samples/​core/​output_a_directory/​output_a_directory_test.py Format test invocation.
samples/​core/​multiple_outputs/​multiple_outputs_test.py Format test invocation.
samples/​core/​loop_static/​loop_static.py Format signature and loop inputs.
samples/​core/​loop_parameter/​loop_parameter.py Format signature and spacing.
samples/​core/​loop_parameter/​loop_parameter_test.py Format imports and assertions.
samples/​core/​loop_parallelism/​loop_parallelism.py Normalize spacing.
samples/​core/​loop_parallelism/​loop_parallelism_test.py Format test invocation.
samples/​core/​loop_output/​loop_output.py Sort imports and normalize spacing.
samples/​core/​kubernetes_pvc/​kubernetes_pvc.py Format imports and task chaining.
samples/​core/​exit_handler/​exit_handler.py Clean imports and format compilation.
samples/​core/​exit_handler/​exit_handler_test.py Format imports and test invocation.
samples/​core/​execution_order/​execution_order.py Normalize indentation and imports.
samples/​core/​execution_order/​execution_order_test.py Format test invocation.
samples/​core/​condition/​nested_condition.py Normalize imports and spacing.
samples/​core/​condition/​nested_condition_test.py Format test invocation.
samples/​core/​condition/​condition_v2.py Normalize import spacing.
samples/​core/​caching/​caching_test.py Format test invocation.
pyproject.toml Configure Ruff and replace lint dependencies.
docs/​agents/​testing.md Document Ruff checks and formatter order.
docs/​_ext/​kubeflow_topnav/​__init__.py Normalize quotes and layout.
components/​google-cloud/​google_cloud_pipeline_components/​version.py Normalize quotes; version unchanged.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​wait_gcp_resources/​__init__.py Format re-export and docstring.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​vertex_notification_email/​__init__.py Format re-export.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​model/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​model_evaluation/​model_based_llm_evaluation/​__init__.py Format re-export.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​hyperparameter_tuning_job/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​forecasting/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​endpoint/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​dataproc/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​dataflow/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​custom_job/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​batch_predict_job/​__init__.py Format re-export.
components/​google-cloud/​google_cloud_pipeline_components/​v1/​automl/​forecasting/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​preview/​starry_net/​__init__.py Format re-export.
components/​google-cloud/​google_cloud_pipeline_components/​preview/​model_evaluation/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​preview/​llm/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​preview/​dataflow/​__init__.py Format re-export.
components/​google-cloud/​google_cloud_pipeline_components/​preview/​custom_job/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​preview/​automl/​vision/​__init__.py Format re-export.
components/​google-cloud/​google_cloud_pipeline_components/​preview/​automl/​tabular/​auto_feature_engineering.py Normalize function indentation.
components/​google-cloud/​google_cloud_pipeline_components/​preview/​automl/​tabular/​__init__.py Format re-exports.
components/​google-cloud/​google_cloud_pipeline_components/​container/​v1/​vertex_notification_email/​executor.py Normalize indentation and docstring.
components/​google-cloud/​google_cloud_pipeline_components/​container/​v1/​gcp_launcher/​utils/​error_util.py Normalize indentation and docstring.
components/​google-cloud/​google_cloud_pipeline_components/​container/​v1/​dataproc/​create_spark_sql_batch/​remote_runner.py Format import.
components/​google-cloud/​google_cloud_pipeline_components/​container/​v1/​dataproc/​create_spark_r_batch/​remote_runner.py Format import.
components/​google-cloud/​google_cloud_pipeline_components/​container/​v1/​dataproc/​create_spark_batch/​remote_runner.py Format import.
components/​google-cloud/​google_cloud_pipeline_components/​container/​v1/​dataproc/​create_pyspark_batch/​remote_runner.py Format import.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​starry_net/​upload_decomposition_plots/​component.py Format signature indentation.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​starry_net/​set_train_args/​component.py Format return annotation.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​starry_net/​set_tfrecord_args/​component.py Format annotation and docstring.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​starry_net/​set_test_set/​component.py Format decorator and annotation.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​starry_net/​set_eval_args/​component.py Format return annotation.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​starry_net/​set_dataprep_args/​component.py Format return annotation.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​starry_net/​maybe_set_tfrecord_args/​component.py Format return annotation.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​starry_net/​get_training_artifacts/​component.py Format decorator and annotation.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​model/​__init__.py Format re-export.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​model_evaluation/​text2sql_validate_and_process/​__init__.py Wrap module docstring.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​model_evaluation/​text2sql_preprocess/​__init__.py Wrap module docstring.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​model_evaluation/​llm_retrieval_metrics/​__init__.py Wrap module docstring.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​model_evaluation/​llm_information_retrieval_preprocessor/​__init__.py Wrap module docstring.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​model_evaluation/​llm_embedding_retrieval/​__init__.py Wrap module docstring.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​model_evaluation/​llm_classification_postprocessor/​__init__.py Wrap module docstring.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​llm/​generated/​refined_image_versions.py Remove generated-file blank line.
components/​google-cloud/​google_cloud_pipeline_components/​_implementation/​llm/​env.py Format import and indentation.
components/​google-cloud/​google_cloud_pipeline_components/​_image.py Normalize module spacing.
components/​google-cloud/​google_cloud_pipeline_components/​__init__.py Format warning indentation.
backend/​src/​v2/​test/​components/​run_sample.py Normalize imports and string delimiters.
backend/​src/​v2/​test/​components/​kaniko.py Normalize imports and string delimiters.
backend/​src/​v2/​test/​components/​download_gcs_tgz.py Normalize imports and string delimiters.
backend/​src/​v2/​driver/​test_data/​pipeline_with_input_status_state.py Normalize assertions and compilation.
backend/​api/​v2/​python_http_client_smoke/​test_package_import.py Format paths and smoke imports.
api/​v2alpha1/​python/​generate_proto.py Normalize quotes and calls.
.style.yapf Remove obsolete configuration.
.isort.cfg Remove obsolete configuration.
.github/​workflows/​sdk-yapf.yml Run repository-wide Ruff formatting.
.github/​workflows/​sdk-isort.yml Run repository-wide Ruff linting.
.github/​workflows/​pre-commit.yml Detect Ruff configuration changes.
.github/​resources/​scripts/​wait_for_seaweedfs_iam_test.py Format imports and string delimiters.
.github/​resources/​scripts/​upgrade_pause_test.py Sort imports and normalize spacing.
.github/​resources/​scripts/​runtime_base_image_artifacts_test.py Format comprehensions and assertions.
.github/​resources/​scripts/​prune_runtime_base_image_caches.py Format docstring and exception.
.github/​resources/​scripts/​deploy_kfp_order_test.py Format imports and expression.
.github/​resources/​scripts/​contributor_report_workflow_test.py Format imports and comprehension.
.github/​resources/​scripts/​artifact_workflow_test_support.py Format expressions and exceptions.
.github/​resources/​scripts/​artifact_upload_retry_test.py Format assertion and spacing.
.github/​resources/​scripts/​arm64_presubmit_image.py Format imports and exception.
.github/​dependabot.yml Update docformatter pin rationale.

Review effort: Balanced

@zazulam

zazulam commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

/approve

@google-oss-prow

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: zazulam

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@zazulam

zazulam commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

/lgtm

Signed-off-by: droctothorpe <mythicalsunlight@gmail.com>
Signed-off-by: droctothorpe <mythicalsunlight@gmail.com>
@google-oss-prow google-oss-prow Bot removed the lgtm label Oct 21, 2026
Signed-off-by: droctothorpe <mythicalsunlight@gmail.com>
@zazulam

zazulam commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

/lgtm

@google-oss-prow google-oss-prow Bot added the lgtm label Oct 21, 2026
@github-actions github-actions Bot added the ci-passed All CI tests on a pull request have passed label Oct 21, 2026
@google-oss-prow
google-oss-prow Bot merged commit cd3ed54 into kubeflow:master Oct 21, 2026
201 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved ci-passed All CI tests on a pull request have passed lgtm size/XXL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants