From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id cBeNJ5R7O2GvOwAAgWs5BA (envelope-from ) for ; Fri, 10 Sep 2021 17:36:52 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id EHNFI5R7O2GSNQAAbx9fmQ (envelope-from ) for ; Fri, 10 Sep 2021 15:36:52 +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 138F1F3F2 for ; Fri, 10 Sep 2021 17:36:52 +0200 (CEST) Received: from localhost ([::1]:42768 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mOiaA-0001QQ-TI for larch@yhetil.org; Fri, 10 Sep 2021 11:36:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55440) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mOiZo-0001Nq-2p for guix-devel@gnu.org; Fri, 10 Sep 2021 11:36:28 -0400 Received: from mail-il1-x12e.google.com ([2607:f8b0:4864:20::12e]:33775) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mOiZm-0000dV-Ht for guix-devel@gnu.org; Fri, 10 Sep 2021 11:36:27 -0400 Received: by mail-il1-x12e.google.com with SMTP id z2so2489558iln.0 for ; Fri, 10 Sep 2021 08:36:26 -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:content-transfer-encoding; bh=9tyzK8f92xzP1gj21s9djN1sdkP5Bi6naFJqP9jKbIQ=; b=ocI5ZYQxAEyKZG0M44GalhTcjaTwl0vC3e3u7caXRAlzXLrv1ktU/kUaTdbw29v0jk +Ags1rDeAPaCaFlO4b3r8YDsQun6CRvevyNFrkG6Pnwj1Grmb67Fx9bActBgBi/E7GR3 +SBCOt+Q1PKL3tuS48bi3eg593RpVkOODD+tdrFbBnvNu4Mxj1mh2So/Yq/Qlj+mk4X1 I22QDWGTictXpGFzVlBS2TG6U1QUjCrXcusCW8p609VWSlNf1FbJddqW5uOyFBT2iL4U XOvnfm5z6trLZ1wM8tc1zvARTdR2wQ5DQpSVrOFfNqBkP3AL78/rxVbrwpRov+R5NwHr WV+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=9tyzK8f92xzP1gj21s9djN1sdkP5Bi6naFJqP9jKbIQ=; b=2M/Lt85sKyUnoosVYGbUIffyCrlyFpKlP2GHMfHZm+2qtcN11R/wWfnL6v17X/7OoY sAbTNKw61KV6oybDQwZgS/ILQYyUafcZ00EDzHNOWufTWnA5f1Q/ILGCeSV6vCvcnEir EZSHm8zD5Xj3+Tknw6iS3jinWlQECPO8RbyGxAe85ssWZFQyRwgNpe04ybVX77B8hNbX 7D0p4U0+5thJg1eAARVIDUzJNoTAaJPPhYg7K6Z38DWpOUGojSg/Nbg1zYzawCJKmr/R 8ywM2FufmQdYn7+Tvn9SydnxFySyABaFhdGZ6qfFpmwLnMGjhqxmTD5VQpdJsgYxRPlI 26tg== X-Gm-Message-State: AOAM531sItdYmDx6/Hex2LWd8HjrX0Jda5y+j0khBc6lnbMdtij1XA7O WAKeqp/QeoVxdSruvTYvL0dDLQS6F6I= X-Google-Smtp-Source: ABdhPJxbmBQMU4T9FgyDriqWAdXIEEeS8HjpEV1HI4JGNI65rPrOh85SB8yIrt5yLIxcYzc+07/wuQ== X-Received: by 2002:a05:6e02:1bab:: with SMTP id n11mr7047994ili.85.1631288185302; Fri, 10 Sep 2021 08:36:25 -0700 (PDT) Received: from washu-v4 (172-221-246-205.res.spectrum.com. [172.221.246.205]) by smtp.gmail.com with ESMTPSA id r18sm2671323ioa.13.2021.09.10.08.36.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Sep 2021 08:36:24 -0700 (PDT) From: Katherine Cox-Buday To: Jack Hill Subject: Re: Sniping "guix deploy" References: <20210910014504.77da1263@tachikoma.lepiller.eu> <87v9393wgy.fsf@gmail.com> Date: Fri, 10 Sep 2021 10:36:23 -0500 In-Reply-To: (Jack Hill's message of "Fri, 10 Sep 2021 01:07:47 -0400 (EDT)") Message-ID: <87mtok4f48.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::12e; envelope-from=cox.katherine.e@gmail.com; helo=mail-il1-x12e.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: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1631288212; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=9tyzK8f92xzP1gj21s9djN1sdkP5Bi6naFJqP9jKbIQ=; b=NGUVxsLQQuISvdB7OOnXBD1dwDRe1MxVi2ztIq3gFeJ50eAL1vMFp23v/zXVzybe7gJUzi BZcgBYTXGqrZbTKSVsJrqQzjUk3SuvP30FzrRxeaFAFXLSm8iZ8RyaYk1N/gsEYQX3usKu sW579GmmbYSIKFIAqYHJxhxynITeNcZEenAycjWDaYoYPcZWzzI25uW/u2iLR9TfQKSG99 NS7sk0GBJMR+dLFHxhOE/L4I4oDVvhExiAZnLUgSx/jRa1cvIN750sOnkWkrRZ3YHWYt1U 4hdW3Vg8/eDb+aF7Ot8cRJxCkKb7q0V20UMPGAf9ADc06oAyBkUD4h4arhUqhw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1631288212; a=rsa-sha256; cv=none; b=ZtujPfazv8DHk6NFHHwVIeq0WDEDTwHHmJkMQp4m7FYoos1dvUwX0HJ1D5acKXnOKk6K3O HZO6eydQ+afT7UwCm18wtRHxenTCyaUntF/kOmC5PkSh9cGwsY6Bk3+G/THTy9qzws91VX IT4Pf0YM2MvKmNbd3YHl5PnYwsBqcwem7e46N3l2W9WAp8/T8jfTyvIhxCBwnPxjlEvMXq 3TRM2dp79aDbX3xYomrJXbedq5lmABRpyZhD1vQdbCD8FJbJHxBUioOtab0SVbWTzsDTnz +AqueEUbTjcIhg2K6pcm5p+bmKNgWNtG+/8KKe6rFylOXasmznOkNh2uA1wU9Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ocI5ZYQx; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -1.61 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ocI5ZYQx; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: 138F1F3F2 X-Spam-Score: -1.61 X-Migadu-Scanner: scn0.migadu.com X-TUID: R05u4xBUCA3c Jack Hill writes: > I know that CoreOS at one point took cluster-wide knowledge into > account when performing upgrades (so as not to take down all replicas > at once for instance). It and similar projects are probably too far > afield to take implementation ideas from, but some of the high level > concepts might be worth taking inspiration from. Yeah, good point. There are probably a lot of other primitives here worth implementing. I incorrectly scoped my statement to the threat-model given. > Another higher level mechanism that we might need for deploy is some > way to do IO when building operating system definitions. Something > along the lines of how "facts" are handled in the various > configuration management tools. I see this as being useful for doing > things like reconfiguring a system, but leaving the disk partitioning > how it is now without having to to declare what the partitions are > ahead of time.* In Scheme, there is nothing stopping us from doing IO > at arbitrary points in an operating system definition, but as this > takes away from the declarative nature of the configuration, having > shared mechanisms for doing this in a clear, maintainable, and > principled way could be very useful. Maybe a blanket #t could mean "leave this alone" when specified for an operating-system field? > Late night brainstorming is fun. That it is! And though this discussion is fun, I think it's very premature. There are a handful of bugs[1] open for deploy. One is critical[2], and I just filed one[3] because deploy can share state/provinance between all machines deployed together. And I'm not sure if it has someone actively working to make it better? As always I find myself wishing I had more time to contribute. > * I suppose file systems are the most obvious place where ugly state > like this can sneak its way in since they are essential giant > buckets to hold state, which is probably why this example has been > running around in my head. While it might be nice to think about > eliminating all state that doesn't seem workable, but maybe we come up > with some way to represent the state declaratively =C3=A0 la Haskell's IO > and State monads. I am very fond of "trapdoors" in systems which are constrained/rigid by design. It gives you all of the benefit of the constraints, but leaves a way for users to work around bugs, or play with things until they get it right and can bring it back into the fold. [1] - https://issues.guix.gnu.org/search?query=3D%22guix+deploy%22+is%3Aopen [2] - https://issues.guix.gnu.org/46756 [3] - https://issues.guix.gnu.org/50468 --=20 Katherine