Rename shard_util_v2 to shard_util.

At some point there were two different versions of shard_util but the
version 1 has been deprecated and there is no reason to keep using the
v2 suffix.

Bug: https://github.com/flutter/flutter/issues/146599
Change-Id: I9b2f9b4d9bd4d68225234e08baf1f2c026bcec91
Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/57100
Reviewed-by: Keyong Han <keyonghan@google.com>
Reviewed-by: Ricardo Amador <ricardoamador@google.com>
Commit-Queue: Godofredo Contreras <godofredoc@google.com>
diff --git a/recipe_modules/display_util/examples/display_subbuilds.py b/recipe_modules/display_util/examples/display_subbuilds.py
index 1e13bdc..0a75dad 100644
--- a/recipe_modules/display_util/examples/display_subbuilds.py
+++ b/recipe_modules/display_util/examples/display_subbuilds.py
@@ -3,7 +3,7 @@
 # found in the LICENSE file.
 
 from recipe_engine.recipe_api import Property
-from RECIPE_MODULES.flutter.shard_util_v2.api import SubbuildResult
+from RECIPE_MODULES.flutter.shard_util.api import SubbuildResult
 
 DEPS = [
     "flutter/display_util",
diff --git a/recipe_modules/repo_util/__init__.py b/recipe_modules/repo_util/__init__.py
index 2a50391..f46d5aa 100644
--- a/recipe_modules/repo_util/__init__.py
+++ b/recipe_modules/repo_util/__init__.py
@@ -6,7 +6,7 @@
     'flutter/cache',
     'flutter/monorepo',
     'flutter/retry',
-    'flutter/shard_util_v2',
+    'flutter/shard_util',
     'fuchsia/utils',
     'recipe_engine/buildbucket',
     'recipe_engine/context',
diff --git a/recipe_modules/repo_util/api.py b/recipe_modules/repo_util/api.py
index 58d0bc2..a0ed408 100644
--- a/recipe_modules/repo_util/api.py
+++ b/recipe_modules/repo_util/api.py
@@ -63,7 +63,9 @@
         )
         env['GYP_MSVS_VERSION'] = metadata['version']
 
