Hi Ludo’,

I support this overall direction. Implementation details may require additional concensus, though I’m not sure if they’ll rise to the level of a GCD, but would like to see some discussion of problems as they crop up.

Forgejo is purpose-built for developing software; email is not. This difference shows up clearly in areas of tooling and consistency.

Because email isn’t purpose-built for this, it must be adapted through the development of tooling to make it fit for purpose. This causes a lot of accidental complexity, rough integrations, and maintenance burden. I have personally encounterd a large number of problems with the workflow and tooling which simply do not exist in forge-style tooling:

I want to preface this by saying, I’m not criticizing individuals or work or approach here. The done on Guix infrastructure and process was valuable and useful, but IMO Guix has simply outgrown parts of it. But I think problems need to be acknowledged, so these are some of my observations about them.

- As of today, February 8th, the most recent bug shown on issues.guix.gnu.org is from February 2nd. It’s been running at least a week behind for many weeks. Since it’s harder for pepole to see patches and bugs, it’s harder to get them reviewed and worked on.

- The QA status on issues.guix.gnu.org is not very useful. By far the most common thing to see here is "QA: Unknown," with no indication of why it’s unknown or when it may become known[1]. Sometimes this is infrastructure failures; other times, QA is overloaded. Both present the same way. The important information this should provide is, in large part, absent. In turn, that makes it much harder for contributors -- particularly non-committers -- to ascertain if a given patch is problematic or not.

- Sending a patch series is well-known to be harder than it should.

- Much of the infrastructure has suffered from frequent outages (once a week or more) which disrupt the user and contributer experience, and the situation hasn’t improved in at least a year.

- The large number of tools needed to participate in Guix development is a real barrier to doing so.

- Using email means that contributors often send patches "the wrong way" (ex. as attachments), which the tooling then rejects. Forges don’t suffer from this, because there’s only one way to contribute, which is the same for everyone.

- The depth of patch review is inconsistent depending on the reviewer, which I believe is due to lacking a consistent process for doing so. Forge-style CI would improve this: it could report whether a package passes `guix lint', whether it triggers a large number of rebuilds, etc. The consistent application of these standards will, I believe, both ease burden on committers (you don’t have to remember to check these things) and raise the consistency of these policies getting applied.

I am sensitive to those who are unhappy about using a web interface. I live in Emacs, I use EXWM, I’m writing this email in mu4e. I would like to see better Emacs tooling for interacting with Forgejo, so the heavier web interface can be avoided. I believe that in this instance, and others, the problems of making Forgejo work cleanly and consistently are significantly more tractable than making the existing email patch flow and tooling work cleanly and consistently.

Therefore, to reiterate, I support this.

 -- Ian

[1]: Here’s a patch I pulled at random, opened a week ago, which is stuck in "yet to process revision": https://qa.guix.gnu.org/issue/75991

Reply via email to