Hi all,
Tomas Volf <[email protected]> writes:
One could argue that when looking at
(let ((services (modify-services ...)))
(operating-system
(inherit %base-os)
(services services)))
it is obvious what it *should* do (and what it looks like it is
doing).
Yet here we are. So while this change definitely satisfies the
latter
part of the goal, I still question alignment to the former.
I ran into almost this exact same situation[1], and found that I
couldn’t reconfigure after a recent pull. The fix itself was
simple[2], but understanding the problem was not. I’ve heard from
another user in the same sort of situation, though apparently
their situation involves more complex fixes than mine -- they’re
still unable to reconfigure.
It would be very good if the new code *at least* emitted a warning
when shadowing an existing binding. This would have made my
situation (and the fix) much more obvious.
Alternately, the parent record’s fields could get a prefix when
bound, ex. `parent/services' to access the `services' field of the
record being inherited from. This would significantly reduce the
probability of conflicting bindings, as well as more clearly
indicating the source of the value.
-- Ian
[1]: https://codeberg.org/guix/guix/issues/7391
[2]:
https://codeberg.org/ieure/atomized-guix/commit/8e9735bcdf906127aa932b3a5c4faaf295babe43