Hello Carlo, On Tue, 2024-02-06 at 23:10 +1100, Carlo Zancanaro wrote: > The nginx{,-upstream,-server}-configuration records have fields for > {extra,raw}-content, which do allow arbitrary configuration lines to > be > added to their config. I think this is a sensible escape hatch to > have > to provide this middle ground.
The problem is that some configurations, especially nginx, are sensitive to the order in which items appear and may require slightly intricate nesting, and you can't always achieve that with intermixed raw configuration sections. And those sections are not (easily) introspectable. > Andrew Tropin has done something interesting on the idea of more > free-form configuration for nginx specifically[1], but I don't think > that idea has found its way out of rde and into Guix yet. > > > I think that Guix taking the view of a configuration > > file as a nested set of string-named blocks containing > > lists of string-named, string-valued pairs would be an > > intermediate level of abstraction more suited to the > > Guix system configuration view of the world. > > We'd have to think carefully about how the Guix model of > service extension would work with such an intermediate > representation. Agree that it would have repercussions throughout the package ecosystem. I would have thought that it would make things easier. You could argue that you don't benefit from the Guile syntax checker, but at the end of the day you don't find out you've made a mistake until you try to run `guix system reconfigure` anyway.