From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 8610 invoked from network); 17 Oct 2022 13:11:50 -0000 Received: from alyss.skarnet.org (95.142.172.232) by inbox.vuxu.org with ESMTPUTF8; 17 Oct 2022 13:11:50 -0000 Received: (qmail 21031 invoked by uid 89); 17 Oct 2022 13:12:13 -0000 Mailing-List: contact supervision-help@list.skarnet.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Received: (qmail 21024 invoked from network); 17 Oct 2022 13:12:13 -0000 From: "Laurent Bercot" To: supervision@list.skarnet.org Subject: Re: s6-rc user experience question Date: Mon, 17 Oct 2022 13:11:46 +0000 Message-Id: In-Reply-To: <20221016160228.bypf5lyje6wfvbnc@localhost> References: <20221016062822.ohngiq54sr2qhti3@localhost> <20221016160228.bypf5lyje6wfvbnc@localhost> Reply-To: "Laurent Bercot" User-Agent: eM_Client/9.1.2109.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable >Perhaps I can offer a few suggestions how to improve usability: > - combine compile + svscan on empty dir + init steps into one, like > `s6-rc init source_dir` and it does those steps under the hood. No, because these are operations that are ideally done at different times. - Compilation happens "offline", before you (re)boot the machine. - s6-svscan is run independently from s6-rc, typically very early during the boot sequence. (Ideally it's process 1.) In any case the preexistence of a supervision tree is assumed by s6-rc, so spawning one as part of an s6-rc command isn't good workflow. - Initialization happens when the service manager is ready to run, which means when the machine is online and already has an s6-svscan running. Combining these operations is only useful if you're doing things in a very convoluted, suboptimal way. > - maybe instead of creating file based database take on sqlite as a d= ependency and keep compiled + live state there? sqlite is > ubiquitous and very light weight. It can save the trouble of > inventing our own compiled database formats and folder strucutres The format of the compiled database is entirely orthogonal to the usability. Adding a dependency to an external package would do exactly nothing to improve the UX here; it would just make the code bigger, slower, more complex, harder to maintain and less secure. And that's without mentioning that a relational database is not at all the right structure for the kind of data that s6-rc deals with. Not a great trade-off, if you ask me. However, there's a change I can make that would immediately improve s6-rc's usability: since it's largely a perception issue, changing the vocabulary from "s6-rc-compile" to "s6-rc-snapshot" and "compiled database" to "opaque snapshot of the set of services" would be a good idea. It would spook fewer people, and send fewer people into red herring trains of thoughts. :) >What are your plans / thoughts on s6-rc redesign? It's ongoing. It's difficult, and I always find a myriad of things to do to distract me from working on it, so it's going (very) slowly. But it's always lurking in the back of my mind, and there isn't a day that I don't wonder what I have gotten myself into. The initial call for funds is still readable here: https://skarnet.com/projects/service-manager.html -- Laurent