guix-devel
[Top][All Lists]
Advanced

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

Re: how to create and test a new service definition


From: ng0
Subject: Re: how to create and test a new service definition
Date: Sun, 14 May 2017 09:04:11 +0000

On Sun, 14 May 2017, Catonano wrote:

2017-05-13 22:06 GMT+02:00 Ludovic Courtès <address@hidden>:

Vincent Legoll <address@hidden> skribis:

The best way to test your code is to write an ‘operating-system’
declaration that uses the new service and to instantiate it in a VM with
‘guix system vm’.

Should that be working properly (out-of-the-box) when you're already in
a qemu VM (recursive virtualization) ?

I ask because I'm getting:

[...]
ERROR: qemu failed "qemu-system-x86_64"

What were the lines above this one?  This tool tries to use KVM if it
seems available.  Maybe in your case it “seems” to be available (as in
/dev/kvm exists) but is actually unusable?

Once you’ve done that, you can also write an automated test for the new
service; see <https://gnu.org/s/guix/news/guixsd-system-tests.html>.

I'm far from there, I have a *really* hard time getting back to guixsd.
For
instance it took me very long time to find back the GUIX_PACKAGE_PATH
env var. This looks under-documented, or I don't understand how one is to
work on custom or new packages, etc...

‘GUIX_PACKAGE_PATH’ is documented at
<https://www.gnu.org/software/guix/manual/html_node/Package-
Modules.html#index-GUIX_005fPACKAGE_005fPATH>.

The workflow for defining packages is described at
<https://www.gnu.org/software/guix/manual/html_node/Defining-Packages.html
,
and that for contributing them is at
<https://www.gnu.org/software/guix/manual/html_node/
Submitting-Patches.html>.

There’s probably room for improvement though.  What changes/additions
would you suggest?


Let me chime in here: I'd suggest to state the workflow or defining
services, as the one or deining packages is stated

But I'm not thinking about how to define and use The scheme structures. The
examples are enough for that.

I'm thinking about things like how to deal with qemu, if you want to test
your services in a vm

Is there any other way to get your feet wet with services ?

George suggested me the trick to link a checked out master branch to
.local/guix/profile (or maybe it's the other way around: it's liinking
.local/guix/profile to a checked out master branch)

Is anyone using this to work on services ? How, exactly ?

Thanks


My current way of testing services is usually on bare-metal.
I had bad experiences with one network based service (gnunet)
and it being terrible to debug, so I took the QEMU out of there.
I test things this way which will not break my current generation like darkhttpd or the gopherd I submitted as a question.
Other, potential boot breaking, stuff I test on other systems.

This is also because I never really figured out the best way
to run network based services in qemu in Guix. I have no issues
with qemu, but on Guix many months back it behaved unlike the
qemu I knew from Gentoo.

There is lots of room for services in the documentation.
There should be a "contributing services" section in chapter 8,
currently I learn this the way I learned to do packages, by
repetition and failure until I see how to debug stuff.. which is already helping since I am starting to see patterns for debugging with darkhttpd (it helped that it simply worked and then randomly broke in further attempts).




reply via email to

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