[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to write services

From: indieterminacy
Subject: Re: how to write services
Date: Sat, 18 Jun 2022 13:53:41 +0200

Hello Brian,

On 16-06-2022 15:09, Brian Cully via "Development of GNU Guix and the GNU System distribution." wrote: writes:

I asked for indications about the process (what magic to use in the

My experience with Guix, in general, is that the REPL isn't
particularly useful for any task beyond very simple testing (eg, what
are the contents of ‘%base-services’). It's a shame, but I suspect
it's like this because it's hard to make it more functional, and there
are more important problems to work on. Even though I would much
prefer to do almost all work with a REPL, I have not invested the
effort into figuring it out because I don't have the time or
expertise, currently. I can't fault anyone else for making similar

This should be covered in the cookbook

I agree. The cookbook could use a lot of work. Guix's documentation
suffers in the middle ranges. There's a lot of very high level
overview, and all the low level bits are reasonably documented, but
there's very little on how to integrate them.

Personally, Im somebody who requires examples to hack off.
As many as possible, to compare and contrast concepts and feed my imagination.

I wish I could reach for any API to explore and extrapolate with the same ease as I do with a dictionary. Probably a cognitive failing from me getting into coding so late in life.

As with many things, I rely on conversational models to wash over me, so MLs have been useful as filling gaps - though I have to be patient waiting for solutions and ideals to reveal themselves over time.

The Guix mailing lists are hugely important to serve as the bridge between higher and lower level concepts. This method may not be optimal to or known by some hoping to users hoping to utilise Guix further however.

Similarly, Im sure IRC/Matrix is useful, though I find the volume of the official (Matrix?) room to be like a firehose with its volume and too much to passively observe.

If we were building a house, it'd be like having instructions that
say: our house is made out of rooms. Then being given a bill of
materials for all the different types of nails, boards, etc that can
be used to build a house. There's no (or almost no) instructions for
how to use those parts to build the shepherd service room, or how to
connect the activation plumbing, etc. Unfortunately, those are the
instructions that are most important, I think.

I like the analogy.

I feel that there is an information-governance issue in terms of competencies, knowledge and requirements not fully intersecting.

Its not only because of the scale of the Guix community and as you mention the weaker middle layer but problems of time and perspective making it hard for specific solutions to find troubled users with minimal costs.

In many respects its not only a problem of documenting and publishing - there needs to be something in place to help orchestrate connections in a way akin to pollination.

Like the moribund efficacy of forums such as GitHub Issues, I do feel that the 'classic' model of SEO based search does not serve our individual or collective requirements.

I have been nudged into considering RDF more proactively, it would be super if Guix related knowledge could be represented in a semantic form, as it could be that triples can serve to provide 'knowledge-corridors', which connect up aspects of the ecosystem in ways unintended by contributors.

I have been keeping notes on my process of learning Guix in the hopes
of starting something along these lines, but I'm not sure I'll ever
have the time to get around to it; and I'm not much of a writer,

You are a cogent and thoughtful writer so please write more and tell people when you make progress!

My own research project, Icebreaker, has focused on trying to utilise GemText and augment it with minimal syntaxes to support domains such as knowledge-management and kanban boards.

GemText's minimal syntax could allow you to write your thoughts down unimpeded and can be interpreted with ease.

See Genenetwork's own approach to such concepts to see how such habits can build out over time:

Midway through my NLNet grant (once a move past a hospice related issue), Ill be integrating two interpreters covering formats (GemText and Koutliner) and my own annotation system (Qiuy).

For me, this has put me in a situation whereby I can annotate anywhere and soon I shall have a graph of resources to inspect and extrapolate.

To aid others comprehension and interoperability I shall be trying to map my opaque seeming annotation syntax into RDF, hopefully something positive can come from that phase.

Additionally, based upon a decent demonstration on LMDB, I realised that my annotation system makes it more feasible to adapt documents into LDIF database-like-files (is that the correct terminology Maxime?) - potentially turning each document into an LDAP ready database.

Should both things turn out to be actionable then Guix knowledge-management could become a question of the governance of chaining concepts to fit usecases. Fingers crossed.

In fact Tryton modules are not python modules and there's a patch
modifying how Tryton retrieves its modules in Guix

Yet there's no service for Tryton

This is the case for many packages. The good news(?) is that you can
create your services your operating system config, and if you can get
them working acceptably, send a patch.

I think the friction on how to write a service is not in the semantics

It's more menial

See above: there's no documentation for assembly. Everything I've
learned was from studying the source.

As I'm writing this, I noticed someone replied to my toot
(here )

as you can see, they also noticed a difference in the experience
between creating home services and system services

I wasn't following this thread at the time, and didn't know whether
you were talking about shepherd services or not. In terms of shepherd
services, yes, there's quite a difference (maybe it would be a good
idea to define a generic service type, akin to
‘home-shepherd-service-type’ that only extends the
‘shepherd-root-service-type’ with a shepherd service?). As I said
there, if you have questions, feel free to ask! I may not be able to
write the cookbook/how-to that I want to, but I can try to answer
questions and share what little knowledge I do have with a fellow

However, for the types of services you'd add to the ‘services’ slot of
the home/operating-system config, I don't think there is much of a
difference; or maybe none at all.

Guix is being successful, these days but that's an exception in the
free software world and more so in the GNU world

I'm happy that Guix is growing, and more people are using it and
adding to it (I'm a recent adopter, too!). But I think it's still a
niche distribution, and it shows in things like the documentation, the
builds breaking, old or broken packages, etc.

I want to be very clear on this point, though: I don't blame anyone
for this, and I don't mean to downplay anyone's work because of these
problems. Creating and maintaining a distribution, especially one as
different as Guix, is a tremendous amount of work, and it's frankly
incredible how well Guix does on such a small core crew. It's simply
impossible to have the same level of polish as a bigger, more
established distribution, with an order of magnitude (or more)

I have a job now (and it has to do with Odoo), I also train in a gym, I
like to spend the free time I have on the beach (as it's evident from
my presence on the fediverse) so I don't know it's not like I have any
slots to assign to attempt this

We're, all of us, in a similar situation, and we're few in number
(relatively), with a lot of work to do. I think this explains the
state of Guix more than anything else.


Jonathan McHugh

reply via email to

[Prev in Thread] Current Thread [Next in Thread]