Subject: [bug#36404] [PATCH 2/5] gnu: Add machine type for deployment specifications.

From: Carlo Zancanaro <[email-masked]>
Date: Sun, 30 Jun 2019 14:58:39 +1000

Hey Jakob/Chris,

I can't comment on much of the deploy code, but I can help out 
with some stuff about the Shepherd.

On Sun, Jun 30 2019, Jakob L. Kreuze wrote:
>> I'm a bit unsure from the above code... I'm guessing one of two 
>> things
>> is happening:
>>
>>  - Either it's starting services that haven't been started yet, 
>>  but
>>    leaving alone services that are running but which aren't 
>>    "new"
>>  - Or it's restarting services that are currently running
>>
>> Which is it?  And mind adding a comment explaining it?
>
> The former. I've intentionally avoided restarting services since 
> 'guix
> system' warns that "many essential services cannot be 
> meaningfully
> restarted." (which is why 'guix system reconfigure' spits out 
> "To
> complete the upgrade, run 'herd restart SERVICE' to stop, 
> upgrade, and
> restart each service that was not automatically restarted." 
> (which AFAIK
> is always none of them)).

There was discussion earlier this year around restarting services 
that are already running during a reconfigure[1]. I wonder if this 
problem is more worth solving if we're deploying to remote 
systems. I have a few patches in that issue to implement service 
restarting, but I didn't follow them up enough to get them into 
Guix.

[1]: https://issues.guix.info/issue/33508

>> By the way, is there anything about the dependency order in 
>> which
>> services might need to be restarted to be considered? I'm 
>> honestly not
>> sure.
>
> I'm not sure either. Would any Shepherd hackers out there care 
> to chime
> in?

The Shepherd will start any necessary dependencies in an 
appropriate order.

Carlo