-  def engine_checkout(self, checkout_path, env, env_prefixes, gclient_variables = None):
+  def engine_checkout(
+      self, checkout_path, env, env_prefixes, gclient_variables=None
+  ):
     """Checkout code using gclient.
 
     Args:
@@ -98,9 +100,7 @@
     # Grab any gclient custom variables passed as properties.
     if not gclient_variables:
       gclient_variables = self.m.properties.get('gclient_variables', {})
-    local_custom_vars = self.m.shard_util_v2.unfreeze_dict(
-        gclient_variables
-    )
+    local_custom_vars = self.m.shard_util.unfreeze_dict(gclient_variables)
     # Pass a special gclient variable to identify release candidate branch checkouts. This
     # is required to prevent trying to download experimental dependencies on release candidate
     # branches.
@@ -198,7 +198,7 @@
     # Pass a special gclient variable to identify release candidate branch checkouts. This
     # is required to prevent trying to download experimental dependencies on release candidate
     # branches.
-    local_custom_vars = self.m.shard_util_v2.unfreeze_dict(
+    local_custom_vars = self.m.shard_util.unfreeze_dict(
         self.m.properties.get('gclient_variables', {})
     )
     if (self.m.properties.get('git_branch', '').startswith('flutter-') or
@@ -457,8 +457,9 @@
     flutter_exe = 'flutter.bat' if self.m.platform.is_win else 'flutter'
     if (not self.m.monorepo.is_monorepo_ci_build and
         not self.m.monorepo.is_monorepo_try_build):
-      self.m.step('flutter config --clear-features',
-                  [flutter_bin.join(flutter_exe), 'config', '--clear-features'],
+      self.m.step(
+          'flutter config --clear-features',
+          [flutter_bin.join(flutter_exe), 'config', '--clear-features'],
       )
     return env, env_prefixes
 
diff --git a/recipe_modules/shard_util_v2/__init__.py b/recipe_modules/shard_util/__init__.py
similarity index 100%
rename from recipe_modules/shard_util_v2/__init__.py
rename to recipe_modules/shard_util/__init__.py
diff --git a/recipe_modules/shard_util_v2/api.py b/recipe_modules/shard_util/api.py
similarity index 100%
rename from recipe_modules/shard_util_v2/api.py
rename to recipe_modules/shard_util/api.py
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/monorepo_bb_subbuilds.json b/recipe_modules/shard_util/examples/full.expected/monorepo_bb_subbuilds.json
similarity index 100%
rename from recipe_modules/shard_util_v2/examples/full.expected/monorepo_bb_subbuilds.json
rename to recipe_modules/shard_util/examples/full.expected/monorepo_bb_subbuilds.json
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/monorepo_led_subbuilds.json b/recipe_modules/shard_util/examples/full.expected/monorepo_led_subbuilds.json
similarity index 100%
rename from recipe_modules/shard_util_v2/examples/full.expected/monorepo_led_subbuilds.json
rename to recipe_modules/shard_util/examples/full.expected/monorepo_led_subbuilds.json
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/monorepo_try_bb_subbuilds.json b/recipe_modules/shard_util/examples/full.expected/monorepo_try_bb_subbuilds.json
similarity index 100%
rename from recipe_modules/shard_util_v2/examples/full.expected/monorepo_try_bb_subbuilds.json
rename to recipe_modules/shard_util/examples/full.expected/monorepo_try_bb_subbuilds.json
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/monorepo_try_led_subbuilds.json b/recipe_modules/shard_util/examples/full.expected/monorepo_try_led_subbuilds.json
similarity index 100%
rename from recipe_modules/shard_util_v2/examples/full.expected/monorepo_try_led_subbuilds.json
rename to recipe_modules/shard_util/examples/full.expected/monorepo_try_led_subbuilds.json
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/monorepo_try_led_without_builder_id.json b/recipe_modules/shard_util/examples/full.expected/monorepo_try_led_without_builder_id.json
similarity index 82%
rename from recipe_modules/shard_util_v2/examples/full.expected/monorepo_try_led_without_builder_id.json
rename to recipe_modules/shard_util/examples/full.expected/monorepo_try_led_without_builder_id.json
index d15b798..b9ce7fd 100644
--- a/recipe_modules/shard_util_v2/examples/full.expected/monorepo_try_led_without_builder_id.json
+++ b/recipe_modules/shard_util/examples/full.expected/monorepo_try_led_without_builder_id.json
@@ -33,16 +33,16 @@
       "  File \"RECIPE_REPO[recipe_engine]/recipe_engine/internal/property_invoker.py\", in _invoke_with_properties",
       "    return callable_obj(*props, **additional_args)",
       "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
-      "  File \"RECIPE_REPO[flutter]/recipe_modules/shard_util_v2/examples/full.py\", line 42, in RunSteps",
-      "    reqs = api.shard_util_v2.schedule_builds(build_configs, presentation)",
-      "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
-      "  File \"RECIPE_REPO[flutter]/recipe_modules/shard_util_v2/api.py\", line 139, in schedule_builds",
+      "  File \"RECIPE_REPO[flutter]/recipe_modules/shard_util/examples/full.py\", line 42, in RunSteps",
+      "    reqs = api.shard_util.schedule_builds(build_configs, presentation)",
+      "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
+      "  File \"RECIPE_REPO[flutter]/recipe_modules/shard_util/api.py\", line 139, in schedule_builds",
       "    return self.schedule(updated_builds, presentation, branch=branch)",
       "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
-      "  File \"RECIPE_REPO[flutter]/recipe_modules/shard_util_v2/api.py\", line 179, in schedule",
+      "  File \"RECIPE_REPO[flutter]/recipe_modules/shard_util/api.py\", line 179, in schedule",
       "    builds = self._schedule_with_led(build_list)",
       "             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
-      "  File \"RECIPE_REPO[flutter]/recipe_modules/shard_util_v2/api.py\", line 231, in _schedule_with_led",
+      "  File \"RECIPE_REPO[flutter]/recipe_modules/shard_util/api.py\", line 231, in _schedule_with_led",
       "    ] = self.m.monorepo.try_build_identifier",
       "        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
       "  File \"RECIPE_REPO[flutter]/recipe_modules/monorepo/api.py\", line 55, in try_build_identifier",
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json b/recipe_modules/shard_util/examples/full.expected/presubmit_bb.json
similarity index 100%
rename from recipe_modules/shard_util_v2/examples/full.expected/presubmit_bb.json
rename to recipe_modules/shard_util/examples/full.expected/presubmit_bb.json
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json b/recipe_modules/shard_util/examples/full.expected/presubmit_led.json
similarity index 100%
rename from recipe_modules/shard_util_v2/examples/full.expected/presubmit_led.json
rename to recipe_modules/shard_util/examples/full.expected/presubmit_led.json
diff --git a/recipe_modules/shard_util_v2/examples/full.expected/presubmit_led_subbuilds.json b/recipe_modules/shard_util/examples/full.expected/presubmit_led_subbuilds.json
similarity index 100%
rename from recipe_modules/shard_util_v2/examples/full.expected/presubmit_led_subbuilds.json
rename to recipe_modules/shard_util/examples/full.expected/presubmit_led_subbuilds.json
diff --git a/recipe_modules/shard_util_v2/examples/full.py b/recipe_modules/shard_util/examples/full.py
similarity index 88%
rename from recipe_modules/shard_util_v2/examples/full.py
rename to recipe_modules/shard_util/examples/full.py
index 158b548..483c18b 100644
--- a/recipe_modules/shard_util_v2/examples/full.py
+++ b/recipe_modules/shard_util/examples/full.py
@@ -14,7 +14,7 @@
 
 DEPS = [
     'flutter/monorepo',
-    'flutter/shard_util_v2',
+    'flutter/shard_util',
     'fuchsia/buildbucket_util',
     'recipe_engine/buildbucket',
     'recipe_engine/led',
@@ -28,7 +28,7 @@
 def RunSteps(api):
   build_configs = api.properties.get('builds', [])
   test_configs = api.properties.get('tests', [])
-  props = api.shard_util_v2.pre_process_properties({
+  props = api.shard_util.pre_process_properties({
       'properties': {
           '$flutter/osx_sdk':
               '{"cleanup_cache": true, "sdk_version": "14a5294e"}',
@@ -39,25 +39,23 @@
   assert isinstance(props['properties']['$flutter/osx_sdk'], dict)
   assert props['properties']['validation'] == 'docs'
   with api.step.nest("launch builds") as presentation:
-    reqs = api.shard_util_v2.schedule_builds(build_configs, presentation)
+    reqs = api.shard_util.schedule_builds(build_configs, presentation)
   with api.step.nest("collect builds") as presentation:
-    builds = api.shard_util_v2.collect(reqs)
+    builds = api.shard_util.collect(reqs)
     for build in builds.values():
       if build.build_proto.status != common_pb2.SUCCESS:
         raise api.step.StepFailure("build %s failed" % build.build_id)
-    api.shard_util_v2.archive_full_build(
+    api.shard_util.archive_full_build(
         api.path['start_dir'].join('out', 'host_debug'), 'host_debug'
     )
-    api.shard_util_v2.download_full_builds(
-        builds, api.path['cleanup'].join('out')
-    )
+    api.shard_util.download_full_builds(builds, api.path['cleanup'].join('out'))
   with api.step.nest("launch builds") as presentation:
-    reqs = api.shard_util_v2.schedule_tests(test_configs, builds, presentation)
-  api.shard_util_v2.get_base_bucket_name()
+    reqs = api.shard_util.schedule_tests(test_configs, builds, presentation)
+  api.shard_util.get_base_bucket_name()
 
 
 def GenTests(api):
-  try_subbuild1 = api.shard_util_v2.try_build_message(
+  try_subbuild1 = api.shard_util.try_build_message(
       build_id=8945511751514863186,
       builder='ios_debug',
       input_props={'task_name': 'mytask'},
@@ -68,7 +66,7 @@
       },
       status='SUCCESS',
   )
-  try_subbuild2 = api.shard_util_v2.try_build_message(
+  try_subbuild2 = api.shard_util.try_build_message(
       build_id=8945511751514863187,
       builder='builder-subbuild2',
       output_props={
@@ -76,7 +74,7 @@
       },
       status='SUCCESS',
   )
-  try_failure = api.shard_util_v2.try_build_message(
+  try_failure = api.shard_util.try_build_message(
       build_id=8945511751514863187,
       builder='builder-subbuild2',
       output_props={
@@ -85,7 +83,7 @@
       status='FAILURE',
   )
 
-  led_try_subbuild1 = api.shard_util_v2.try_build_message(
+  led_try_subbuild1 = api.shard_util.try_build_message(
       build_id=87654321,
       builder='ios_debug',
       input_props={'task_name': 'mytask'},
@@ -160,7 +158,7 @@
           project='proj',
           bucket='ci',
       ),
-      api.shard_util_v2.child_led_steps(
+      api.shard_util.child_led_steps(
           subbuilds=[led_try_subbuild1],
           collect_step='collect builds',
       )
@@ -174,7 +172,7 @@
   yield (
       api.buildbucket_util.test('presubmit_bb', tryjob=False, status='FAILURE')
       + api.properties(**presubmit_props_bb) + api.platform.name('linux') +
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_failure],
           launch_step='launch builds.schedule',
           collect_step='collect builds',
@@ -195,7 +193,7 @@
           project='proj',
           bucket='ci',
       ),
-      api.shard_util_v2.child_led_steps(
+      api.shard_util.child_led_steps(
           subbuilds=[led_try_subbuild1],
           collect_step='collect builds',
       )
@@ -204,7 +202,7 @@
   yield api.test(
       'monorepo_bb_subbuilds', api.properties(**props_bb),
       api.platform.name('linux'), api.monorepo.ci_build(),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step='launch builds.schedule',
           collect_step='collect builds',
@@ -214,7 +212,7 @@
   yield api.test(
       'monorepo_try_bb_subbuilds', api.properties(**props_bb),
       api.platform.name('linux'), api.monorepo.try_build(),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step='launch builds.schedule',
           collect_step='collect builds',
@@ -226,7 +224,7 @@
       api.properties(**props),
       api.platform.name('linux'),
       api.monorepo.ci_build(),
-      api.shard_util_v2.child_led_steps(
+      api.shard_util.child_led_steps(
           subbuilds=[led_try_subbuild1],
           collect_step='collect builds',
       ),
@@ -238,7 +236,7 @@
       api.properties(**props),
       api.platform.name('linux'),
       api.monorepo.try_build(),
-      api.shard_util_v2.child_led_steps(
+      api.shard_util.child_led_steps(
           subbuilds=[led_try_subbuild1],
           collect_step='collect builds',
       ),
diff --git a/recipe_modules/shard_util_v2/test_api.py b/recipe_modules/shard_util/test_api.py
similarity index 97%
rename from recipe_modules/shard_util_v2/test_api.py
rename to recipe_modules/shard_util/test_api.py
index 0b6b740..237be8d 100644
--- a/recipe_modules/shard_util_v2/test_api.py
+++ b/recipe_modules/shard_util/test_api.py
@@ -8,7 +8,7 @@
     builds_service as builds_service_pb2,
 )
 from PB.go.chromium.org.luci.led.job import job as job_pb2
-from RECIPE_MODULES.flutter.shard_util_v2.api import SubbuildResult
+from RECIPE_MODULES.flutter.shard_util.api import SubbuildResult
 
 
 class ShardUtilTestApi(recipe_test_api.RecipeTestApi):
diff --git a/recipe_modules/status_reporting/api.py b/recipe_modules/status_reporting/api.py
index 8956d2b..5455e84 100644
--- a/recipe_modules/status_reporting/api.py
+++ b/recipe_modules/status_reporting/api.py
@@ -12,7 +12,7 @@
 class StatusReportingApi(recipe_api.RecipeApi):
 
   def build_to_json(self, build):
-    """Encodes a shard_util_v2.SubbuildResult to a json string.
+    """Encodes a shard_util.SubbuildResult to a json string.
 
     Args:
       build(build.Build): The build to encode.
@@ -32,10 +32,10 @@
 
     Args:
       subbuilds(dict): A dictionary with the build name as key and a value
-        of shard_util_v2.SubbuildResult as a value.
+        of shard_util.SubbuildResult as a value.
       topic(str): (optional) gcloud topic to publish message to.
       only_publish_build_id(bool): (optional) If True, only publish the build_id
-        of the shard_util_v2.SubbuildResult instead of the entire build json.
+        of the shard_util.SubbuildResult instead of the entire build json.
     """
     with self.m.step.nest('Publish results') as presentation:
       for id_name, build in subbuilds.items():
