/UIPs

Urbit Improvement Proposals

Creative Commons Zero v1.0 UniversalCC0-1.0

Urbit Improvement Proposals (UIPs)

The goals of the UIP project are to:

  • Make core development decision-making visible and open to entry.
  • Standardize and provide high-quality documentation for Urbit itself and conventions built upon it.

This repository tracks past and ongoing improvements to Urbit in the form of Urbit Improvement Proposals (UIPs). UIP-0001 governs how UIPs are published.

UIPs can be divided into the following categories:

  • Standards Track UIPs are improvements to Urbit that require a Kelvin version decrement to any of the following components: the machine code specification, Nock; the programming language and its standard library, Hoon; the kernel, kernel modules, its standard library, or the base distribution — Arvo, vanes, zuse or %base, respectively.
  • Informational UIPs describe an Urbit design issue, or provide general guidelines or information to the Urbit community, but do not propose new features. Informational UIPs do not necessarily represent an Urbit community consensus or recommendation, so users and implementors are free to ignore Informational UIPs or follow their advice.
  • Process UIPs describe a process surrounding Urbit, or proposes a change to (or an event in) a process. Process UIPs are like Standards Track UIPs but apply to areas other than Urbit itself. They may propose an implementation, but not to Urbit's codebase; they often require community consensus; unlike Informational UIPs, they are more than recommendations, and users are typically not free to ignore them. Examples include procedures, guidelines, changes to the decision-making process, and changes to the tools or environment used in Urbit development. Any meta-UIP is also considered a Process UIP.

UIP

Number Title Owner Status Type
0001 Purpose and Guidelines ~wolref-podlex Living Process
0100 Sticky Scry ~rovnys-ricfer Draft Standards
0101 %lick ~mopfel-winrux Final Standards
0102 Symmetric Routing ~rovnys-ricfer Withdrawn Standards
0103 Persistent Nock Caching ~rovnys-ricfer Last Call Standards
0104 Scry Store ~rovnys-ricfer Withdrawn Standards
0105 Drop Pokes to Dead Agents ~rovnys-ricfer Final Standards
0106 Scry over HTTP ~watter-parter Last Call Standards
0107 Auras Renovation ~ponmep-litsem Draft Standards
0108 %yard ~lagrev-nocfep Draft Standards
0109 Essential Desks ~wicdev-wisryt Last Call Standards
0110 Gall Agent Backups ~midden-fabler, ~mopfel-winrux Last Call Standards
0111 Desk Publisher Switcher ~tinnus-napbus Last Call Standards
0112 Informal Ping ~master-morzod, ~norsyr-torryn Draft Standards
0113 %ames: Directed Messaging ~master-morzod Draft Standards
0114 OTA Approval ~tinnus-napbus Review Standards
0115 Breadth-First Arvo ~wicdev-wicryt, ~rovnys-ricfer Draft Standards
0116 Arvo Ticks ~wicdev-wicryt, ~rovnys-ricfer Draft Standards
0117 Ulam: Self-Describing Nouns ~rovnys-ricfer Draft Standards

Background

Urbit has been in development for over a decade at time of writing, and until June of 2023 was developed without the use of this UIP process. New UIPs after UIP-0001 will begin their numbering at UIP-0100 to leave room for retroactive improvements that should have canonical documentation for reference.