[ANNOUNCE] urbit-os-v2.139

Skip to first unread message

Pyry Kovanen

May 3, 2023, 12:00:00 PM5/3/23
to urbit-dev

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


This 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 Changed

Full Changelogurbit-os-v2.138...urbit-os-v2.139-rc2

Pyry Kovanen

May 9, 2023, 4:31:31 PM5/9/23
to urbit-dev
This release has been deployed and is propagating across the network.

%base hash (check with +vat %base): 0vf.j7ii7.mrsm8.on3l8.a37hc.ol5m6.qrquc.c6r21.h2084.7sgd6.sk5oa
Reply all
Reply to author
0 new messages