| uip | 0108 |
|---|---|
| title | `%yard`: A Developer Commons |
| description | A standard desk distributing developer tools not justified in `%base`. |
| author | ~lagrev-nocfep |
| status | Shipped |
| type | Standards Track |
| category | Kernel |
| created | 2023-07-24 |
Urbit needs a standard distribution which contains common tools and services for developers. %base is reserved for Arvo and its immediate agents, and there is a justified resistance to growing it unnecessarily. However, we should support common userspace tools—libraries, marks, and agents—as official parts of the Urbit ecosystem.
The proposed desk, %yard, will serve as a developer commons to collect the elements that programmers and app developers on Urbit need as basic tools. The components of such a desk will be drawn mainly from existing well-vetted apps and libraries.
After the core architecture meeting on ~2023.7.31, the decision was made to field %yard as a standalone desk first until it matures.
That is now available at urbit/yard.
Urbit needs a standard distribution which contains common tools and services. The two standard desks for interoperability do not seem to be good candidates for this based on their current intent:
%baseis reserved for Arvo and its immediate agents, and there is a justified resistance to growing it unnecessarily.%garden/%landscapecontain support for Tlon-oriented services, such as the notifications system and S3 storage.
However, we should continue to support some common userspace tools—libraries, marks, and agents—as official parts of the Urbit ecosystem.
This proposal suggests creating a new desk, %yard, to collect the elements that developers on Urbit need as basic common tools.
Some rules of thumb for inclusion in %yard:
- Tools should not replicate (core, standard distribution) functionality unnecessarily, although a case can be made for unification or mirroring.
- Since inclusion in such a desk implies a commitment to maintenance, we prefer to include tools that already fall within the Urbit Foundation's purview.
- No kelvin decrement should be necessary, and Zuse and the rest of the standard library will not be affected. (It is worth noting that
%yardwill provide a way of gently introducing userspace tools en route to%base, however.)
The initial version of %yard is available at #6691.
We propose the following inclusions in the initial distribution:
/appglobal-store.hoon(requires some finish but is close to ready)but yes todocs.hoon? (What would be the ramification of distributing%docsthis way?)docs/dev-deskmaterial
/gen../base/dbug.hoon- John JSON reparser tools
/lib- copies of necessary
%baselibraries likeagentioandskeleton ../landscape/docket.hoonetch.hoon(modified to not need Uqbar Ziggurat tools)etui.hoon(~paldev TUI library)regex.hoon(ready)rudder.hoon(ready)schooner.hoon(modified for more MIME types)
- copies of necessary
/mar- copies of most
%basemarks (linked) - copies of many
%landscapemarks (linked; particularly so Treaty/Docket works out of the box) csv.hoon,tsv.hoon- graphic stuff:
tiff,jpg,jpeg,gif,webp - audio stuff:
wav,mp3,ogg,flac - movie stuff:
avi,mp4,mov,ogv,webm - font stuff:
otf,ttf,woff
- copies of most
/sur../landscape/docket.hoon
/tednaive-csv.hoonfrom%base
/tests- appropriate tests for many or all of these
%yard is not subject to kelvin versioning, but a kelvin burn may be affected in two cases:
- Some non-core functionality of Urbit which is currently in
%basecan be moved to%yard; this includes useful but not system-critical marks and libraries. %yardcan support jets, which may entail runtime changes and kelvin decrements.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.
TBD
Although %yard is a new addition, it may subsume some non-core functionality which is currently in %base. This includes useful but not system-critical marks and libraries.
Backwards compatibility is only affected inasmuch as developers are using these originating from %base if they are retired.
The initial version of %yard is available at #6691.
Needs discussion.
Copyright and related rights waived via CC0.