diff --git a/recipe_modules/status_reporting/examples/full.py b/recipe_modules/status_reporting/examples/full.py
index f92e3bb..7cc0f17 100644
--- a/recipe_modules/status_reporting/examples/full.py
+++ b/recipe_modules/status_reporting/examples/full.py
@@ -6,7 +6,7 @@
 
 from PB.go.chromium.org.luci.buildbucket.proto import build as build_pb2
 from PB.go.chromium.org.luci.buildbucket.proto import builder_common as builder_pb2
-from RECIPE_MODULES.flutter.shard_util_v2.api import SubbuildResult
+from RECIPE_MODULES.flutter.shard_util.api import SubbuildResult
 
 DEPS = ['flutter/status_reporting']
 
diff --git a/recipes/devicelab/devicelab_drone_build_test.py b/recipes/devicelab/devicelab_drone_build_test.py
index 0f2574e..af2f1fe 100644
--- a/recipes/devicelab/devicelab_drone_build_test.py
+++ b/recipes/devicelab/devicelab_drone_build_test.py
@@ -13,7 +13,7 @@
     'flutter/osx_sdk',
     'flutter/repo_util',
     'flutter/retry',
-    'flutter/shard_util_v2',
+    'flutter/shard_util',
     'flutter/test_utils',
     'flutter/token_util',
     'fuchsia/git',
