This major release is scheduled to be released next Tuesday on ~2023.5.9. This release contains breaking changes and will require action by app developers.
This version will require a binary upgrade to vere-v2.3 which will also be released later this week. After vere-v.2.3 has been released you can upgrade the binary by running the command /your-ship/.run next.
Zuse 413, Lull 324, Arvo 238
%base hash: 0v12.idbv2.hq7lf.6q9eo.3e5s7.qc943.9bie1.03d11.3q5eh.k73m8.kei88
OverviewThis release contains a few big-ticket items:
- Adds Fine, a remote scry protocol for performing scalable reads from other ships.
- Allows Gall agents to put data into the scry namespace, which can be read using Fine.
- Clay now uses Fine for distributing source code for public desks, including future kernel updates.
- Adds a %set-response task to Eyre to serve a static response to an HTTP request from an in-memory cache in Vere, greatly improving scalability of serving data over the web.
- Refactors JSON serialization and deserialization and adds jets, with a roughly 5x speedup.
- Adds support for noun-based channels in Eyre, so HTTP clients can communicate with either JSON or nouns.
Breaking Changes- Apps that use JSON will need to drop compatibility for 414 and older Kelvins by default. The old %json mark from 414 will not compile on 413, and this will not be caught at build time.
- Make sure the %json mark file in your app desk compiles on 413, and test your %json mark conversions to make sure they don't crash at runtime due to this change.
- The json (de)serialization interface changed and is only backwards-compatible at the outermost layer (+en-json, +de-json). apex:de-json:html, part of the JSON parser internals, isn't there any more.
- A number of arms and new tasks and gifts were added to Lull and Zuse.
- These should not cause any issues unless your app code was expecting something very specific, such as if you were doing metaprogramming on Lull or Zuse (e.g. Pyro).
- The %gall scry namespace has been changed:
- %gu, to check if an app is an running, has a new path format:
- old: .^(? %gu /=dojo=)
- new: .^(? %gu /=dojo=/$)
- Similar changes were made to all scries into Gall itself, but %gx scries into agents remain the same.
- If you want to scry into the new per-agent namespace that was added in 413k, it follows the new format:
- .^(* %gx /=pals=/$/my-pals)
- The $case:clay datatype was removed ($case still exists, and has a new %uv tag for hash addressing in addition to the other three).
- This affects lib/strandio, some threads, and anything user code that imported $case:clay.
Other Changes- Some bugfixes were made to Eyre's channel management.
- Improvements to +vats printing and performance.
- Fixes comment parsing after =* and +* runes.
- Adds an API to +vang to toggle doccord parsing on or off.
- Fixes a bug in Eyre that would show the login page when already logged in.
- Sets the default rift to 0 on fake ships, instead of 1.
- Adds "typed paths" to Hoon. A typed path can be constructed using a new #/foo/bar syntax.
What's ChangedFull Changelog: urbit-os-v2.138...urbit-os-v2.139-rc2