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.

Reply via email to