Skip to main content

DevX meeting

  • Date: 2026-03-11
  • Participants: piegames, Qyriad, horrors, rutile, raito (15 minutes late)
  • Topic: Lix DevX

Agenda

  • On Doxygen
  • Merge queue
  • Other DevX issues folks are facing?

Meeting notes / Discussion

On Doxygen

Objective: document the RPC protocol APIs in Lix, esp. the async bits.

Takeaway from @piegames: Keep Doxygen for now, but don't rely on it for new documentation. Improving it somewhat would be possible but require someone to step up and own the effort.

Actionable @Qyriad: Publish the API documentation on docs.lix.systems, reusing the nightly docs pipeline. [Send this information to AFNix]

Merge queue

State of things: autosubmit bot, only works for already rebased CLs. Wanted: merge queue, that automatically rebases applicable commits and merges them.

Raito: can implement the most trivial change but only in 3rd week of April.

Usual annoyances that folks silently accepts that we should not

  • Non-flakey CI @piegames
    • @pennae: functional tests should be unflaked by migrating them
    • @pennae: NixOS tests cannot be unflaked
      • Unless replaced entirely
      • All NixOS tests failures are related to the virtual Ethernet switch use and the setup sometimes fails and doesn't get detected or fails and reports success.
      • It seems that network operational readiness reporting is failing and we do not know why. networkd reports that an interface is operational but it does not say that a service is ready.
      • wait_for_open_port is the thing that blocks and never completes.
      • NixOS tests failures are highly correlated with CI loads.
      • The best solution is not to use multiple nodes.
      • Proposal 1: Turn every multi-nodes NixOS tests into a single VM NixOS test containing multiple containers (implementing the multiple nodes).
        • Implementation details: have systemd spawn the containers and write a pytest-based framework to run f2-style tests against the containers spawned inside the single VM.
  • Justfile could get better @piegames
    • Justfile to build Hydra tasks
      • Wants to provide the Hydra test name
      • @raito: nix-build -A hydraJobs.tests
      • @piegames: I did not know this! This is why I want Justfile!
    • Justfile task to build the reference manual & other documentation
      • without doing nix-build -A lix.dev
    • @raito: I want the -custom split to disappear
      • @Qyriad: if it takes arguments, it cannot take multiple targets at once
      • just setup && just build vs just setup build
        • Qyriad: currently: just setup && just build-custom manual works
      • @raito will own this and run a poll on this topic on the Zulip thread and implement the popular vote
    • List all available build targets: meson introspect build --targets | jq '[.[] | .name] | sort | unique | .[]' --raw-output
  • just test requires just install, even functional2 requires that!
    • Proposal: make just do a just install for just test-functional2 and just test
      • Qyriad: we cannot make meson test automatically install, but we can make just test automatically install

F2 needs

  • @rutile: command wrapping
  • @pennae: i need command wrapping as well, esp. for the PTY stuff
  • @pennae: ability to asynchronously communicate with a running command for interactions

Actionable @rutile (?): adding async(io) wrappers for command subprocesses (stdin/stdout/stderr)