On Fri, Mar 19 2021, Joshua Branson wrote: >> Currently there seems to be two main ways to do this, the first one >> is the define one or more records for the configuration field of a >> service using `define-record-type*`, see the tor service in (gnu >> services networking) for example. The other method is to use >> `define-configuration` to declare the configuration fields of a service, >> see the transmission service in (gnu services file-sharing) for example. > > I believe that the first method via define-record-type* seems to be the > recommended method to do this. I only say that because I feel like more > services are defined that way now. :)
I decided to use `define-record-type*` since the service for mcron is pretty simple because it is already configured in Guile. :) > I've been working on a sway service and an endlessh service in my > hacking videos > (https://video.hardlimit.com/accounts/joshua_branson/video-channels). Cool, great to see more videos on Guix, and it's on PeerTube. > I was running into issues, where I could compile the service, but > trying to reconfigure my system would result in errors. The Guile compiler seems to miss quite a few errors in my exprience too. > The errors messages were a little vague. I will also say that the > better method I have found in writing a guix service is to > > 1) write the service as simply as possible first. I personally would > copy the simplest service that you can find in gnu/services/ and modify > that via a M-x anzu-query-replace-regexp. If re-configuring works, make a > commit. > > 2) If possible, containerize the service. If it works, make a commit. > > 3) Now start adding in all the features you left out before. Thanks for the suggestions, I will take them into account in the future.