CloudExpression major update
CloudExpression project is being completely reworked. The Wolfram Language functionality mostly remains the same, but the server side implementation is totally changed. The old system will keep on working for some Cloud releases, but as a deprecated service, and, ultimately, it will be discontinued.
The new implementation will be deployed fairly soon, it's scheduled for the 1.60 Wolfram Public Cloud release. It involves an update of both the cloud servers and the CloudExpression paclet.
This post intends to explain what will happen during the update, lists the possible caveats and the tools we will provide to make the transition as smooth as possible.
The CloudExpression Paclet
The legacy paclet v0.1.0
The legacy paclet v0.1.0
shipped with Mathematica 12.3, will keep on working with old cloud expressions, even after the cloud update. It will not work with the cloud expressions created with the new version of the paclet.
The new paclet v1.0.0
The new paclet v1.0.0
will be available on our public paclet server right after the cloud release containing the cloud expression rework. It may auto-update or one can manually trigger the update using: PacletUpdate["CloudExpression"]
.
This version only works with new cloud expressions, but provides tools to migration old cloud expressions.
Migration
The new paclet provides some utility functions to help transition from the old system to the new one. These are available in the CloudExpression context. To access them, one needs to call: Needs["CloudExpression`"];
MigrateLegacyCloudExpression
This is the main function, it takes a legacy cloud expression and migrates its value. The operation is transparent, it's an in-place update. This function should be applied once per legacy cloud expression as in:
MigrateLegacyCloudExpression[CloudExpression["my/legacy/cloudexpression"]]
Note: anonymous cloud expressions are not migrated in place, instead a new anonymous cloud expression is created. The function returns a success object specifying the new UUID.
LegacyCloudExpressions
Returns a list of all the legacy cloud expressions. It's the counterpart of CloudExpressions[]
for legacy objects.
Conveniently migrate all named cloud expressions: Map[ MigrateLegacyCloudExpression, LegacyCloudExpressions[] ]
LegacyGetCloudExpression
Returns the entire expression stored in a legacy cloud expression. This utility function can be used to retrieve the value of an old cloud expression, after the paclet has been updated, and without the need to downgrade to version 0.1.0
.
Note that when using the new paclet, operations on old cloud expressions are restricted to only a sub-set of functionalities. Those required to migrate cloud expressions. The full feature set is only available in the old version 0.1.0
.
LegacyGetPartProtection
Returns the PartProtection
status of a given legacy cloud expression.
Servers update
As soon as the servers are updated, the new version of the CloudExpression paclet will run on cloud kernels. It means that deployed code will cease to work until a migration is performed.
Users running the old paclet (i.e. version 0.1.0
shipped in Mathematica 12.3) will still be able to work on old cloud expressions as before.
We'll use this post to centralize updates about the project. Specifically, we'll post a message when the cloud runs the new version, and one when the new paclet is available which is expected to be right after the cloud update is complete.
Best regards, Dorian Birraux.