mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-18 20:31:40 +03:00
Merge branch 'develop' into fix-host-scry
This commit is contained in:
commit
3ec1172c5b
10
.github/ISSUE_TEMPLATE/blank-issue.md
vendored
Normal file
10
.github/ISSUE_TEMPLATE/blank-issue.md
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
name: Blank Issue
|
||||
about: Other
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
|
4
.github/ISSUE_TEMPLATE/config.yml
vendored
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,8 +1,8 @@
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Submit a Landscape issue
|
||||
url: https://github.com/urbit/landscape/issues/new/choose
|
||||
about: Issues with Landscape (Tlon's flagship client) should be filed at urbit/landscape. This includes groups, chats, collections, notebooks, and more.
|
||||
url: https://github.com/tloncorp/landscape-apps/issues/new/choose
|
||||
about: Issues with Landscape should be filed at tloncorp/landscape-apps. This includes Groups, Talk, and Landscape proper.
|
||||
- name: urbit-dev mailing list
|
||||
url: https://groups.google.com/a/urbit.org/g/dev
|
||||
about: Developer questions and discussions also take place on the urbit-dev mailing list.
|
||||
|
@ -119,3 +119,40 @@ following command:
|
||||
```
|
||||
git push origin <tagname>
|
||||
```
|
||||
|
||||
## Releases
|
||||
|
||||
- [ ] Create a pull request from the relevant release branch to `master`.
|
||||
- [ ] ssh into `~zod`
|
||||
- [ ] Check to ensure that nobody else is ssh'd into `~zod`, by running `screen -ls` and verifying no sessions are attached.
|
||||
- [ ] Attach to the screen session using `screen -x`
|
||||
- [ ] Install the contents of the `%kids` desk on `~marnec-dozzod-marzod` into our `%base`: `|merge %base ~marnec-dozzod-marzod %kids, =gem %only-that`
|
||||
- [ ] Check that `~zod` has updated to the latest release. For a Kelvin release, you can run `zuse` in the Dojo. Each non-Kelvin release might its own way of checking whether the update has completed, possibly through checking the `%cz` hash of the `%base` desk matches the hash on `~marnec-dozzod-marzod` by comparing the outputs of `+vat %base` on both ships.
|
||||
- [ ] Merge `~zod`'s `%base` desk into its `%kids` desk to distribute the new code to the network: `|merge %kids our %base, =gem %only-that`
|
||||
- [ ] Before exiting the screen session on `~zod`, make sure the screen session is not left in copy mode for a long period of time, since that will disrupt `~zod`'s operation.
|
||||
|
||||
### Release Communications
|
||||
|
||||
- [ ] Tag the commit that went onto the live network as a release, using GitHub's "Releases" interface. See the "Tagging" section of this document for details.
|
||||
- [ ] Email the urbit-dev mailing list with an "[ANNOUNCE]" prefix in the email subject. See previous release emails for reference.
|
||||
- [ ] Tweet from the `@zodisok` Twitter account linking to the GitHub release.
|
||||
- [ ] Post links to the release in the Urbit Community Development channel and a channel in the UF public group.
|
||||
|
||||
### Post-Release Git Cleanup
|
||||
|
||||
- [ ] Merge `master` back into `develop`.
|
||||
- [ ] Cut a new release branch from `develop`. The branch should have the format `release/urbit-os-vX.XX`
|
||||
|
||||
### Post-Release Checks
|
||||
- [ ] Check that `~marzod` and other distribution stars are receiving the update by running `|ames-sift ~zod` and `|ames-verb %rcv %ges`. You should see lots of packets from `~zod`. Once you have confirmed packets are flowing, run `|ames-sift` and `|ames-verb` with no arguments to reset the verbosity state.
|
||||
- [ ] Check that planets are receiving the update. They should start updating within an hour or so.
|
||||
- [ ] Monitor the Urbit Community Help channel, UF public group channels, and Twitter to make
|
||||
|
||||
### Post-Release Artifacts
|
||||
After waiting at least 24 hours after the release to the network, make and distribute a pill.
|
||||
- [ ] Find a ship on the network (for now, use `~halbex-palheb`, which runs the UF public group) whose sources for `%base` and the standard app desks are mainline, not devstream.
|
||||
- [ ] Ensure the `%cz` hashes of all desks match those on the distribution ships.
|
||||
- [ ] Make a pill by running `.multi-vX-XX/pill +solid %base %garden %webterm %landscape %groups %talk` (replacing `X-XX` with the appropriate version numbers, in this and later steps).
|
||||
- [ ] Boot a fakezod off that pill to make sure the pill is viable.
|
||||
- [ ] Upload the pill to `bootstrap.urbit.org` using the Google Cloud SDK by running: `gsutil cp /path/to/pier/.urb/put/multi-vX-XX.pill gs://bootstrap.urbit.org/urbit-vX.XX.pill` -- note that it should be `vX.XX`, not `vX-XX` as in the original pill filename.
|
||||
- [ ] Boot a ship with the latest binary and check that it downloads the pill from `https://bootstrap.urbit.org/urbit-vX.XX.pill` where you just uploaded it.
|
||||
|
@ -6,9 +6,15 @@
|
||||
:- %tang
|
||||
%- flop ^- tang
|
||||
=/ pax=path /(scot %p p.bec)/[desk]/(scot %da now)
|
||||
=+ .^([lal=@tas num=@ud] cx+(weld pax /sys/kelvin))
|
||||
=/ welt=(list [@tas @ud])
|
||||
=+ .^(=waft:clay cx+(weld pax /sys/kelvin))
|
||||
%+ sort ~(tap in (waft-to-wefts:clay waft))
|
||||
|= [a=weft b=weft]
|
||||
?: =(lal.a lal.b)
|
||||
(lte num.a num.b)
|
||||
(lte lal.a lal.b)
|
||||
:~ '/sys/kelvin:'
|
||||
leaf/"[{<lal>} {<num>}]"
|
||||
(sell !>(welt))
|
||||
'/desk/bill:'
|
||||
(sell !>(.^((list dude:gall) cx+(weld pax /desk/bill))))
|
||||
==
|
||||
|
@ -436,7 +436,7 @@
|
||||
+$ address @uxaddress
|
||||
:: $verb: verbosity flag for ames
|
||||
::
|
||||
+$ verb ?(%snd %rcv %odd %msg %ges %for %rot)
|
||||
+$ verb ?(%snd %rcv %odd %msg %ges %for %rot %kay)
|
||||
:: $blob: raw atom to or from unix, representing a packet
|
||||
::
|
||||
+$ blob @uxblob
|
||||
@ -886,6 +886,17 @@
|
||||
+$ norm (axal ?) :: tombstone policy
|
||||
+$ open $-(path vase) :: get prelude
|
||||
+$ page ^page :: export for compat
|
||||
+$ pour :: ford build w/content
|
||||
$% [%file =path]
|
||||
[%nave =mark]
|
||||
[%dais =mark]
|
||||
[%cast =mars]
|
||||
[%tube =mars]
|
||||
:: leafs
|
||||
::
|
||||
[%vale =path =lobe]
|
||||
[%arch =path =(map path lobe)]
|
||||
==
|
||||
+$ rang :: repository
|
||||
$: hut=(map tako yaki) :: changes
|
||||
lat=(map lobe page) :: data
|
||||
@ -920,6 +931,13 @@
|
||||
+$ rule [mod=?(%black %white) who=(set whom)] :: node permission
|
||||
+$ rump [p=care q=case r=@tas s=path] :: relative path
|
||||
+$ saba [p=ship q=@tas r=moar s=dome] :: patch+merge
|
||||
+$ soak :: ford result
|
||||
$% [%cage =cage]
|
||||
[%vase =vase]
|
||||
[%arch dir=(map @ta vase)]
|
||||
[%dais =dais]
|
||||
[%tube =tube]
|
||||
==
|
||||
+$ soba (list [p=path q=miso]) :: delta
|
||||
+$ suba (list [p=path q=misu]) :: delta
|
||||
+$ tako @uvI :: yaki ref
|
||||
@ -1059,6 +1077,31 @@
|
||||
%^ cat 7 (sham [%yaki (roll p add) q t])
|
||||
(sham [%tako (roll p add) q t])
|
||||
[p q has t]
|
||||
::
|
||||
:: $leak: ford cache key
|
||||
::
|
||||
:: This includes all build inputs, including transitive dependencies,
|
||||
:: recursively.
|
||||
::
|
||||
+$ leak
|
||||
$~ [*pour ~]
|
||||
$: =pour
|
||||
deps=(set leak)
|
||||
==
|
||||
::
|
||||
:: $flow: global ford cache
|
||||
::
|
||||
:: Refcount includes references from other items in the cache, and
|
||||
:: from spills in each desk
|
||||
::
|
||||
:: This is optimized for minimizing the number of rebuilds, and given
|
||||
:: that, minimizing the amount of memory used. It is relatively slow
|
||||
:: to lookup, because generating a cache key can be fairly slow (for
|
||||
:: files, it requires parsing; for tubes, it even requires building
|
||||
:: the marks).
|
||||
::
|
||||
+$ flow (map leak [refs=@ud =soak])
|
||||
::
|
||||
:: $pile: preprocessed hoon source file
|
||||
::
|
||||
:: /- sur-file :: surface imports from /sur
|
||||
|
@ -102,6 +102,7 @@
|
||||
ges=`?`%.n :: congestion control
|
||||
for=`?`%.n :: packet forwarding
|
||||
rot=`?`%.n :: routing attempts
|
||||
kay=`?`%.n :: is ok/not responding
|
||||
==
|
||||
=>
|
||||
~% %ames ..part ~
|
||||
@ -121,14 +122,14 @@
|
||||
:: +qos-update-text: notice text for if connection state changes
|
||||
::
|
||||
++ qos-update-text
|
||||
|= [=ship old=qos new=qos]
|
||||
|= [=ship old=qos new=qos k=? ships=(set ship)]
|
||||
^- (unit tape)
|
||||
::
|
||||
?+ [-.old -.new] ~
|
||||
[%unborn %live] `"; {(scow %p ship)} is your neighbor"
|
||||
[%dead %live] `"; {(scow %p ship)} is ok"
|
||||
[%live %dead] `"; {(scow %p ship)} not responding still trying"
|
||||
[%unborn %dead] `"; {(scow %p ship)} not responding still trying"
|
||||
[%dead %live] ((trace k ship ships |.("is ok")) ~)
|
||||
[%live %dead] ((trace k ship ships |.("not responding still trying")) ~)
|
||||
[%unborn %dead] ((trace k ship ships |.("not responding still trying")) ~)
|
||||
[%live %unborn] `"; {(scow %p ship)} has sunk"
|
||||
[%dead %unborn] `"; {(scow %p ship)} has sunk"
|
||||
==
|
||||
@ -627,7 +628,7 @@
|
||||
=unix=duct
|
||||
=life
|
||||
crypto-core=acru:ames
|
||||
=bug
|
||||
bug=bug-9
|
||||
==
|
||||
::
|
||||
+$ ship-state-4 ship-state-5
|
||||
@ -656,7 +657,7 @@
|
||||
=unix=duct
|
||||
=life
|
||||
crypto-core=acru:ames
|
||||
=bug
|
||||
bug=bug-9
|
||||
==
|
||||
::
|
||||
+$ ship-state-6
|
||||
@ -685,7 +686,7 @@
|
||||
=unix=duct
|
||||
=life
|
||||
crypto-core=acru:ames
|
||||
=bug
|
||||
bug=bug-9
|
||||
==
|
||||
::
|
||||
+$ ames-state-8
|
||||
@ -693,11 +694,25 @@
|
||||
=unix=duct
|
||||
=life
|
||||
crypto-core=acru:ames
|
||||
=bug
|
||||
bug=bug-9
|
||||
corks=(set wire)
|
||||
==
|
||||
::
|
||||
|
||||
+$ bug-9
|
||||
$: veb=_[`?`%.n `?`%.n `?`%.n `?`%.n `?`%.n `?`%.n `?`%.n]
|
||||
ships=(set ship)
|
||||
==
|
||||
::
|
||||
+$ ames-state-9
|
||||
$: peers=(map ship ship-state)
|
||||
=unix=duct
|
||||
=life
|
||||
crypto-core=acru:ames
|
||||
bug=bug-9
|
||||
corks=(set wire)
|
||||
snub=(set ship)
|
||||
==
|
||||
::
|
||||
:: $bug: debug printing configuration
|
||||
::
|
||||
:: veb: verbosity toggles
|
||||
@ -860,7 +875,8 @@
|
||||
[%6 ames-state-6]
|
||||
[%7 ames-state-7]
|
||||
[%8 ames-state-8]
|
||||
[%9 ^ames-state]
|
||||
[%9 ames-state-9]
|
||||
[%10 ^ames-state]
|
||||
==
|
||||
::
|
||||
|= [now=@da eny=@ rof=roof]
|
||||
@ -983,7 +999,7 @@
|
||||
:: lifecycle arms; mostly pass-throughs to the contained adult ames
|
||||
::
|
||||
++ scry scry:adult-core
|
||||
++ stay [%9 %larva queued-events ames-state.adult-gate]
|
||||
++ stay [%10 %larva queued-events ames-state.adult-gate]
|
||||
++ load
|
||||
|= $= old
|
||||
$% $: %4
|
||||
@ -1020,8 +1036,15 @@
|
||||
state=ames-state-8
|
||||
==
|
||||
[%adult state=ames-state-8]
|
||||
== ==
|
||||
== ==
|
||||
$: %9
|
||||
$% $: %larva
|
||||
events=(qeu queued-event)
|
||||
state=ames-state-9
|
||||
==
|
||||
[%adult state=ames-state-9]
|
||||
== ==
|
||||
$: %10
|
||||
$% $: %larva
|
||||
events=(qeu queued-event)
|
||||
state=_ames-state.adult-gate
|
||||
@ -1076,12 +1099,22 @@
|
||||
=. queued-events events.old
|
||||
larval-gate
|
||||
::
|
||||
[%9 %adult *] (load:adult-core %9 state.old)
|
||||
[%9 %adult *]
|
||||
=. cached-state `[%9 state.old]
|
||||
~> %slog.0^leaf/"ames: larva reload"
|
||||
larval-gate
|
||||
::
|
||||
[%9 %larva *]
|
||||
~> %slog.0^leaf/"ames: larva: load"
|
||||
=. queued-events events.old
|
||||
larval-gate
|
||||
::
|
||||
[%10 %adult *] (load:adult-core %10 state.old)
|
||||
::
|
||||
[%10 %larva *]
|
||||
~> %slog.1^leaf/"ames: larva: load"
|
||||
=. queued-events events.old
|
||||
=. adult-gate (load:adult-core %9 state.old)
|
||||
=. adult-gate (load:adult-core %10 state.old)
|
||||
larval-gate
|
||||
::
|
||||
==
|
||||
@ -1102,7 +1135,9 @@
|
||||
8+(state-7-to-8:load:adult-core +.u.cached-state)
|
||||
=? u.cached-state ?=(%8 -.u.cached-state)
|
||||
9+(state-8-to-9:load:adult-core +.u.cached-state)
|
||||
?> ?=(%9 -.u.cached-state)
|
||||
=? u.cached-state ?=(%9 -.u.cached-state)
|
||||
10+(state-9-to-10:load:adult-core +.u.cached-state)
|
||||
?> ?=(%10 -.u.cached-state)
|
||||
=. ames-state.adult-gate +.u.cached-state
|
||||
[moz larval-core(cached-state ~)]
|
||||
--
|
||||
@ -1178,15 +1213,15 @@
|
||||
[moves ames-gate]
|
||||
:: +stay: extract state before reload
|
||||
::
|
||||
++ stay [%9 %adult ames-state]
|
||||
++ stay [%10 %adult ames-state]
|
||||
:: +load: load in old state after reload
|
||||
::
|
||||
++ load
|
||||
=< |= $= old-state
|
||||
$% [%9 ^ames-state]
|
||||
$% [%10 ^ames-state]
|
||||
==
|
||||
^+ ames-gate
|
||||
?> ?=(%9 -.old-state)
|
||||
?> ?=(%10 -.old-state)
|
||||
ames-gate(ames-state +.old-state)
|
||||
::
|
||||
|%
|
||||
@ -1260,7 +1295,7 @@
|
||||
==
|
||||
++ state-8-to-9
|
||||
|= ames-state=ames-state-8
|
||||
^- ^^ames-state
|
||||
^- ames-state-9
|
||||
:* peers.ames-state
|
||||
unix-duct.ames-state
|
||||
life.ames-state
|
||||
@ -1269,6 +1304,19 @@
|
||||
corks.ames-state
|
||||
*(set ship)
|
||||
==
|
||||
++ state-9-to-10
|
||||
|= ames-state=ames-state-9
|
||||
^- ^^ames-state
|
||||
:* peers.ames-state
|
||||
unix-duct.ames-state
|
||||
life.ames-state
|
||||
crypto-core.ames-state
|
||||
%= bug.ames-state
|
||||
veb [&1 &2 &3 &4 &5 &6 |6 %.n]:veb.bug.ames-state
|
||||
==
|
||||
corks.ames-state
|
||||
snub.ames-state
|
||||
==
|
||||
--
|
||||
:: +scry: dereference namespace
|
||||
::
|
||||
@ -1507,6 +1555,7 @@
|
||||
%ges acc(ges %.y)
|
||||
%for acc(for %.y)
|
||||
%rot acc(rot %.y)
|
||||
%kay acc(kay %.y)
|
||||
==
|
||||
event-core
|
||||
:: +on-prod: re-send a packet per flow to each of .ships
|
||||
@ -2016,7 +2065,9 @@
|
||||
=. +.peer-state +:*^peer-state
|
||||
:: print change to quality of service, if any
|
||||
::
|
||||
=/ text=(unit tape) (qos-update-text ship old-qos qos.peer-state)
|
||||
=/ text=(unit tape)
|
||||
%^ qos-update-text ship old-qos
|
||||
[qos.peer-state kay.veb ships.bug.ames-state]
|
||||
::
|
||||
=? event-core ?=(^ text)
|
||||
(emit duct %pass /qos %d %flog %text u.text)
|
||||
@ -2421,7 +2472,10 @@
|
||||
=^ old-qos qos.peer-state [qos.peer-state new-qos]
|
||||
:: if no update worth reporting, we're done
|
||||
::
|
||||
?~ text=(qos-update-text her.channel old-qos new-qos)
|
||||
=/ text
|
||||
%^ qos-update-text her.channel old-qos
|
||||
[new-qos kay.veb ships.bug.ames-state]
|
||||
?~ text
|
||||
peer-core
|
||||
:: print message
|
||||
::
|
||||
|
@ -191,19 +191,6 @@
|
||||
[%1 peg=(unit page)]
|
||||
==
|
||||
::
|
||||
:: Global ford cache
|
||||
::
|
||||
:: Refcount includes references from other items in the cache, and
|
||||
:: from spills in each desk
|
||||
::
|
||||
:: This is optimized for minimizing the number of rebuilds, and given
|
||||
:: that, minimizing the amount of memory used. It is relatively slow
|
||||
:: to lookup, because generating a cache key can be fairly slow (for
|
||||
:: files, it requires parsing; for tubes, it even requires building
|
||||
:: the marks).
|
||||
::
|
||||
+$ flow (map leak [refs=@ud =soak])
|
||||
::
|
||||
:: Per-desk ford cache
|
||||
::
|
||||
:: Spill is the set of "roots" we have into the global ford cache.
|
||||
@ -228,41 +215,6 @@
|
||||
[%arch =path]
|
||||
==
|
||||
::
|
||||
:: Ford build with content.
|
||||
::
|
||||
+$ pour
|
||||
$% [%file =path]
|
||||
[%nave =mark]
|
||||
[%dais =mark]
|
||||
[%cast =mars]
|
||||
[%tube =mars]
|
||||
:: leafs
|
||||
::
|
||||
[%vale =path =lobe]
|
||||
[%arch =path =(map path lobe)]
|
||||
==
|
||||
::
|
||||
:: Ford result.
|
||||
::
|
||||
+$ soak
|
||||
$% [%cage =cage]
|
||||
[%vase =vase]
|
||||
[%arch dir=(map @ta vase)]
|
||||
[%dais =dais]
|
||||
[%tube =tube]
|
||||
==
|
||||
::
|
||||
:: Ford cache key
|
||||
::
|
||||
:: This includes all build inputs, including transitive dependencies,
|
||||
:: recursively.
|
||||
::
|
||||
+$ leak
|
||||
$~ [*pour ~]
|
||||
$: =pour
|
||||
deps=(set leak)
|
||||
==
|
||||
::
|
||||
:: New desk data.
|
||||
::
|
||||
:: Sent to other ships to update them about a particular desk.
|
||||
@ -5662,6 +5614,7 @@
|
||||
%sweep ``[%sweep !>(sweep)]
|
||||
%rang ``[%rang !>(ran.ruf)]
|
||||
%tomb ``[%flag !>((tomb t.path))]
|
||||
%flow ``[%flow !>(fad.ruf)]
|
||||
%domes domes
|
||||
%tire ``[%tire !>(tore:(lu now rof *duct ruf))]
|
||||
%tyre ``[%tyre !>(tyr.ruf)]
|
||||
|
@ -58,15 +58,15 @@ export const showBlit = (term: Terminal, blit: Blit) => {
|
||||
|
||||
export const showSlog = (term: Terminal, slog: string) => {
|
||||
// set scroll region to exclude the bottom line,
|
||||
// scroll up one line,
|
||||
// move cursor to start of the newly created whitespace,
|
||||
// move cursor to bottom left of the scroll region,
|
||||
// print a newline to move everything up a line,
|
||||
// set text to grey,
|
||||
// print the slog,
|
||||
// restore color, scroll region, and cursor.
|
||||
//
|
||||
term.write(csi('r', 1, term.rows - 1)
|
||||
+ csi('S', 1)
|
||||
+ csi('H', term.rows - 1, 1)
|
||||
+ '\n'
|
||||
+ csi('m', 90)
|
||||
+ slog
|
||||
+ csi('m', 0)
|
||||
|
@ -24,6 +24,14 @@
|
||||
++ test-hint-xray
|
||||
~> %xray.[1 leaf+"test-hint-xray ~"]
|
||||
~
|
||||
:: test that these memory-report hints
|
||||
:: are safe to run or ignore
|
||||
++ test-hilt-meme
|
||||
~> %meme
|
||||
~
|
||||
++ test-hint-meme
|
||||
~> %meme.[1 leaf+"test-hint-meme ~"]
|
||||
~
|
||||
:: test that the hilt bout hint
|
||||
:: is safe to run or ignore
|
||||
++ test-hilt-bout
|
||||
|
Loading…
Reference in New Issue
Block a user