[PATCH maintenance] doc: guix-days-2024: Add notes from the infrastructure discussion.

  • Done
  • quality assurance status badge
Details
4 participants
  • Jonathan Brielmaier
  • Adriel Dumas--Jondeau
  • Ludovic Courtès
  • Steve George
Owner
unassigned
Submitted by
Jonathan Brielmaier
Severity
normal
J
J
Jonathan Brielmaier wrote on 1 Feb 18:13 +0100
(address . guix-patches@gnu.org)
20240201171315.16778-1-jonathan.brielmaier@web.de
* doc/guix-days-2024/infrastructure.md: New file.
---
doc/guix-days-2024/infrastructure.md | 54 ++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 doc/guix-days-2024/infrastructure.md

Toggle diff (60 lines)
diff --git a/doc/guix-days-2024/infrastructure.md b/doc/guix-days-2024/infrastructure.md
new file mode 100644
index 0000000..a226041
--- /dev/null
+++ b/doc/guix-days-2024/infrastructure.md
@@ -0,0 +1,54 @@
+# Infrastructure
+
+## Why (ideal world)
+Areas where we could improve
+* serve the whole world web
+* redundancy
+* low maintenance (labour), but maintained, supported and observed
+* understood, documented and transparent
+* sustainable (financially and environmental)
+
+Other (okeish) things
+* secure and trusted
+* privacy considerations
+* scaleable
+* no cost to use
+* ethical
+* hosted or project owned hardware?
+* minimal but futureproof
+* provides (substitutes etc.)
+* efficient operations (bandwith)
+
+## What is our infrastructure
+* Build farms
+* Security and trust
+* Services
+ * QA
+ * issues/bug tracker
+ * git
+ * website
+ * package search
+ * mailing lists
+ * DNS
+ * IRC
+* substitutes
+* sysadmin
+ * updates
+ * software e.g. guix deploy
+ * support
+ * incident response
+* money, donations
+* location, hosting
+* virtual/physical hardware
+* state, storage
+
+## Ideas for improvement
+* mirroring
+ * use a CDN
+ * peer-to-peer hosting
+* equivalence ignoring reference hashes
+* substitutes
+ * storage for the Bordeaux build farm
+ * how long do we store them (scientific community "loves" substitutes for the past)
+ * prepare for the loss of MDC hosting (Berlin build farm)
+* pay/financially support people providing hardware
--
2.43.0
J
J
Jonathan Brielmaier wrote on 2 Feb 17:31 +0100
[PATCH 1/2 maintenance] doc: guix-days-2024: Add notes about hurd session.
(address . 68876@debbugs.gnu.org)
20240202163114.7759-1-jonathan.brielmaier@web.de
* doc/guix-days-2024/hurd.md: New file.
---
doc/guix-days-2024/hurd.md | 48 ++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
create mode 100644 doc/guix-days-2024/hurd.md

Toggle diff (54 lines)
diff --git a/doc/guix-days-2024/hurd.md b/doc/guix-days-2024/hurd.md
new file mode 100644
index 0000000..6d30a8d
--- /dev/null
+++ b/doc/guix-days-2024/hurd.md
@@ -0,0 +1,48 @@
+# Hurd + Guix
+
+* a few people in the room have run the Hurd before, even less on baremetal machines
+
+## Challenges
+* hurd on bare metal is difficult -> missing drivers
+* hurd supports only small disks (up to 100GB or so)
+* mach provides less then Linux kernel (file system, network etc) -> bootstrap is hard
+
+## Upstream status
+* 64bit (x86) support WIP
+* support for SMP (multi-threading)
+* port to aarch64 was started
+* Debian is mostly used for developing/integrated
+* activity increased a lot in the last 2 years (1 person -> couple contributors)
+* patches are pushed to glibc upstream
+
+## Guix on hurd
+* netdde (Linux kernels built for mach) -> Guix integration non-working
+* rumpdisk, disk drivers from NetBSD -> integrated in Guix already
+* rumpnet (for WiFi, network drivers etc.)
+* Guix with Hurd image available https://guix.gnu.org/en/download/latest/ including:
+ * netdde and rumpdisk included
+ * shepherd
+* glibc in core-updates contains many improvements for the Hurd
+ * 2.39 brings even more fixes, but maybe to late for core-updates
+* Bordeaux and Berlin build farms build packages for i586-gnu
+ * only master, core-updates currently disabled
+* `guix system reconfigure` broken on core-updates
+* rust@1.75 is cross-compilable from Linux
+* Mes builds on the hurd, stage0 misses support for mach+hurd
+ * so no bootstrap of Guix yet
+
+## Ideas
+* implement /gnu/store as a hurd translator
+* install Hurd via Guix installer
+* writing Guile bindings for Hurd translator
+* work closer together with Hurd devs
+* mach kernel can be "stretched" over network -> build "clusters"
+
+* how can users/devs start with Hurd
+ * run either via childhurd or Hurd VM
+ * childhurd allows offloading from Guix@Linux
+ * write a simple translator
+* what would help the Hurd ecosystem
+ * fix failing packages
+* empower users (non-admins) -> idea shared by Hurd and Guix
+ * "Linux+systemd+rust" is making things complex (high entry barrier)
--
2.43.0
J
J
Jonathan Brielmaier wrote on 2 Feb 17:31 +0100
[PATCH 2/2 maintenance] doc: guix-days-2024: Add notes about CLI session.
(address . 68876@debbugs.gnu.org)
20240202163114.7759-2-jonathan.brielmaier@web.de
* doc/guix-days-2024/cli.md: New file.

