From mboxrd@z Thu Jan 1 00:00:00 1970 From: ng0 Subject: We need an RFC procedure [Re: Services can now have a default value] Date: Sat, 22 Apr 2017 00:46:34 +0000 Message-ID: <20170422004634.4oedqmsebpctjqk4@abyayala> References: <87shl9qo7h.fsf@gnu.org> <877f2go3wn.fsf@zancanaro.id.au> <877f2gksbs.fsf@gnu.org> <8737d32abz.fsf@zancanaro.id.au> <87bmrr4ghh.fsf@gnu.org> <874lxjnzyx.fsf@zancanaro.id.au> <87bmrp8lk6.fsf@gnu.org> <8737d1nxbd.fsf@zancanaro.id.au> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52543) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d1jCH-0002hB-GC for guix-devel@gnu.org; Fri, 21 Apr 2017 20:46:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d1jCE-0002Hw-Cl for guix-devel@gnu.org; Fri, 21 Apr 2017 20:46:45 -0400 Content-Disposition: inline In-Reply-To: <8737d1nxbd.fsf@zancanaro.id.au> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Carlo Zancanaro Cc: guix-devel Carlo Zancanaro transcribed 2.2K bytes: > On Fri, Apr 21 2017, Ludovic Court=C3=A8s wrote: > > A =E2=80=98define-service-type=E2=80=99 macro or similar could genera= te either code the > > current framework (with and and > > ) or for SRFI-99-style records if we later to go t= hat > > route. > > > > So I think we should start by designing this macro. > > > > How does that sound? >=20 > Great! I think that it's sensible to not break things for now, and we > should be able to design the macro to do that. >=20 > I'll have a go at it later today and see what I can come up with. (I'm > not very familiar with guile/scheme libraries, but I have played around > a fair bit with macros.) >=20 > > Well I don=E2=80=99t know, perhaps in some cases it might make sense = to > > automatically instantiate things depended on. The advantage is that = as > > a user of the service (exim for instance) you don=E2=80=99t have to b= e aware of > > the services it expects (improves separation of concern). > > > > So you could blissfully write just: > > > > (cons (service mediagoblin-service-type) > > %base-services) > > > > and behind the scenes it would add an nginx instance, an mcron instan= ce > > with a couple of jobs, a rottlog instance, and so on. > > > > WDYT? >=20 > My main concern would be making sure that all of our services have safe > defaults that can be extended. It may lead to surprising outcomes if we > have services spun up which do more than you expect. As an example, if > someone requests exim to start as a dependency, we should make sure it > doesn't turn you into an open relay by default. >=20 > Carlo On the matter of 'not breaking things': I want an formal, publicly tracked (not *just* on the mailinglist) RFC (l= ike in Rust or similar projects) procedure for all things which can break currently existing configurations. Introducing these changes wo= uld require to document properly what needs to changed so that people can rea= d about how to fix the mistakes. Right now to me it seems as if people are mostly talking about such devel= opment on IRC or offlist and then the changes are applied after a QA which sometimes takes= a bit of "don't break stuff" in consideration but is never able to grasp the full = effect of breakage. The current error output of Guix is not enough if you simply want to do an update of a system. If you take a look from the perspective of someone who just wants to administrate a mailserver, and we break their config by a simple change of how things are written, the resulting error when you run guix system r= econfigure requires some understanding of Guix and Guile. And please don't derail this by saying that it's currently beta status. I= f we are aiming for general purpose and server adoption, we should look at problem= s and solutions from all perspectives. --=20 PGP and more: https://people.pragmatique.xyz/ng0/