From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.6 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 30CF3538FB; Tue, 6 Dec 2022 21:14:45 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id AFE4C538EB; Tue, 6 Dec 2022 21:14:42 +0000 (UTC) Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by atuin.qyliss.net (Postfix) with ESMTPS id CA2B553951 for ; Tue, 6 Dec 2022 21:14:38 +0000 (UTC) Received: by mail-ed1-x52d.google.com with SMTP id m19so22184620edj.8 for ; Tue, 06 Dec 2022 13:14:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unikie.com; s=google; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=3xhOJCrZsa4F8elpdsVvb7/KSiH7VnXzzro8DXcagUU=; b=LizWQzVS7mWpnIvarLlJ1v41e0i6ySVmYmUAoOWPWtvcj2ji7YZZ4F98iIvBIbnx73 Y207ep6KiMp5h7jYiHau3unL628DqBUsX9A5lDV6A/S/a/CZ+mjQ5boe+U9IXJjYHH1c WCoC0vkORGznjrL534jg1ka6OTOlbEIXwStEfu73iIMt52pjHriuxrE+dNsPfW2c8cZX yZYhZt1hH8I2fobRHZFO2JQeehk1Vbplg4TTPuHp0Eksa2Xv0RuHoJMG2dzdEKjHtUyy u2wPmwmOKDpIS/urwrEtFDH4Axga3+ufgoePpjl1x7R6X4dS6REVTRmjsOxHjn8EglC9 IYFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=3xhOJCrZsa4F8elpdsVvb7/KSiH7VnXzzro8DXcagUU=; b=zjPnaLEJ/2VvXhGgk2ham7ukf3GhNR77I8iyXXJd/swaMl9z3yadAMASo0SHgPGNVE +37umFsL76C/eS+nRy1S1zjAoyDLoIGjtDFnKW2KWEDFuYntanXukeyP3VgcxKrqk7HS QVFid03gdTjGMgcc7UtLlpFy7aYx70upT9qzshpr1YcedC8VrMbBT1yuPOmvBqcU2WEt tmLmPgMDdrZK3duGWrXpmEOrxXVa/QLvEdY17EcMObGcDpnegwCeqZYZevFT/2XJ5WxF h3SEn8FG1H7tryL3TWPpUvbTWjNxpSf8Kid48HC5WUeUhzazffbjdkg9+zc7Mu/xZ3Pn bs5A== X-Gm-Message-State: ANoB5plWCA/rsiUlILXUo25qJ+MZPtoFCiX/kydzrqyAiWbQ+0M32ivU 4oGlTg6cGbi9zrOn/cjWkQHxFw== X-Google-Smtp-Source: AA0mqf6x26483WU+dfymPYhwlj/jGiQrXMELLHBLj1FN61/4sKV8VDjk572Fq8YFZh/QJxT1eHMd3A== X-Received: by 2002:aa7:d417:0:b0:46b:203:f389 with SMTP id z23-20020aa7d417000000b0046b0203f389mr40133193edq.303.1670361277940; Tue, 06 Dec 2022 13:14:37 -0800 (PST) Received: from x220.qyliss.net (p54b8e1f2.dip0.t-ipconnect.de. [84.184.225.242]) by smtp.gmail.com with ESMTPSA id g13-20020a170906538d00b007c0d5b181absm4582554ejo.94.2022.12.06.13.14.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 13:14:37 -0800 (PST) Received: by x220.qyliss.net (Postfix, from userid 1000) id C7DDF2F6; Tue, 6 Dec 2022 21:14:36 +0000 (UTC) Date: Tue, 6 Dec 2022 21:14:36 +0000 From: Alyssa Ross To: Michael Raskin <7c6f434c@mail.ru> Subject: Re: Developer-friendliness Message-ID: <20221206211436.d7qnzgfkaijjhcz3@x220> References: <20221206203148.osqflgwjty2wmr5s@x220> <20221206203148.osqflgwjty2wmr5s@x220> <20221206152011.lhk7jc64nqtkd7xo@x220> <20221206171022.5kwkddpjet3q7ks4@x220> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="lrpcbwt6tmsvuxui" Content-Disposition: inline In-Reply-To: Message-ID-Hash: RWLXWNKHCGCFKX6BSASJVPNJNU6AQKJ5 X-Message-ID-Hash: RWLXWNKHCGCFKX6BSASJVPNJNU6AQKJ5 X-MailFrom: alyssa.ross@unikie.com X-Mailman-Rule-Hits: header-match-devel.spectrum-os.org-0 X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1 CC: vadim.likholetov@unikie.com, devel@spectrum-os.org X-Mailman-Version: 3.3.5 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --lrpcbwt6tmsvuxui Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Dec 06, 2022 at 09:59:22PM +0100, Michael Raskin wrote: > >> It may sound like religious point of view, but I strongly believe > >> that developers is the number one priority to support with Spectrum OS > >> now =E2=80=94 as easier and friendlier the OS will be to the developer= as > >> faster it will be delivered to the common users. It, from my point of > >> view, includes two main aspects =E2=80=94 ease of development giving t= he > >> developer proper =E2=80=9Cbricks=E2=80=9D (well encapsulated OS servic= es) and > >> examples, that coveres main use cases/use patterns of the operating > >> system. > > > >Yes, that's a compelling argument. I wonder if it would make sense to > >add some special configuration option for development, that would enable > >extra development tools and other goodies? (I often find myself adding > >strace=E2=80=A6) > > > >(I think they probably shouldn't be present by default, because then it > >could be difficult to be sure nothing was depending on them in future > >when it came time to remove them. But something that any given > >developer could set once and then always have developer stuff available, > >and toggle off when they wanted to test a production build, could make > >things a lot nicer.) > > Well, one could have VM generator functions, so that you can easily > generate a development-like VM or a reasonable-setup like VM or minimal > VM (without D-Bus etc.), and so the developers can just use the dev > version and always get the good stuff included? Yes, that's true. Just as a quick refresher, currently if you want to make a Spectrum VM, these are your options: - Lay out the VM configuration directory manually in the user data partition, and bring your own kernel/rootfs. - As above, but use the rootfs and kernel in /usr/img/appvm. These aim to provide a "standard" environment that can be shared between application VMs, so it comes with mesa, and in future virtio-gpu set up, as well as D-Bus, PipeWire, etc. It mounts a second block device that contains your application, as well as any dependencies not included in the base image, and then runs your application from there. This way, big stuff like mesa only has to exist once on disk. - Create an application VM that uses /usr/img/appvm with Nix, using vm-lib/make-vm.nix. So what we're missing is a way to create, with Nix, a VM that isn't based on the /usr/img/appvm "template". The reason we don't currently have such a function is that I don't think it's clear yet how it should work =E2=80=94 what should be customisable, what should be part of the base image vs. not, etc.? For a while, how make-vm.nix should work was similarly unclear, which is why it only recently came into existence. After I'd manually created my third or so application VM, it became clear what could be part of the base image, and what had to be customisable. Currently, we only have one VM in the tree that doesn't use the /usr/img/appvm template, netvm. Once we have more, I think it'll be easier to evaluate how a more minimal VM builder function should work. --lrpcbwt6tmsvuxui Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEH9wgcxqlHM/ARR3h+dvtSFmyccAFAmOPsLkACgkQ+dvtSFmy ccALlg/9GVjY981gGwrae+zA+UbvRXz9N9bDjW4z0Qb40xjlbWTDoMSQ4wOma1Qr 228DfGM5C7bMgia5ii8MhDIKsB8Y3DqSlpyi85f/G/+uxfxu6pfiVc310ooxoino yvGDcN35lxDzMzEKPnIBqmwYBhmbPkPIPaE7q+6O1ECJ2JdEmGL2UNttxHcSSpn3 r7u/RzmtqHIiVHP/SrSxPsNqlaBdewBFyWOIUwgswWZTxMYT05hTBNDIi/p1j+p3 rcf8LR8y//54l3cMR7rzX5GeezIFyL6onnFlyWynnMsbr2QMwdkPtGsP/pU7iY0R NGMQ8PJFmNh/WXlNn+cH92NdVoyPZ6i9YcGJ10jtYcta/su8HGNkXc27DDSRwUpF nB1Ju1LR8Sqgz0iUGQDfuWSqwfm38CTxOep2LdBEs0l5QqUcJ0VghXd18PfpfvQL V9RnZZFSxSHclAhyvkvdLV3GnC3H9MjOIy6Obubuldu1cf98o5aQZjrd6Sn3LOjb Mm7d2etDGn/l7mCwRKXhmBjHVnLZRJ+8l10R9XdZ548uLLAH8+Pq9L+ZVqmp+aOl iagkYyNKjPV9ynOpcG8j3RKNMo9zNJkd85T6CyVfMPXN1xS7XPbwotDuw26iUgCE ccKY/bxPq9iJ2FVPqAs17lckLephr+paK5DlE0cmCxRcRGgmyJo= =tbxv -----END PGP SIGNATURE----- --lrpcbwt6tmsvuxui--