Maxim Cournoyer <maxim.courno...@gmail.com> writes: > Sergey Trofimov <s...@sarg.org.ru> writes: > >> Hi Guix, >> >> I'd like to raise concerns about Guix's current approach to software >> configuration management. Configuration schemas are inherently public >> interfaces >> of software, valid only for specific package versions. Currently, Guix >> separates >> these interfaces from the software they originate from. We place >> =define-configuration= forms directly within Guix's source code, which >> presents >> several drawbacks: >> >> - *Potential breakage upon package updates:* Updating a package version can >> inadvertently break Guix services that rely on it. For example, a removed >> run >> argument could cause the application to error upon startup. >> - *Duplication of documentation:* The documentation for these records often >> duplicates information already provided with the software itself, leading >> to >> redundancy and potential inconsistencies. >> >> An illustrative example is mpv, where each version can introduce changes to >> dozens of configuration options and run arguments: >> (see >> https://github.com/mpv-player/mpv/blob/master/DOCS/interface-changes.rst) > > I think mpv is a bit of an outlier in our collection of services; most > are using stable interfaces that rarely ever change (I would have > expected the mpv options wouldn't change on a whim every release too? it > does?), and do not have such a massive amount of options.
I agree mpv is an outlier, and even there I think it is not that bad. Out of all the options, between 0.39.0 and 0.40.0, only those listed in [0] were changed, ~half of them are new options. The removed ones are just deprecated in practice, so I would expect 0.39.0 home-mpv-configuration work fine with 0.40.0 mpv. Tomas 0: https://issues.guix.gnu.org/78597#1 -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors.