From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 8dPOGl0cNGFqAQAAgWs5BA (envelope-from ) for ; Sun, 05 Sep 2021 03:24:45 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id CGvgFV0cNGEpXQAAB5/wlQ (envelope-from ) for ; Sun, 05 Sep 2021 01:24:45 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id E661A1C7A7 for ; Sun, 5 Sep 2021 03:24:44 +0200 (CEST) Received: from localhost ([::1]:36864 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mMgtn-0007qO-TE for larch@yhetil.org; Sat, 04 Sep 2021 21:24:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54086) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mMgte-0007q2-CK for help-guix@gnu.org; Sat, 04 Sep 2021 21:24:34 -0400 Received: from mail-qt1-x831.google.com ([2607:f8b0:4864:20::831]:35781) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mMgtc-0004rr-Qx for help-guix@gnu.org; Sat, 04 Sep 2021 21:24:34 -0400 Received: by mail-qt1-x831.google.com with SMTP id t9so2663945qtp.2 for ; Sat, 04 Sep 2021 18:24:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=BP7jOEnTxWH+I//tIU+qsDCEFvpPnWZRxVqMLEjEXAo=; b=euSPOheqUyYbG82rAoymqQEEduuCgV8nNByYe/qflecGf3ZupZPSXeDGcufeXWf/HA mvvLMHJwtZC8xAOo2dXTrr018k6SGZtFCSZfkXdyw8oqqszl1XGuih8Cv/QGQHv3GMYS YD6oA2zge071/02/W/eJnGZD2OaDHpDAmDdLWKUhAtouFNcQPdgkGGPu5ZdJbMOyPxhA 8YcWEHIcQLPwzlaJG92/ck42L4L4CBw7H+lKb4uurqOGhQHz38VejAoqaxiZ7OIciz1q ZOuy2aJ2IR8D3KMR5kaL7ZmapZFJaDHJ+SXEpodRPkoNg0kgqwKfXVkKDPP0I7oINMTi Fylw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=BP7jOEnTxWH+I//tIU+qsDCEFvpPnWZRxVqMLEjEXAo=; b=sKVPW8tPQcCbtrGhiCPB6B1iPsVmLYXFZfEvVHW5mR5/Ut+K8DvHqGGBM9vg0vboSv gSScJzb68TJCck0rK/WnEQkXZ5b+dZmE6n28x9+HxwESdgpoJZcgRFJN6DnN33eBHXy3 VdC9jTiBz6aQ+RIpmiuFouTXk5GDXVQ8BbPaeNHIiphgVZPsXjNd7jnulkPEw4nFMY/d aiLEps0ufNrOdqvcmyZmEN45D4yu0vOvttGgAX6AXPla1yWl8RHy5Ra+UuGr2z5ckHLB y9Z0hhphzv7pJuwysIYN+5/MT9vGXtB/16fTDaAyG0VoTbkRiBCJkXSDdYOA7VMIPovi iU+g== X-Gm-Message-State: AOAM5310IrOO1GBP/brR5qrevYUnRklTljSjXi57tW/KIfYLlt/uXVA3 csnPSM+TUTgcxjIRFlhzu9pZc26YAlI= X-Google-Smtp-Source: ABdhPJxSBWBopna7HM9J8YRBeaHUocEDGGSel1uBzZXnmows8VczfOPx5hbG/1R233sKEu8j+3rBpA== X-Received: by 2002:ac8:5f86:: with SMTP id j6mr5424708qta.11.1630805070186; Sat, 04 Sep 2021 18:24:30 -0700 (PDT) Received: from hurd (dsl-10-146-76.b2b2c.ca. [72.10.146.76]) by smtp.gmail.com with ESMTPSA id v14sm2927052qkb.88.2021.09.04.18.24.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Sep 2021 18:24:29 -0700 (PDT) From: Maxim Cournoyer To: phodina Subject: Re: Service development workflow References: Date: Sat, 04 Sep 2021 21:24:28 -0400 In-Reply-To: (phodina@protonmail.com's message of "Sat, 04 Sep 2021 14:53:56 +0000") Message-ID: <87eea3byr7.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::831; envelope-from=maxim.cournoyer@gmail.com; helo=mail-qt1-x831.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: help-guix Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1630805085; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=BP7jOEnTxWH+I//tIU+qsDCEFvpPnWZRxVqMLEjEXAo=; b=TtNPuDCl/MpivTXqzB5g/PRykCy17AJZOaDR9VCfFK1YSDWIw4+Z/in4wtyKKr8f0AcObM c94GJCuocpaIX0eWksoANpG5DF9F8qEezENM8fui8EytzNfQjrCF+BpQO9m4+RkpTX4OT6 uMJ4E46NoxluELSEn/t/QM/6FHeInmI1FqI1bT5D48Xso5QuC1bpD9uj2q4uaPV6tBzHyw CxvPycv1n3oMrGU06/+4p3vz208sOpdaDSYnAF9jbe3aqJcvmIk7TN+ErhYg8cVfb1R9px BU0d4AO+a2F4PW5ZQhLcWjvnekHUpLz2Sp33D/Aw7J8vRS0lJBkT+apVQ/KEzg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1630805085; a=rsa-sha256; cv=none; b=nCrZy9j5tB17G765VLvelW6T5OnaeWmVTgfb3xsZ/fojHVYB6IJk9Z6rrUc+S6XO6xRrAw p65pACloESobNXCuPECnci4hwTy6fzWuB7UUA9run7l4vtt2VJ0qrGfwDKJGgSJeKFEb5k NKQ9A2rkRjIFZMNV++2mWxSRHPJF4Dz70ZnjCaSmSmTRPSKk010wInUGEYeUtbWpLYR0h7 Gu6W9qEChrqJ47vwHqu5XFdplqslarULlLHvcxKcTEA+KBdzDmi+sAONENzEF/bRsEjwX1 vyx/9D9GipXtp8n33bHMHa0aIXiWTn+xYQlBHZWQHk+jZsSTx7Fyw7jzWILXSQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=euSPOheq; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-Migadu-Spam-Score: -1.62 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=euSPOheq; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-Migadu-Queue-Id: E661A1C7A7 X-Spam-Score: -1.62 X-Migadu-Scanner: scn1.migadu.com X-TUID: GDGQHhvtO0P8 Hi, phodina writes: > Hi there, > > I'm curious what development workflow do you use for implementing a service. > > Here's mine: > > 0 define a new service in my channel services directory > 1 add this new service in definition of OS > 2 use guix system container to build container image with --load-path > pointing to the local channel with the service > 3 run the newly created container > 4 check with the herd status the service is running > 5 check and interact with the service itself > 6 iterate till satisfaction > 7 git & peace :-) Due to bugs in Shepherd services having the potential to hang Shepherd, and because such bugs are critical to catch, test driven development seems to work best. It also provides a faster iteration loop that the above flow. I wrote a jami-service-type recently, and that was a very good example of a service that I needed tests for, as it was very tricky to get all the parts right and needed a lot of debugging. The operating system to test could be made a 'guix system vm' and I'd SSH into it at times to manually test things. The (huge) commit for jami-service-type was 10f554700c417b84c22c56fdd007567a52c45d75; you can refer to it to see how I implemented the tests. The other service modules are of course very useful too! Hope it helps! Maxim