# 2026-03-11 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)**