uip | title | description | author | status | type | category | created |
---|---|---|---|---|---|---|---|
0108 |
`%yard`: A Developer Commons |
A standard desk distributing developer tools not justified in `%base`. |
~lagrev-nocfep |
Draft |
Standards Track |
Kernel |
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:
%base
is reserved for Arvo and its immediate agents, and there is a justified resistance to growing it unnecessarily.%garden
/%landscape
contain 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
%yard
will 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:
/app
global-store.hoon
(requires some finish but is close to ready)but yes todocs.hoon
? (What would be the ramification of distributing%docs
this way?)docs/dev-desk
material
/gen
../base/dbug.hoon
- John JSON reparser tools
/lib
- copies of necessary
%base
libraries likeagentio
andskeleton
../landscape/docket.hoon
etch.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
%base
marks (linked) - copies of many
%landscape
marks (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
/ted
naive-csv.hoon
from%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
%base
can be moved to%yard
; this includes useful but not system-critical marks and libraries. %yard
can 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.