Upgrade from 1.29.0 to 1.30.0

Setting up the AMI Owner on AWS cluster

Previous version of the SDK have only partial support for changing the AMI owner. This version of the SDK supports them all by adding game_ami_owners and server_ami_owners for all types of sample clusters.

If you are using the variable ami_owner in previous AMI setup, you should now instead use the game_ami_owners which is a list. Basically, just replace:

ami_owner = "1234567890"

with:

game_ami_owners = ["1234567890"]

This is the same whether you are using the setup_ami or the minimal_setup_ami module. It also applies if you are using the submodule game/aws directly.

genvid.toolbox.SDK.update_archive() has been deprecated.

Instead, you can use genvid.toolbox.PackageArchiver.update_archive(). The code is almost identical:

archive = "path/to/package.zip"
packager = PackageArchiver()
chksum = packager.stable_checksum(archive)
packager.update_archive(archive,
                        name="package",
                        version="dev",
                        chksum=chksum,
                        destdir="destination/folder")

ProjectTool.LOGS is now deprecated

The attribute ProjectTool.LOGS is now deprecated. It has been moved to genvid.toolbox.ClusterTool, and was actually no longer used for setting the default logs. To access the default logs configuration, use genvid.toolbox.SDK.get_sdk_config() instead or the genvid.toolbox.LogsAPI.get_logs().

BastionTool.SETUP_LOGS has been removed

The attribute is no longer used and a copy exist under genvid.toolbox.ClusterTool. To get the list of all logs, used genvid.toolbox.LogsAPI.get_logs().

PackageFactory has been deprecated.

Instead, you can use genvid.toolbox.PackageArchiver. The code is almost identical:

from pathlib import Path

sources = Path("path/to/source")
archive = Path("path/to/package.zip")

packager = PackageArchiver()

# Use archive name relative to source path.
# For flatten, you can use PackageArchiver.flatten_path instead.
path2name = packager.relative_path(sources)

# Create the archive.
packager.make_archive(archive, sources.rglob("*.*"), path2name)

# Compute a checksum base on filename and content only.
chksum = packager.stable_checksum(archive)

# Update the archives in a destination folder.
packager.update_archive(archive,
                        name="package",
                        version="dev",
                        chksum=chksum,
                        destdir="export/folder")

Deprecated DockerPackage.

This class was a very straighforward wrapper around update_image(). You can use the original method directly instead.

Removed the Genvid Unity RESTCSharp API dependency with Newtonsoft.Json.dll.

Since version 2020.3.10f1, Unity has a dependency with Newtonsoft.Json.dll. The Genvid Unity RESTCSharp API also had a dependency with Newtonsoft.Json.dll. The Newtonsoft.Json.dll dependency was removed and the Genvid Unity RESTSharp API is now totally agnostic about the serialization and deserialization part. The source file Assets/Genvid/Editor/Scripts/GenvidWindow.cs has been updated to use the Unity JsonUtility library for serializing and deserialing. As a result, the Newtonsoft.Json.dll library in the Genvid Editor Unity package has been removed.