def METHOD_NAME(self):
    app_name = None
    modules = self.app.pargs.modules
    group_name = self.app.pargs.env_group_suffix
    env_names = []
    stages_version_labels = {}
    stages_env_names = {}
    top_dir = getcwd()
    for module in modules:
        if not path.isdir(path.join(top_dir, module)):
            io.log_error(strings['deploy.notadirectory'].replace('{module}', module))
            continue
        chdir(path.join(top_dir, module))
        if not group_name:
            group_name = commonops.get_current_branch_group_suffix()
        if group_name not in stages_version_labels.keys():
            stages_version_labels[group_name] = []
            stages_env_names[group_name] = []
        if not app_name:
            app_name = self.get_app_name()
        io.echo('--- Creating application version for module: {0} ---'.format(module))
        hooks.set_region(None)
        hooks.set_ssl(None)
        hooks.set_profile(None)
        if not app_name:
            app_name = self.get_app_name()
        process_app_version = fileoperations.env_yaml_exists()
        version_label = commonops.create_app_version(app_name, process=process_app_version)
        stages_version_labels[group_name].append(version_label)
        environment_name = fileoperations.get_env_name_from_env_yaml()
        if environment_name is not None:
            commonops.set_environment_for_current_branch(environment_name.
                                                         replace('+', '-{0}'.
                                                                 format(group_name)))
            env_name = commonops.get_current_branch_environment()
            stages_env_names[group_name].append(env_name)
            env_names.append(env_name)
        else:
            io.echo(strings['deploy.noenvname'].replace('{module}', module))
            stages_version_labels[group_name] = [
                v for v in stages_version_labels[group_name]
                if v != version_label
            ]
        chdir(top_dir)
    if len(stages_version_labels) > 0:
        for stage in stages_version_labels.keys():
            request_id = composeops.compose_no_events(app_name, stages_version_labels[stage],
                                                      group_name=stage)
            if request_id is None:
                io.log_error("Unable to compose modules.")
                return
            commonops.wait_for_compose_events(request_id, app_name, env_names, self.timeout)
    else:
        io.log_warning(strings['compose.novalidmodules'])