Urbit OS has an upcoming kelvin release. Here's what you need to know.
This release decrements the Zuse kelvin to 417 and the Lull kelvin to 328.
All app developers must update their apps to declare compatibility with Zuse 417.
Does this affect me?
If you make an Urbit application then yes, this affects you.
What’s the timeline?
November 30, 2022: The release is available to app developers so they can update their apps.
December 6, 2022: The release is publicly available.
First make sure you're on the latest runtime version (1.13) if you aren't already.
Note: If .run next doesn’t work, you may be on a very old binary version. More information here.
Apps that do not declare compatibility with Zuse 417 will block the upgrade for their users, who may decide to suspend the app to allow the upgrade to go through.
We recommend updating to the new kelvin version first on a separate moon. Once you've verified everything works, repeat the process on your distribution ship.
Set your moon/ship to sync the prerelease with |ota ~doznec-dozzod-marzod
Apply the update by suspending your apps, you will receive a notification to approve the suspension on the apps home page.
Verify you've upgraded to 417 (check with +vat %base)
Declare compatibility with 417 in your app by changing its sys.kelvin.
Revive the desk (from the home page or with `|revive %your-app`)
If it fails to compile, fix the issues.
Once it does compile, test the app
Make your changes public on your distribution ship.
What are the breaking changes?
Most developers will only need to update their app compatibility to 417 in their sys.kelvin as described in the steps above, but there are a few breaking changes to be aware of in case you hit them:
If an agent is already running, a different desk cannot try to run it as well. That commit will fail.
Subscriptions to hood's /kiln/vats will no longer work, and neither will the associated scries. Instead, you should subscribe (or scry) for `tire` from clay (to determine desk liveness), or scry for `sources` from kiln (to determine sync state from foreign ships).
For more information, review the full release notes.
What if I still need to release stuff to the old version?
If you need to push out an update to users who are still on 418 (for example, during the period before 417 has been broadly released), you can do so by making a commit that has sys.kelvin for your app set to 418. It's safe to switch back and forth between versions while distributing your app. Note that you cannot switch back and forth kelvin versions for %base.