def METHOD_NAME(self) -> List[str]:
    # It's possible that this workspace wasn't initialized to be used with
    # catkin-tools, so initialize it first. Note that this is a noop if it
    # was already initialized
    commands = ["catkin init"]
    # Overwrite the default catkin profile to ensure builds
    # aren't affected by profile changes
    commands.append("catkin profile add -f default")
    # Use catkin config to set configurations for the snap build
    catkin_config_command = [
        "catkin",
        "config",
        "--profile",
        "default",
        "--install",
        "--source-space",
        '"${SNAPCRAFT_PART_SRC_WORK}"',
        "--build-space",
        '"${SNAPCRAFT_PART_BUILD}"',
        "--install-space",
        '"${SNAPCRAFT_PART_INSTALL}/opt/ros/${ROS_DISTRO}"',
    ]
    if self.options.catkin_tools_cmake_args:
        catkin_config_command.extend(
            ["--cmake-args", *self.options.catkin_tools_cmake_args]
        )
    commands.append(" ".join(catkin_config_command))
    # Now actually build the package
    catkin_command = [
        "catkin",
        "build",
        "--no-notify",
        "--profile",
        "default",
        "-j",
        '"${SNAPCRAFT_PARALLEL_BUILD_COUNT}"',
    ]
    if self.options.catkin_tools_packages:
        catkin_command.extend(self.options.catkin_tools_packages)
    commands.append(" ".join(catkin_command))
    return commands