Xinglu Chen <pub...@yoctocell.xyz> writes: > On Wed, Sep 15 2021, Andrew Tropin wrote:
>> Records even for the same services have slightly different fields and >> because of macro nature can't be reused between Home and System >> services. In more details I mentioned this problem here: >> https://lists.sr.ht/~abcdw/rde-devel/%3C87y2cqifpx.fsf%40yoctocell.xyz%3E#%3c878s4l8kai....@trop.in%3E > > Some services might be useful to have in both Guix System and Guix Home; > for instance, Guix System currently has a service for configuring > Syncthing, and I think it makes sense to also have one for Guix Home, > this would mean that people not using Guix System (me :-)) could also > have Guix manage Syncthing. With the current approach, we would have to > copy and paste quite a bit of code, and if the Syncthing service for > Guix System changes, then the one for Guix Home might have to change as > well. I agree with this point. I have several Guix systems, and several non-guix systems with Guix managing some services. In the past, I have had to write my own Shepherd services for things already written as system services. >> The intersection of home and system services should be very low, so >> there is not much benifit here as well. > > Quite the opposite, I think it would be great if home and system > services could integrate more with each other. In NixOS, the NixOS > modules and Home Manager modules feel like two very distinct things, and > it’s not really easy to share things between them. I agree. >> ** Summary >> Let's keep System and Home services separate for the sake of clarity, >> reuse code via shared modules or just exports in (gnu services ...). [...] >> However, ~(gnu home services ...)~ also looks cool, but it would be a >> little inconsistent with system services, which will have one level of >> nestiness less: ~(gnu services)~. >> >> IMO, ~(gnu home services ...)~ would be a good choice if we use ~(gnu >> system services)~ for system services. > > Yeah, having both (gnu system service) and (gnu home service) could make > sense, but since we only have (gnu services), I don’t think it makes > much sense. I haven't put in the energy to follow the rational behind the proposed naming schemas, but I'd like to suggest this as well: =(gnu services home)=. This namespace increases in specificity, and I think it would easily follow that things in =(gnu services home)= might utilize things in =(gnu services)=. Or I also like the idea of =home= and =system= being sibling namespaces. -- Katherine