Upgrade Instructions¶
Upgrading the Genvid SDK from one version to another may include some manual steps. This page includes any steps required to update to version 1.19.1 from the last version. If you’re upgrading an older version of the SDK, start with any special upgrade instructions for your version found here.
Upgrading the local installation¶
To set up the new SDK locally:
- Install the new SDK.
- Run the script
install-toolbox.py
from the new SDK. - Run
genvid-bastion reinstall --reconfigure -b mybastion -uml
to update your bastion.
Updating your broadcast website¶
If you used code from the samples we provide in your own project, note that we recently enforced a best practice concerning service discovery using consul in those samples. You should check again the samples and update your project accordingly. We invite you to use the consul health api instead of the catalog api to fetch the url of your services, since it is more likely that the url will point to a healthy service.
Updating your game¶
To update your game without applying new features, just
replace the old genvid.dll
from the previous SDK with the one
from the new SDK. The old plugins and integration should work as-is,
with the exception of the specific upgrade instructions below.
Attention
Always follow the full upgrade path for the Genvid SDK version you’re using. For example: If you’re upgrading from version 1.6.0 to 1.10.0, start by upgrading from 1.6.0 to 1.7.0 then continue with each version.
See the full list of upgrade instructions for your specific version.
Warning
Genvid SDK 1.14.0 contains a new version of Consul. This new version requires special care to upgrade from the previous version. If you still need to upgrade to 1.14.0, please follow the instructions under Upgrade Bastion before upgrading from 1.13.0 to 1.14.0.
Note
If you haven’t upgraded to 1.15.1, you can upgrade directly from 1.15.0 to 1.16.0 without upgrading to 1.15.1 first. However, you should review the 1.15.1 release notes and upgrade notes for important information about the changes.
Upgrade the Javascript API¶
You should also upgrade the Genvid JavaScript API on your website.
Upgrading your cluster¶
We strongly recommend keeping your old clusters as-is and creating a new one for the update.
To create a new cluster, follow the standard instructions:
- Set up a new wingame AMI that matches the new version.
- Create new clusters.
Once you have replaced all your clusters, you can remove the old SDK repositories from the Modules Section page.
Upgrading an existing cluster¶
Warning
Upgrading your cluster can replace all your instances and even erase your current configuration. We recommend not upgrading a live cluster. If you do, carefully check the changes before applying the plan.
You can update the module used to build your cluster by clicking on Modify/Reimport Module in the module section of your cluster infrastructure, then select the module new version and import it. Finally, click apply in the Terraform section.
Note
Some changes can take time to propagate to AWS. This is especially true for IAM roles and policies, which could then create some conflicts when recreated. Re-applying the Terraform plan should fix the problem.
Upgrade from 1.18.0 to 1.19.0¶
toolbox
has been replaced with toolbox_url
¶
We replaced the toolbox
variable with toolbox_url
in our Terraform
modules. The new variable is now a URL that must be accessible by the created
servers. In addition to all URLs supported by
pip install,
it also supports URLs in the form of s3://bucket/path
.
genvid.toolbox.NetworkTool.get_external_ip
no longer support ipgetter
¶
ipgetter
has been removed from the PyPI Repository and so we have removed
its support in the genvid.toolbox.NetworkTool
. If you were setting the
CHECKIP_URL
to None
, this option is no longer available. You can either
leave it to its default valut of https://checkip.amazonaws.com
or set it to
other URL, like https://api.ipify.org/
if you prefer. The GENVID_CHECKIP_URL
environment variable can now also be used to change the default value.
Improved Engine¶
Creating streams¶
We recommend creating the stream like this:
// We need a name to identify the stream.
const char *pSomeStreamName = "SomeStreamName";
// Create an entry for a stream.
Genvid_CreateStream(pSomeStreamName);
// Set all the stream's parameters.
Genvid_SetParameter[DataType](pSomeStreamName,...);
Genvid_SetParameter[DataType](pSomeStreamName,...);
Genvid_SetParameter[DataType](pSomeStreamName,...);
// At this point the first call to Genvid_Submit[DataType]
// should have all the necessary information to
// create the stream.
A new version stream only holds one type of data. For example once a stream is created as a video stream it is setup to handle video data and assumes that video data will be provided. Providing a type of data that a stream was not created to handle is undefined behavior.
Data submission¶
This new version smooths out data submission using time slots. It defines these slots when a stream is created then adheres strictly to them. If data is submitted faster than it was supposed to be, a GenvidStatus_InvalidState error is returned. If the data is not submitted as often as it was supposed to be, the last data submitted is sent again. If it’s an audio stream, silence is sent in place of the original audio.
Upgrading from older versions¶
Note
If there aren’t specific instructions listed for a version, then there aren’t any special steps for upgrading that version.
- Upgrade from 1.0.0 to 1.1.0
- Upgrade from 1.2.0 to 1.3.0
- Upgrade from 1.3.0 to 1.4.0
- Upgrade from 1.6.0 to 1.7.0
- Upgrade from 1.7.0 to 1.8.0
- Upgrade from 1.8.0 to 1.9.0
- Upgrade from 1.9.0 to 1.10.0
- Upgrade from 1.11.0 to 1.12.0
- Upgrade from 1.12.0 to 1.13.0
- Upgrade from 1.13.0 to 1.14.0
- Upgrade from 1.15.0 to 1.15.1
- Upgrade from 1.16.0 to 1.17.0
- Upgrade from 1.17.0 to 1.18.0
- Upgrade from 1.18.0 to 1.19.0