def _create_new_version_artifacts()

in sagemaker_image_builder/main.py [0:0]


def _create_new_version_artifacts(args):
    with open(args.image_config_file) as jsonfile:
        image_config = json.load(jsonfile)
    runtime_version_upgrade_type = args.runtime_version_upgrade_type

    if runtime_version_upgrade_type == _PATCH:
        runtime_version_upgrade_func = "bump_patch"
    elif runtime_version_upgrade_type == _MINOR:
        runtime_version_upgrade_func = "bump_minor"
    elif runtime_version_upgrade_type == _MAJOR:
        runtime_version_upgrade_func = "bump_major"
    else:
        raise Exception()

    base_patch_version = get_semver(args.base_patch_version)
    if base_patch_version.prerelease and args.pre_release_identifier:
        # We support creating new patch/major/minor versions from a pre-release version.
        # But We don't support passing the pre_release_identifier parameter while creating a new
        # patch/major/minor versions from the pre-release version.
        raise Exception()
    next_version = _get_next_version(base_patch_version, runtime_version_upgrade_func)

    if args.pre_release_identifier:
        next_version = next_version.replace(prerelease=args.pre_release_identifier)

    base_version_dir = get_dir_for_version(base_patch_version)
    new_version_dir = create_and_get_semver_dir(next_version, image_config, args.force)

    for image_generator_config in image_config:
        _create_new_version_conda_specs(
            base_version_dir, new_version_dir, runtime_version_upgrade_type, image_generator_config
        )

    _copy_static_files(base_version_dir, new_version_dir, str(next_version.major), runtime_version_upgrade_type)
    with open(f"{new_version_dir}/source-version.txt", "w") as f:
        f.write(args.base_patch_version)