1
0
forked from rosa/hakurei
kat 5703c17d4f TODO: display elapsed time (see long description)
both on a test level and for the whole thing. i think the reporter or
registrar abstractions should deal with all timeouts, and just feed
elapsed time through all the functions: update() gets time for the
specific test, and finalize passes you the total time. this way you
don't need to do the same logic in every reporter, and you also give
a suggestion to reporter writers (i.e.: you in the future) to expose
test durations. actually tbh per-test isn't possible anywhere but in the
executor, especially when taking potential future parallel execution
into account

on the topic of parallelism: per-test is wall clock for that test,
regardless of perceived time, because no other number is useful. whole
thing is wall clock too, not cpu time

remember:
  - use monotonic clocks!! we need elapsed time, not absolute time
  - format them to more readable strings like “15h 12m” instead of
    “54738 seconds”. once things get large we can be less precise

for the go reporter: ask ozy if the go one already measures it. if so
then don't even bother serializing it

for the stream reporter: the live feed should include per-test time in
brackets or something. the final tree should only include timeout for
outliers on the long side (just shove a box plot-esque algo on it), and
if a flag is given print it for all nodes, and if another flag is given
print the n longest tests. the total time should be in the summary line
at the end in brackets à la pytest

for the dom reporter, we do the same as with the stream reporter's
outlier detection, and have a checkbox or button to dynamically
show/hide all timeouts, and another button to toggle a widget of sorts
that shows up right above the result tree which includes the n longest
tests. all these buttons should be on the same line as the summary
(successes/failures/skips). the total time should be included in the
“execution finished” text form the previous commit, i.e. “execution
finished in 15s”
2026-05-16 16:57:06 +10:00
2026-03-02 13:42:49 +09:00
2025-10-13 04:38:48 +09:00
2026-05-07 15:55:19 +09:00
2026-05-07 15:55:19 +09:00
2026-04-10 20:47:30 +09:00
2026-05-14 05:12:35 +09:00
2026-04-07 14:49:20 +09:00
2026-03-30 18:24:53 +09:00
2026-05-10 04:15:07 +09:00
2026-03-10 03:29:19 +09:00
2026-03-10 03:29:19 +09:00
2025-07-02 20:42:51 +09:00
2026-05-10 04:15:07 +09:00
2026-04-11 23:28:18 +09:00
2026-05-10 16:16:59 +09:00
2026-03-12 02:15:14 +09:00
2026-05-10 16:16:59 +09:00
2026-03-15 20:12:51 +09:00

Yukari

Go Reference Gitea Workflow Status
Release Go Report Card Website

Hakurei is a tool for running sandboxed desktop applications as dedicated subordinate users on the Linux kernel. It implements the application container of planterette (WIP), a self-contained Android-like package manager with modern security features.

Interaction with hakurei happens entirely through structures described by package hst. No native API is available due to internal details of uid isolation.

Notable Packages

Package container is general purpose container tooling. It is used by the hakurei shim process running as the target subordinate user to set up the application container. It has a single dependency, libseccomp, to create BPF programs for the system call filter.

Package internal/pkg provides infrastructure for hermetic builds. This replaces the legacy nix-based testing framework and serves as the build system of Rosa OS, currently developed under package internal/rosa.

Dependencies

container depends on:

cmd/hakurei depends on:

cmd/sharefs depends on:

  • fuse to implement the filesystem.

New dependencies will generally not be added. Patches adding new dependencies are very likely to be rejected.

NixOS Module (deprecated)

The NixOS module is in maintenance mode and will be removed once planterette is feature-complete. Full module documentation can be found here.

Description
(THIS IS NOT THE REPO YOU WANT) Low-level userspace tooling for Rosa OS.
Readme MIT 19 MiB
Languages
Go 92%
Nix 5%
C 1.6%
Python 0.8%
TypeScript 0.4%
Other 0.1%