@@ -78,9 +78,9 @@
       api, task_name, api.properties.get('dependencies', []), artifact
   )
   with api.step.nest('launch builds') as presentation:
-    tasks = api.shard_util_v2.schedule(targets, presentation)
+    tasks = api.shard_util.schedule(targets, presentation)
   with api.step.nest('collect builds') as presentation:
-    build_results = api.shard_util_v2.collect(tasks)
+    build_results = api.shard_util.collect(tasks)
     api.display_util.display_subbuilds(
         step_name='display builds',
         subbuilds=build_results,
@@ -96,7 +96,7 @@
   # These are dependencies specified in the yaml file. We want to pass them down
   # to test so they also install these dependencies.
   test_props = {
-      'dependencies': [api.shard_util_v2.unfreeze_dict(dep) for dep in deps],
+      'dependencies': [api.shard_util.unfreeze_dict(dep) for dep in deps],
       'task_name':
           task_name,
       'parent_builder':
@@ -108,7 +108,7 @@
       'tags':
           tags,
       '$flutter/osx_sdk':
-          api.shard_util_v2.unfreeze_dict(
+          api.shard_util.unfreeze_dict(
               api.properties.get('$flutter/osx_sdk', {})
           ),
   }
diff --git a/recipes/devicelab/devicelab_test_drone.py b/recipes/devicelab/devicelab_test_drone.py
index f036a13..8d60262 100644
--- a/recipes/devicelab/devicelab_test_drone.py
+++ b/recipes/devicelab/devicelab_test_drone.py
@@ -14,7 +14,7 @@
     'flutter/osx_sdk',
     'flutter/repo_util',
     'flutter/retry',
-    'flutter/shard_util_v2',
+    'flutter/shard_util',
     'flutter/test_utils',
     'flutter/token_util',
     'fuchsia/git',
@@ -160,7 +160,7 @@
   '''Download pre-build artifact.'''
   commit_sha = api.repo_util.get_env_ref()
   artifact_gcs_dir = 'flutter/%s/%s' % (
-      api.shard_util_v2.get_base_bucket_name(), commit_sha
+      api.shard_util.get_base_bucket_name(), commit_sha
   )
   artifact_gcs_path = '%s/%s' % (artifact_gcs_dir, artifact)
   api.gsutil.download(
@@ -235,7 +235,7 @@
   """
   if shouldNotUpdate(api, git_branch):
     return
-  bucket = api.shard_util_v2.get_base_bucket_name()
+  bucket = api.shard_util.get_base_bucket_name()
   runner_params = ['--test-flaky', is_test_flaky, '--builder-bucket', bucket]
   if api.properties.get('upload_metrics'):
     runner_params.extend([
diff --git a/recipes/engine/web_engine_framework.py b/recipes/engine/web_engine_framework.py
index 866a0de..429e0f4 100644
--- a/recipes/engine/web_engine_framework.py
+++ b/recipes/engine/web_engine_framework.py
@@ -21,7 +21,7 @@
     'flutter/logs_util',
     'flutter/os_utils',
     'flutter/repo_util',
-    'flutter/shard_util_v2',
+    'flutter/shard_util',
     'fuchsia/cas_util',
     'flutter/goma',
     'recipe_engine/buildbucket',
@@ -128,9 +128,9 @@
     # side is kept in `ref`.
     targets = generate_targets(api, cas_hash, ref.strip(), url, deps)
     with api.step.nest('launch builds') as presentation:
-      tasks = api.shard_util_v2.schedule(targets, presentation)
+      tasks = api.shard_util.schedule(targets, presentation)
     with api.step.nest('collect builds') as presentation:
-      build_results = api.shard_util_v2.collect(tasks)
+      build_results = api.shard_util.collect(tasks)
     api.display_util.display_subbuilds(
         step_name='display builds',
         subbuilds=build_results,
@@ -148,7 +148,7 @@
     drone_props = {
         'subshard': subshard,
         'shard': shard,
-        'dependencies': [api.shard_util_v2.unfreeze_dict(dep) for dep in deps],
+        'dependencies': [api.shard_util.unfreeze_dict(dep) for dep in deps],
         'task_name': task_name,
         'local_web_sdk_cas_hash': cas_hash,
     }
diff --git a/recipes/engine_v2/README.md b/recipes/engine_v2/README.md
index bcbee80..ea85996 100644
--- a/recipes/engine_v2/README.md
+++ b/recipes/engine_v2/README.md
@@ -51,7 +51,7 @@
 ## OVERVIEW
 
 Engine V2 recipes implementation uses three recipes:
-[engine\_v2/engine\_v2.py](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipes/engine_v2/engine_v2.py) (orchestrator),[engine\_v2/builder.py](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipes/engine_v2/builder.py) (builder), [engine\_v2/tester.py](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipes/engine_v2/tester.py) (tester) and several recipe modules: [shard\_util\_v2](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipe_modules/shard_util_v2/api.py),  [archives](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipe_modules/archives/api.py), and [flutter\_deps](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipe_modules/flutter_deps/api.py).
+[engine\_v2/engine\_v2.py](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipes/engine_v2/engine_v2.py) (orchestrator),[engine\_v2/builder.py](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipes/engine_v2/builder.py) (builder), [engine\_v2/tester.py](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipes/engine_v2/tester.py) (tester) and several recipe modules: [shard\_util\_v2](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipe_modules/shard_util/api.py),  [archives](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipe_modules/archives/api.py), and [flutter\_deps](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipe_modules/flutter_deps/api.py).
 
 The recipes and modules are highly customizable through a build configuration file making it
 possible to create a completely new build without modifying a single line of code in the recipes
@@ -200,7 +200,7 @@
 to implement fixes in a single place and apply to all the recipes. Although there are many modules,
  only the three most important ones are covered in this document: shard\_util\_v2, archives, and display\_util.
 
-#### [Shard\_util\_v2](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipe_modules/shard_util_v2/api.py)
+#### [Shard\_util\_v2](https://flutter.googlesource.com/recipes/+/refs/heads/main/recipe_modules/shard_util/api.py)
 
 This module provides the core functionality supporting Engine V2 Builds. It understands the build configuration
 language files and helps trigger multiple sub-builds based on those configurations. It also supports automated
diff --git a/recipes/engine_v2/builder.py b/recipes/engine_v2/builder.py
index 1cd3c2b..6f81bab 100644
--- a/recipes/engine_v2/builder.py
+++ b/recipes/engine_v2/builder.py
@@ -45,7 +45,7 @@
     'flutter/rbe',
     'flutter/repo_util',
     'flutter/retry',
-    'flutter/shard_util_v2',
+    'flutter/shard_util',
     'flutter/signing',
     'flutter/test_utils',
     'fuchsia/cas_util',
@@ -247,7 +247,7 @@
         Verify(api, checkout, archive_config)
   # Archive full build. This is inefficient but necessary for global generators.
   if build.get('cas_archive', True):
-    full_build_hash = api.shard_util_v2.archive_full_build(
+    full_build_hash = api.shard_util.archive_full_build(
         checkout.join('out', build.get('name')), build.get('name')
     )
     outputs['full_build'] = full_build_hash
diff --git a/recipes/engine_v2/engine_v2.py b/recipes/engine_v2/engine_v2.py
index 68e1a63..0b32f6c 100644
--- a/recipes/engine_v2/engine_v2.py
+++ b/recipes/engine_v2/engine_v2.py
@@ -32,7 +32,7 @@
     'flutter/repo_util',
     'flutter/os_utils',
     'flutter/osx_sdk',
-    'flutter/shard_util_v2',
+    'flutter/shard_util',
     'recipe_engine/buildbucket',
     'recipe_engine/context',
     'recipe_engine/file',
@@ -103,11 +103,11 @@
 
   # Execute subbuilds
   with api.step.nest('launch builds') as presentation:
-    tasks = api.shard_util_v2.schedule_builds(
+    tasks = api.shard_util.schedule_builds(
         builds, presentation, branch=current_branch
     )
   with api.step.nest('collect builds') as presentation:
-    build_results = api.shard_util_v2.collect(tasks)
+    build_results = api.shard_util.collect(tasks)
 
   api.display_util.display_subbuilds(
       step_name='display builds',
@@ -147,7 +147,7 @@
     # Download sub-builds
     out_builds_path = full_engine_checkout.join('src', 'out')
     api.file.rmtree('Clobber build download folder', out_builds_path)
-    api.shard_util_v2.download_full_builds(build_results, out_builds_path)
+    api.shard_util.download_full_builds(build_results, out_builds_path)
     with api.step.nest('Global generators') as presentation:
       if 'tasks' in generators:
         api.flutter_bcid.report_stage(BcidStage.COMPILE.value)
@@ -166,12 +166,10 @@
   # Run tests
   if not api.flutter_bcid.is_official_build():
     with api.step.nest('launch tests') as presentation:
-      tasks = api.shard_util_v2.schedule_tests(
-          tests, build_results, presentation
-      )
+      tasks = api.shard_util.schedule_tests(tests, build_results, presentation)
 
     with api.step.nest('collect tests') as presentation:
-      test_results = api.shard_util_v2.collect(tasks)
+      test_results = api.shard_util.collect(tasks)
 
     api.display_util.display_subbuilds(
         step_name='display tests',
@@ -261,7 +259,7 @@
 
 
 def GenTests(api):
-  try_subbuild1 = api.shard_util_v2.try_build_message(
+  try_subbuild1 = api.shard_util.try_build_message(
       build_id=8945511751514863186,
       builder="builder-subbuild1",
       output_props={"test_orchestration_inputs_hash": "abc"},
@@ -312,7 +310,7 @@
           revision='a' * 40,
           build_number=123,
       ),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
@@ -341,7 +339,7 @@
           revision='a' * 40,
           build_number=123,
       ),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
@@ -366,7 +364,7 @@
           revision='a' * 40,
           build_number=123,
       ),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
@@ -383,7 +381,7 @@
           revision='a' * 40,
           build_number=123,
       ),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
@@ -416,7 +414,7 @@
       api.platform.name('linux'),
       api.properties(builds=builds, builder_name_suffix='-try'),
       api.monorepo.try_build(),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
@@ -428,7 +426,7 @@
       api.platform.name('linux'),
       api.properties(config_name='config_name'),
       api.monorepo.ci_build(),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
@@ -455,7 +453,7 @@
           revision='a' * 40,
           build_number=123,
       ),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
@@ -494,7 +492,7 @@
                   }]
   }]
 
-  subtest1 = api.shard_util_v2.try_build_message(
+  subtest1 = api.shard_util.try_build_message(
       build_id=8945511751514863187,
       builder="subtest1",
       output_props={"test_orchestration_inputs_hash": "abc"},
@@ -506,12 +504,12 @@
       api.platform.name('linux'),
       api.properties(config_name='config_name'),
       api.monorepo.ci_build(),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
       ),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[subtest1],
           launch_step="launch tests.schedule",
           collect_step="collect tests",
@@ -539,7 +537,7 @@
           gclient_variables={'download_fuchsia_sdk': True}
       ),
       api.monorepo.ci_build(),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
@@ -567,7 +565,7 @@
           }
       ),
       api.monorepo.ci_build(),
-      api.shard_util_v2.child_build_steps(
+      api.shard_util.child_build_steps(
           subbuilds=[try_subbuild1],
           launch_step="launch builds.schedule",
           collect_step="collect builds",
diff --git a/recipes/engine_v2/tester_engine.py b/recipes/engine_v2/tester_engine.py
index 7c36544..2b7ff57 100644
--- a/recipes/engine_v2/tester_engine.py
+++ b/recipes/engine_v2/tester_engine.py
@@ -42,7 +42,7 @@
 tasks - is a list of dictionaries with the scripts to run in this test sub-build.
 
 
-This recipe will be called from the engine_v2/engine_v2 recipe using the shard_util_v2 module. The
+This recipe will be called from the engine_v2/engine_v2 recipe using the shard_util module. The
 test configuration is defined in the engine build configurations files as global tests.
 """
 import contextlib
diff --git a/recipes/release/release_builder.py b/recipes/release/release_builder.py
index 5b658bc..e5dc355 100644
--- a/recipes/release/release_builder.py
+++ b/recipes/release/release_builder.py
@@ -24,7 +24,7 @@
     'flutter/flutter_bcid',
     'flutter/os_utils',
     'flutter/repo_util',
-    'flutter/shard_util_v2',
+    'flutter/shard_util',
     'flutter/yaml',
     'recipe_engine/buildbucket',
     'recipe_engine/json',
@@ -111,16 +111,16 @@
   with api.step.nest('launch builds') as presentation:
     for target in ci_yaml.json.output['targets']:
       if ShouldRun(api, git_ref, target, release_branch, retry_override_list):
-        target = api.shard_util_v2.pre_process_properties(target)
+        target = api.shard_util.pre_process_properties(target)
         tasks.update(
-            api.shard_util_v2.schedule([
+            api.shard_util.schedule([
                 target,
             ],
-                                       presentation,
-                                       branch=release_branch)
+                                    presentation,
+                                    branch=release_branch)
         )
   with api.step.nest('collect builds') as presentation:
-    build_results = api.shard_util_v2.collect(tasks)
+    build_results = api.shard_util.collect(tasks)
 
   api.display_util.display_subbuilds(
       step_name='display builds',
@@ -130,7 +130,7 @@
 
 
 def GenTests(api):
-  try_subbuild1 = api.shard_util_v2.try_build_message(
+  try_subbuild1 = api.shard_util.try_build_message(
       build_id=8945511751514863186,
       builder="builder-subbuild1",
       output_props={"test_orchestration_inputs_hash": "abc"},
@@ -163,7 +163,7 @@
             build_number=123,
             git_ref='refs/heads/%s' % git_ref,
         ),
-        api.shard_util_v2.child_build_steps(
+        api.shard_util.child_build_steps(
             subbuilds=[try_subbuild1],
             launch_step="launch builds.schedule",
             collect_step="collect builds",