Co-authored-by: Adriel Dumas--Jondeau <leirda@disroot.org>
---
doc/guix-days-2024/cli.md | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
create mode 100644 doc/guix-days-2024/cli.md

Toggle diff (36 lines)
diff --git a/doc/guix-days-2024/cli.md b/doc/guix-days-2024/cli.md
new file mode 100644
index 0000000..7d7808d
--- /dev/null
+++ b/doc/guix-days-2024/cli.md
@@ -0,0 +1,30 @@
+# CLI of Guix
+
+## How a perfect CLI would look like?
+* consistent
+* self-explaining
+* intuitive
+* mapping between API and CLI (e.g. easier REPL)
+* output can be parsed (composability)
+* flexible outputs
+* override defaults (aliases or extensions)
+* should be fast
+* auto completion, support for tabbing
+
+## What's the current state (good or bad)?
+* consistency in conventions (mostly)
+* fast tab completion
+* 39 top-level commands (`guix top-level-command`)
+* guix refresh / lint / style / challenge / download / hash are toplevel but really specific
+* Some options are not consistent between different commands
+ * `guix system list-generations` vs `guix pull --list-profile`
+* the `guix import` command is hard coded so we can't plug new importers with a channel for instance
+* the order of channel specification is important in regard to definitions (might not be the case anymore)
+* there's a common confusion between the name of the package and the name of the variable that holds the package
+
+## What we can improve
+* make guix extensions / modules more accessible
+ * there's something about that on a git repo of Andreas
+* package name writing differs between CLI and code (e.g. "glibc:debug" vs glibc `("debug"))
+* `guix shell --development spec` should accept a = sign (`guix shell --development=spec`)
+* Having a equivalent of the CLI example for the REPL in documentation
--
2.43.0
L
L
Ludovic Courtès wrote on 4 Feb 00:54 +0100
Re: bug#68876: [PATCH maintenance] doc: guix-days-2024: Add notes from the infrastructure discussion.
(name . Jonathan Brielmaier)(address . jonathan.brielmaier@web.de)
87r0htf6i9.fsf_-_@gnu.org
Hello comrades!

Jonathan Brielmaier <jonathan.brielmaier@web.de> skribis:

Toggle quote (2 lines)
> * doc/guix-days-2024/hurd.md: New file.

[...]

Toggle quote (4 lines)
> * doc/guix-days-2024/cli.md: New file.
>
> Co-authored-by: Adriel Dumas--Jondeau <leirda@disroot.org>

Applied both, thanks a lot!

I’ve added my notes too; let’s hunt the other note-takers tomorrow! :-)

Ludo’.
Closed
A
A
Adriel Dumas--Jondeau wrote on 6 Feb 10:36 +0100
[PATCH] [PATCH maintenance] doc: guix-days-2024: Add notes from the profiling discussion.
(address . 68876@debbugs.gnu.org)
20e0abfb8d6e7c4584b2c7dea292669f1a63a29f.1707211674.git.leirda@disroot.org
Change-Id: I57abb36cbab43010f43270e626087cb2cb211c14
---
doc/guix-days-2024/profiling.md | 81 +++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 doc/guix-days-2024/profiling.md

Hi o/

Here are the notes (unmodified, but we now know why ~,trace~ doesn't
behave the same in a ~guix repl~ than in ~guile~, as it is not the same
VM used in both) we've taken during the profiling session.

Toggle diff (100 lines)
diff --git a/doc/guix-days-2024/profiling.md b/doc/guix-days-2024/profiling.md
new file mode 100644
index 0000000000..f484a2ff3c
--- /dev/null
+++ b/doc/guix-days-2024/profiling.md
@@ -0,0 +1,81 @@
+# What is profiling?
+
+- Have an idea of the execution time of part of code
+- Have some kind of flame graph
+- What feels slow (not necessarily what is slow)
+- Where's RAM most used?
+
+# What should be profiled?
+
+- guix authenticate
+- guix system/home
+- guix pull
+- not the compilation itself
+- Guix system start time (like ~systemd-analyse~)
+- Time of deployments
+
+# Why?
+
+- To be able to use Guix on low-end/older devices
+- Building a package is long (because of compilation)
+- Pulling is slow (because of network)
+- Computing Guix derivations (guix system init/reconfigure)
+- Authenticating guix commits (especially with many/big commits)
+
+- It's compelling (for HPC people for instance)
+
+- To know where there's progress to be made
+- ~make~ in the Guix repo is slow so testing is not as immediate as it could be
+- As small/fast finale binary as possible
+- To get a feel of what specs are needed to do actual stuff
+
+# How?
+
+- Guile has ~trace~ / ~profile~ procedure that you could use on Guix procs
+ - How to make a flame graph from this data or any other format?
+- Retrieving some metrics on demand from build systems (via ~guix build~)
+ - to get logs RAM/space/temporal usage during compilation
+- Profiling daemons resources usage from shepherd (exposing those profiling options to users)
+- Making shepherd services to profile ~guix shell --container~
+
+# Starting point
+
+```
+$ guix repl
+(guix-user)> ,use (guix scripts build)
+(guix-user)> ,profile (guix-build "hello")
+% cumulative self
+time seconds seconds procedure
+ 24.00 0.16 0.16 put-string
+ 16.00 0.11 0.11 write
+ 12.00 0.11 0.08 append
+ 12.00 0.08 0.08 get-bytevector-n
+ 4.00 0.05 0.03 guix/gexp.scm:809:0:gexp-attribute
+ 4.00 0.03 0.03 string->utf8
+ 4.00 0.03 0.03 guix/packages.scm:1969:0:package->derivation
+ 4.00 0.03 0.03 regexp-exec
+ 4.00 0.03 0.03 cons
+ 4.00 0.03 0.03 guix/store.scm:1426:4
+ 4.00 0.03 0.03 apply-smob/1
+ 4.00 0.03 0.03 sort
+(guix-user)> ,trace (guix-build "hello") ; doesn't output any trace for some reason
+/gnu/store/6fbh8phmp3izay6c0dpggpxhcjn4xlm5-hello-2.12.1
+(guix-user)> ^D
+$ guile
+(guile-user)> ,use (guix scripts build)
+(guile-user)> ,trace (guix-build "hello") ; however it does work
+trace: | (guix-build "hello")
+trace: | | (_ (guix scripts) #:ensure #f)
+trace: | | (_ #<procedure 7ff4802c5000 at ice-9/boot-9.scm:3241:7 ()>)
+trace: | | | (lock-mutex #<mutex 7ff487d01fc0>)
+...
+trace: | | | | | | (fileno #<output: file /dev/pts/3>)
+trace: | | | | | | 1
+trace: | | | | | | (bytevector->pointer@system/foreign #vu8(0 0 0 0 0 0 0 0))
+trace: | | | | | | (bytevector->pointer #vu8(0 0 0 0 0 0 0 0))
+trace: | | | | | | #<pointer 0x7ff48036a7d0>
+```
+
+```sh
+$ guix build --verbosity=<big number> --debug=<big number>
+```

base-commit: a4464bd0975c811f18af98f69032b29bddda5b81
prerequisite-patch-id: cefc174692b72660bf5ed4c03442f33dbaf6e784
prerequisite-patch-id: 6b1015959d122056b883e766306b0ff8ba30bde9
prerequisite-patch-id: a3116f7908bc9fdb237e4cde52260856b083596d
prerequisite-patch-id: db1d3d945579284d401944b18fcbc506a000714f
prerequisite-patch-id: 84bff5e4689979f565315edf96250ccc367f8fb8
prerequisite-patch-id: bd69d4115bc86b7d2739e9890625788f1fa5a006
prerequisite-patch-id: 0834ca6f4e7f1ed91b5dcb679096a953a6e36273
prerequisite-patch-id: 9812bf7906d21768559f10f97d8363d2a18fc7e9
prerequisite-patch-id: 68e70365da7db55420105f7cb12c9fffb80d2415
--
2.41.0
S
S
Steve George wrote on 7 Feb 17:01 +0100
[PATCH 3/4] guix-days-2024: Add goblins-hoot-guix.md.
(address . 68876@debbugs.gnu.org)
5b1d647fec3e62551b679552d355baeea4f9f9f2.1707321700.git.steve@futurile.net
* /doc/guix-days-2024/goblins-hoot-guix.md: New file.
---
doc/guix-days-2024/goblins-hoot-guix.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 doc/guix-days-2024/goblins-hoot-guix.md

Toggle diff (25 lines)
diff --git a/doc/guix-days-2024/goblins-hoot-guix.md b/doc/guix-days-2024/goblins-hoot-guix.md
new file mode 100644
index 0000000..f09df34
--- /dev/null
+++ b/doc/guix-days-2024/goblins-hoot-guix.md
@@ -0,0 +1,17 @@
+# Goblins, Hoot & Guix
+
+## Goblins demo
+
+- Date: Thursday, 1st February 2024
+- Speaker: Christine Lemmer-Webber
+
+- Christine introduced Goblins, gave a demo and discussed current goals
+- Outlined a vision for how Goblins distributed object programming environment and Guix can work together.
+
+## Goblins, Hoot & Guix
+
+- Date, Friday, 2nd February 2024
+- Co-ordinator: Christine Lemmer-Webber
+
+- Discussion about how the projects can work together
+- Notes TBD
--
2.41.0
S
S
Steve George wrote on 7 Feb 17:01 +0100
[PATCH 2/4] guix-days-2024: Update notes and reorganise.
(address . 68876@debbugs.gnu.org)
4a836d4bdfeff9f5ff50a0eda267c87ea5ecae7d.1707321700.git.steve@futurile.net
* plenary.org: Integrate additional notes & reorganise.
---
doc/guix-days-2024/0_plenary.md | 93 +++++++++++++++++++++++++++++++++
1 file changed, 93 insertions(+)
create mode 100644 doc/guix-days-2024/0_plenary.md

Toggle diff (101 lines)
diff --git a/doc/guix-days-2024/0_plenary.md b/doc/guix-days-2024/0_plenary.md
new file mode 100644
index 0000000..3edb580
--- /dev/null
+++ b/doc/guix-days-2024/0_plenary.md
@@ -0,0 +1,93 @@
+# Notes from the Guix Days plenary session
+
+- Date: Thursday, Feb. 1st, 2024 and Friday, Feb. 2nd, 2024
+- Attendees: 33 people at the events opening, including new users and Nix people
+
+## Main Track
+
+- Introduction to Goblins by Christine from Spritely Institute
+- Status of Guix by Efraim
+- Guix QA update by Chris
+
+Sessions:
+
+- [Goblins and Hoot](goblins-hoot-guix.md) (Christine)
+- [Infrastructure](infrastructure.md) (Alexis)
+- Documentation (Julien)
+- Guix Home (Gabor)
+- [Alternative Architectures](architecture-support.org) (Efraim)
+- Bootstrapping (Janneke)
+- Release (Julien)
+
+
+### Day 2
+
+Sessions:
+
+- Funding (Christine)
+- [Governance/Maintainers](governance.org) (Efraim + Chris)
+- [Patch flow](patch-flow.md) (Steve)
+- [Guix CLI improvements](cli.md) (Jonathan)
+- Profiling (Adriel)
+- Hurd (Janneke)
+- L10N (Julien)
+- [Hoot](goblins-hoot-guix.md) (Christine)
+- Newbie room (Gabor)
+- Onboarding (Gabor)
+
+
+### Ideas that didn’t make it to sessions
+
+- Shepherd
+- HPC
+
+
+## Status update (Efraim)
+
+ - last release 1 year old
+ - installer
+ - working okay
+ - does not cater to the needs of power users (e.g., btrfs on encrypted)
+ - problems when choosing EXWM
+ - allow choosing the Hurd?
+ - substitute availability is good for x86_64
+ - currently 98% or so
+ - qa.guix gives a summary
+ - 32-bit support is in a poor state
+ - idea: estimate i686 substitute usage using server logs?
+ - is ARMv7 (32-bit, armhf-linux) used at all?
+ - onboarding
+ - "not a lot of projects are doing email patches"
+ - people maintain their own stack of patches they don't submit
+ - "we need to do something on our side"
+ - teams
+ - "nice but not perfect", "mostly working"
+ - what about patches with no associated teams?
+ - Rust team is just Efraim
+ - sysadmin
+ - small bus factor
+ - Chris in charge qa.guix, data.guix, etc.
+ - berlin was building slowly early January: needed to vacuum the
+ posgresql database
+ - we're moving faster
+ - #5 on Repology
+ - we should talk more about package availability
+ - time traps
+ - "virtual build machine" service to address that
+ - could be used for 2038 bug testing
+ - RISC-V builds broke with some kernel update
+ - SWH
+
+## Guix Quality assurance update (Chris Baines)
+
+ - architecture diagram
+ - entry points: https://qa.guix.gnu.org/patches,
+ https://qa.guix.gnu.org/reproducible-builds
+ - question about “slowness” of builds
+ - could use a different prioritirization method
+ - could add more hardware
+ - https://bordeaux.guix.gnu.org/activity -> it’s busy :-)
+
+## Actions
+
+- TBD
--
2.41.0
S
S
Steve George wrote on 7 Feb 17:01 +0100
[PATCH 4/4] guix-days-2024: Add 2024-guix-days-infrastructure-discussion-whiteboard.jpg
(address . 68876@debbugs.gnu.org)
48c6ba21c0ac3e3e34cfea232b9f2f71868e6a82.1707321700.git.steve@futurile.net
* doc/guix-days-2024/2024-guix-days-infrastructure-discussion-whiteboard.jpg: New file.
---
...s-infrastructure-discussion-whiteboard.jpg | Bin 0 -> 3404618 bytes
doc/guix-days-2024/infrastructure.md | 11 +++++++++--
2 files changed, 9 insertions(+), 2 deletions(-)
create mode 100644 doc/guix-days-2024/2024-guix-days-infrastructure-discussion-whiteboard.jpg

Toggle diff (294 lines)
diff --git a/doc/guix-days-2024/2024-guix-days-infrastructure-discussion-whiteboard.jpg b/doc/guix-days-2024/2024-guix-days-infrastructure-discussion-whiteboard.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e340bf901a08e1f69671d6be4cd98f9208230ea6
GIT binary patch
literal 3404618
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
This message was truncated. Download the full message here.
L
L
Ludovic Courtès wrote on 7 Feb 23:05 +0100
Re: [bug#68876] [PATCH] [PATCH maintenance] doc: guix-days-2024: Add notes from the profiling discussion.
(name . Adriel Dumas--Jondeau)(address . leirda@disroot.org)
87r0ho2am7.fsf@gnu.org
Hi!

Adriel Dumas--Jondeau <leirda@disroot.org> skribis:

Toggle quote (6 lines)
> Hi o/
>
> Here are the notes (unmodified, but we now know why ~,trace~ doesn't
> behave the same in a ~guix repl~ than in ~guile~, as it is not the same
> VM used in both) we've taken during the profiling session.

Heheh, pushed! Thanks a lot for sharing your notes!

Ludo’.
Closed
L
L
Ludovic Courtès wrote on 10 Feb 10:36 +0100
Re: bug#68876: [PATCH maintenance] doc: guix-days-2024: Add notes from the infrastructure discussion.
(name . Steve George)(address . steve@futurile.net)(address . 68876@debbugs.gnu.org)
874jeglkyw.fsf_-_@gnu.org
Hi Steve,

Steve George <steve@futurile.net> skribis:

Toggle quote (2 lines)
> * /doc/guix-days-2024/goblins-hoot-guix.md: New file.

[...]

Toggle quote (2 lines)
> * plenary.org: Integrate additional notes & reorganise.

[...]

Toggle quote (2 lines)
> * doc/guix-days-2024/2024-guix-days-infrastructure-discussion-whiteboard.jpg: New file.

Applied, thanks!

Ludo’.
L
L
Ludovic Courtès wrote on 23 Feb 20:55 +0100
Re: [bug#68974] [PATCH 2/4] guix-days-2024: Update notes and reorganise.
(name . Steve George)(address . steve@futurile.net)
87frxjdkfo.fsf@gnu.org
Steve George <steve@futurile.net> skribis:

Toggle quote (2 lines)
> * plenary.org: Integrate additional notes & reorganise.

Applied, thank you, and apologies for not noticing earlier!

Ludo’.
L
L
Ludovic Courtès wrote on 23 Feb 20:54 +0100
(name . Steve George)(address . steve@futurile.net)
87il2fdkhj.fsf@gnu.org
Steve George <steve@futurile.net> skribis:

Toggle quote (2 lines)
> * plenary.org: Integrate additional notes & reorganise.

Applied, thank you, and apologies for not noticing earlier!

Ludo’.
?