Version Control System

The wildcloud platform introduces a way to manage the shared code for all tenants (websites) in a centralized way. The way this is done is through Versions.

Versions are the context in which a tenant is ran. It is also a WordPress website by it self. It is like the master site that contains all plugins, themes and language files that the tenants need in order to run. 

When you create a version the version's WordPress website, also called the Version Editor (or Snapshot editor) is created, and a multi-tenant environment is created. When you add, change or remove a plugin, theme or language files and deploy these changes to the multi-tenant environment, the plugins, themes and language files of this multi-tenant environment will be updated.

Every tenant runs on a version's multi-tenant environment. So if this environment is changed, the code of all tenants running on that version is changed.

This doesn't allow for version control yet, but the wildcloud infrastructure is made so that it is easy to change the multi-tenant environment the tenant runs on. Or in different words: tenants can be moved from one version to another version. When the infrastructure is updated to reflect this change, the tenant runs on another multi-tenant environment.

In practice this means that if you want to update a plugin, but are not sure whether this will break the 30 tenants that you run, you can simply create a new version, move one tenant, test it out. If it breaks, there's work to do. If not, then we can safely assume that the rest of the tenants won't break either. So we can move them in bulk, and have safely updated our plugin.