unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Brian Cully via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org>
To: catonano@gmail.com
Cc: Blake Shaw <blake@sweatshoppe.org>,
	Ricardo Wurmus <rekado@elephly.net>,
	Andrew Tropin <andrew@trop.in>, Josselin Poiret <dev@jpoiret.xyz>,
	GNU Guix maintainers <guix-maintainers@gnu.org>,
	guix-devel@gnu.org
Subject: Re: how to write services (was: Re: Teams)
Date: Thu, 16 Jun 2022 09:09:48 -0400	[thread overview]
Message-ID: <87tu8krafm.fsf@ditto.jhoto.spork.org> (raw)
In-Reply-To: <d63c9978ce200645c8ceb3e661fa6637bd905852.camel@gmail.com>


catonano@gmail.com writes:

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

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 choices.

> 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.

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 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, besides.

> 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
> involved
>
> 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
> https://tines.spork.org/objects/a2ff7376-c9a2-4bbd-9307-a5374571edb4 
> )
>
> 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 neophyte.

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) contributors.

> 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.

-bjc


  parent reply	other threads:[~2022-06-16 13:44 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-04 12:07 Teams Ricardo Wurmus
2022-06-04 13:00 ` Teams Maxime Devos
2022-06-04 13:19 ` Teams Ekaitz Zarraga
2022-06-04 14:50 ` Teams Tobias Geerinckx-Rice
2022-06-04 15:52   ` Teams Maxime Devos
2022-06-04 15:56   ` Teams david larsson
2022-06-05  9:10   ` Teams pelzflorian (Florian Pelz)
2022-06-07  4:11     ` Teams Thiago Jung Bauermann
2022-06-05  8:19 ` Teams Josselin Poiret
2022-06-06 21:21   ` Teams Ludovic Courtès
2022-06-14 11:31   ` Teams Andrew Tropin
2022-06-14 18:52     ` Teams Blake Shaw
2022-06-15  6:19       ` how to write services (was: Re: Teams) catonano
2022-06-15 13:53         ` Ricardo Wurmus
2022-06-15 17:01           ` Blake Shaw
2022-06-15 17:32             ` Maxime Devos
     [not found]               ` <CAKjmbcA56WL8ude232fz_5_G9U2RfoNNf4gqMHu5tft5kMbjFQ@mail.gmail.com>
2022-06-15 22:04                 ` Maxime Devos
2022-06-15 22:13                 ` Maxime Devos
2022-06-15 22:28                 ` Maxime Devos
2022-06-15 23:20                   ` Blake Shaw
2022-06-16  8:27                     ` Maxime Devos
2022-06-16  5:14             ` catonano
2022-06-16  6:46               ` Ricardo Wurmus
2022-06-16 13:09               ` Brian Cully via Development of GNU Guix and the GNU System distribution. [this message]
2022-06-18 11:53                 ` how to write services indieterminacy
2022-06-18 12:23                   ` Maxime Devos
2022-06-18 13:33                     ` indieterminacy
2022-06-15 10:53       ` How to write a service (was: Re: Teams) catonano
2022-06-05  9:31 ` Teams Lars-Dominik Braun
2022-06-05  9:51 ` Teams zimoun
2022-06-05 10:00   ` Teams Julien Lepiller
2022-06-07 17:49   ` Teams Efraim Flashner
2022-06-05  9:51 ` Teams Andreas Enge
2022-06-09  4:39   ` Teams Eric Bavier
2022-06-05 10:30 ` Teams indieterminacy
2022-06-05 17:59 ` Teams Mathieu Othacehe
2022-06-06 21:26   ` Teams Ludovic Courtès
2022-06-06 14:12 ` Teams Maxim Cournoyer
2022-06-07  0:28 ` Teams Ryan Prior
2022-06-07 19:06 ` Teams Vagrant Cascadian
2022-06-08 21:30   ` Teams Ludovic Courtès
2022-06-09  2:21     ` Teams Thiago Jung Bauermann
2022-06-09 19:28 ` Teams Arun Isaac
2022-06-13 13:38   ` Teams Blake Shaw
2022-06-13 22:33     ` Teams raingloom
2022-06-21 15:21 ` Teams: first draft list zimoun
2022-06-21 17:28   ` bokr
2022-06-21 22:21     ` zimoun
2022-06-22  6:56       ` Efraim Flashner
2022-06-22 16:19         ` bokr
2022-06-22  7:59   ` Ricardo Wurmus
2022-06-22  9:19     ` zimoun
2022-06-22 12:30       ` Josselin Poiret
2022-06-22 13:10         ` Maxime Devos
2022-06-22 13:49     ` Ludovic Courtès
2022-06-22 14:18       ` Blake Shaw
2022-07-01 10:28       ` Ricardo Wurmus
2022-07-01 17:36         ` Liliana Marie Prikler
2022-07-01 19:08           ` Ricardo Wurmus
2022-07-03 13:04             ` Teams: please add yourself to etc/teams.scm.in Ricardo Wurmus
2022-07-03 14:51               ` Andreas Enge
2022-07-01 20:53   ` Teams: first draft list Leo Famulari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87tu8krafm.fsf@ditto.jhoto.spork.org \
    --to=guix-devel@gnu.org \
    --cc=andrew@trop.in \
    --cc=bjc@spork.org \
    --cc=blake@sweatshoppe.org \
    --cc=catonano@gmail.com \
    --cc=dev@jpoiret.xyz \
    --cc=guix-maintainers@gnu.org \
    --cc=rekado@elephly.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).