~

Roadmap

Increase Release Frequency

Summary

Increasing the speed of releases is the core dev team's highest priority, since it will accelerate the pace of development overall.

We will make a number of changes to the kernel and runtime for this purpose. Also, the Urbit Foundation and Tlon are both expanding their core dev teams.

The first step is to make the upgrade process itself more reliable. The "agents in Clay" project, slated for the next release as November 2022, rewrites the kernel's upgrade system in a much simpler way, making it easier to reason about and less fragile.

Backward compatibility for apps will also increase release frequency for the kernel, so that is being worked on already. See the backward compatibility section for more detail. A related project is to automate runtime upgrades to lessen the maintenance burden runtime releases impose on users.

Later work will likely involve building more extensive testing and telemetry tools to expedite the quality assurance phase of releases.

In addition to raw numbers, core dev needs to become more of a traditional open-source project than it has been so far. This means we need better reference documentation, guides, training, roadmaps, and specifications, especially targeted toward intermediate and advanced developers -- Hoon School has been bringing in a large number of such developers, some of whom should be brought into core development. Publishing this roadmap represents the core team's first major step toward developing in public, which we plan to increase dramatically.

The architecture of the system will be examined critically to evaluate points where boundaries can be drawn between subsystems to facilitate their independent development. Splitting out I/O drivers and event log persistence into their own Unix processes is an example of this kind of thinking.

Also important for scaling the team is the quality of the testing and release processes. Tlon has made major strides in the release process this year: their "devstream process" for phased deployment has caught many bugs that would have hit users in previous years. More automated tests (unit tests, integration tests, and end-to-end "aqua" tests that simulate a fleet of virtual ships inside the Aqua agent) will increase the level of assurance of each deployment, reducing risk and increasing confidence when making a change.

Projects

Completed

Agents in Clay

This project overhauls Arvo's upgrade system to make it simpler and more reliable. Since it moves the locus of control of agents from Gall to Clay, it's often referred to as the "Agents in Clay" project.

Completed

Improve Vere Build System

start date

2022-11-01

Experiments are being conducted to extract Vere from the monorepo into its own git repository and replace the current Nix build setup with a new one based on the Bazel build system.

Future

Automatic Binary Upgrades

duration

TBD

owner

TBD

Arvo updates itself over the air, but current Vere does not. We should let the binary update itself by downloading a new version and replacing itself with that, instead of forcing the user to run terminal commands to stay up to date.

Future

Logging

duration

TBD

owner

TBD

Adding a basic logging system to Urbit (probably logging to files as a first step, or maybe syslog) would reduce hosting costs, improve release cycle times, and reduce the amount of time it takes devs to debug live ships.

Future

Shims for Userspace Code Over Old Kelvins

duration

2 Months

As it stands, every Kelvin change breaks backward compatibility, requiring app devs to publish modified code so their users can keep the app running. This needs to happen less frequently over time, until eventually apps can be "write once, run forever."