Shepherd × Goblins update

Over on the Spritely blog we have a new post about our progress on porting the Shepherd init system to Goblins. The post covers the current state of the project, includes some demos, and discusses some future possibilities. Check it out!

6 Likes

I see you are making a big effort to keep compatibility with the legacy shepherd. I try to persuade you to abandon this based on my experience with the Gnu Mcron project…

It will turn out to be a HUGE effort, adding many extra lines of code and complexity to the project which you can do without, and in the very long run a waste of time because everybody will sooner or later move to the new API. If they don’t, they may just as well keep using the legacy application. For you, that HUGE amount of effort will be much better spent elsewhere.

You say you want to make it easy to keep with the GIT head of the legacy project. But your codes will diverge more and more over time, and you will have to give up the synchronization exercise at some point. Might as well just do it now.

The goblins version of shepherd will be quite a different beast to the original, and I think you might as well make it a new programme: Gshepherd or something. Honestly, make a break from the past and embrace a cleaner future.

If the Guix project decides it needs to maintain compatibility in the configuration files, that is up to them. It could probably be done at a purely textual level in that context, though a small amount of coding would be better to ‘bridge’ the two configuration styles.

I wrote Mcron with 100% Vixie cron compatibility. VERY few people have ever used the compatibility layer; most who want that just use Vixie cron.

Just my two pence, but I do feel quite firm in my belief here.

Best wishes
Dale Mellor/Khleedril

1 Like

Hi @Dale, I appreciate you sharing your experience but the parameters of this project were defined by what would be acceptable to the upstream maintainers like Ludovic Courtes. Juli Sims, who proposed this project and applied for funding for it, got clear instruction from Ludovic that backwards compatibility would need to be preserved if our branch were ever to be merged. If we made a separate fork and eschewed compatibility, we’d be left with a competing project that I don’t think anyone would actually use because no one really chooses to use Shepherd, they choose to use Guix and they get the version of Shepherd that Guix ships.

2 Likes

That’s so exciting! I’ve been wanting to check out Guix for a while and this might finally get me to do it :slight_smile:

1 Like

We hit another milestone for the project today. @juli got the Goblins Shepherd running in PID 1 in a Guix VM!

8 Likes