From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id YEmxIqr83l+QQQAA0tVLHw (envelope-from ) for ; Sun, 20 Dec 2020 07:26:34 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id gHd7Hqr83l+AUgAA1q6Kng (envelope-from ) for ; Sun, 20 Dec 2020 07:26:34 +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 CD9AA9403A6 for ; Sun, 20 Dec 2020 07:26:33 +0000 (UTC) Received: from localhost ([::1]:38158 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kqt6u-0006cq-ME for larch@yhetil.org; Sun, 20 Dec 2020 02:26:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52218) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kqt6B-0006cd-Qj for help-guix@gnu.org; Sun, 20 Dec 2020 02:25:50 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:35775) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kqt69-0003Qh-PY for help-guix@gnu.org; Sun, 20 Dec 2020 02:25:47 -0500 Received: by mail-wr1-x432.google.com with SMTP id r3so7475060wrt.2 for ; Sat, 19 Dec 2020 23:25:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:in-reply-to:references:date:message-id:mime-version :content-transfer-encoding; bh=oTzBRTcEFOPKU/tEYwiXC9h0qLkJ6fqeDj6d+4Du0nw=; b=ImT+aD1LeBOLSc0QJfX69jhOutA2mbvcwxq8NHgMx1qkgaV1Hac5UreGrfU+yUHTmk KSAgMMdSDH58T4AgWCZ87fOnUZIrxBxnA+rk6HYE2ZDYZq+Y9asrkgVJdU3TlRNkvvVA DBww3HbSPG/wtk98ovLYCG/FmrJOV+kliUBL4aBTErNUTLKnlgeoWEqoqPkpcE/hNhp4 SHdt/YkIYW8N144wYyNwxbaJRJjWLVyf/6ExYtvWi9OEvf3r3sl9nLx1f7yr/iCUVwJb NfVa0S/gC+PfRZDly8UFw1NC257fVoIDwgH6AvfUYyMP33L4+bmTFSWChwlW5cRskTWz t+LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:in-reply-to:references:date :message-id:mime-version:content-transfer-encoding; bh=oTzBRTcEFOPKU/tEYwiXC9h0qLkJ6fqeDj6d+4Du0nw=; b=D2wfnBu3z/BXD1Jflb7OeNUP3E8tyZLGgC268GguRVBby80MT4/iROqwUpk2IYe4EW TwPG3q6PvvT0/5p2Dne5amVt0mY23jHpqlS8xlms9z/gQCX98NGRc1lYw086i39cxUGA eS1emI/RSbCTt5si5FVdbzRa4n+SCAl/uh4PVO8RRW7HWm+ARRf5Esh8bTeIh68BRXJZ bGKU0681Z0wqhM2oL9pmyoq1LcD9FRKxv/fJUR9VBi49AEdPHozd9hNxhBnES1lotH9X IxHYKBr1wY3qWNSmSsV8Gc6NoC1g1Qv9DiJT5zZVFF+CSHAs8znIYYpY1CU1WB3V+CPe NhQg== X-Gm-Message-State: AOAM531WlDn1JrTPhj2C2RrSmAk9GFzCAKGMl79y+durmqodL+fQPJ/2 tX7cYwIAOc62ciLc8eLVm0b+WZ/w2uM= X-Google-Smtp-Source: ABdhPJzj7EKjRFpBfk/NNUAK/j3aiPvyOMN4++Cr1C0X9ZNfNR/FH4QDmBryN99rQ7X/QjAOTSuvlg== X-Received: by 2002:a5d:45d0:: with SMTP id b16mr12300972wrs.220.1608449143918; Sat, 19 Dec 2020 23:25:43 -0800 (PST) Received: from lili ([2a01:e0a:59b:9120:65d2:2476:f637:db1e]) by smtp.gmail.com with ESMTPSA id i7sm21796241wrv.12.2020.12.19.23.25.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Dec 2020 23:25:43 -0800 (PST) From: zimoun To: Ricardo Wurmus , help-guix@gnu.org Subject: Re: Emacs use-package: Guix backend? In-Reply-To: <87h7oim8ro.fsf@elephly.net> References: <87h7oim8ro.fsf@elephly.net> Date: Sun, 20 Dec 2020 08:24:46 +0100 Message-ID: <86y2htq6rl.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=zimon.toutoune@gmail.com; helo=mail-wr1-x432.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: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -2.01 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=ImT+aD1L; 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: CD9AA9403A6 X-Spam-Score: -2.01 X-Migadu-Scanner: scn0.migadu.com X-TUID: 5rDKql253SZp Hi Ricardo, I have similar workflow as Fredrik. Tiny more complement. On Sat, 19 Dec 2020 at 10:42, Ricardo Wurmus wrote: > I recently moved all my Emacs packages to a separate profile, which is > controlled by a manifest that=E2=80=99s generated from my init.org config= uration > file. I like this, because I can separately upgrade packages from my > main profile and keep my Emacs configuration self-contained. I have a manifest file containing the Emacs packages and related ones (notmuch, aspell, aspell-dict-, etc.) and a tiny/dumb Bash script to install/upgrade from this manifest. One key point is to also track the channels.scm (guix describe -f channels) to be able to reproduce elsewhere easily. (I would like to replace this Bash helper by =E2=80=9Cguix repl -- script.s= cm=E2=80=9D but have not find the time to implement it. Even, I am still annoying by =E2=80=9Cguix repl -- ~/.config/guix/scripts/foo.scm=E2=80=9D instead of= =E2=80=9Cguix foo=E2=80=9D; see .) The manifest file is usable with all the Guix commands=E2=80=93guix weather, build, pack to name the ones I use the most with my Emacs packages. This appears to me a big advantage. > What still annoys me, though, is that package installation is separate > from configuration. I don=E2=80=99t really want to be forced to update t= he > manifest at the top of my init.org before I can configure the package > somewhere at the bottom of the init.org. Before, I used =E2=80=99use-package=E2=80=99 but then switched to =E2=80=99with-eval-after-load=E2=80=99. My main use of =E2=80=99use-packag= e=E2=80=99 was because of :ensure which was not relevant. Since it is more important for me to check the availability or build or pack my Emacs profile than lost the sync between install and configuration, I am fine with this separation. What still annoys me, though, is the usual Guix UI which is not handy, for instance, I use this: guix time-machine -C ~/.config/guix/channels-emacs.scm \ -- install \ -m ~/.config/guix/manifests/emacs.scm \ -p ~/.cache/guix/profiles/emacs/emacs =20=20=20=20=20=20=20 and it would be easier to deal with multiple profile if default locations for manifest files and profile symlink (and channel file) would be known by Guix. On the other hand, I also have manifest+channels files and profile inside all the folders about my projects. It has already been discussed some time ago; something about UI is missing to deal with multiple profiles, IMHO. Maybe your proposal about Emacs could also lead to discussions on how to add this missing part: I do now remember if we have not reached a consensus or if we did but no one then implemented it. > The =E2=80=9Cuse-package=E2=80=9D macro was designed to allow for both in= stallation and > configuration in the same place. By default it uses package.el to > install packages when they aren=E2=80=99t available yet. I=E2=80=99d lik= e to use > =E2=80=9Cuse-package=E2=80=9D, but I=E2=80=99d like it to install package= s with Guix and also > install to a separate Guix profile, preferably via a manifest. > > Package managers are supposed to override =E2=80=9Cuse-package-ensure-fun= ction=E2=80=9D > and/or =E2=80=9Cuse-package-pre-ensure-function=E2=80=9D to use something= other than > package.el. Yeah a story similar to straight.el could be nice. :-) > Before I embark on this journey, do any of you have travel reports to > share? Do you think this is worth doing? If so, where could we add > this feature so that all Guix users benefit from it? Emacs-Guix? I switched from =E2=80=99use-package=E2=80=99 to =E2=80=99with-eval-after-l= oad=E2=80=99 at the previous French lockdown and nothing is missing me. Even if :ensure would be provided by Guix, I do not think I would switch back. That=E2=80=99s my tr= avel report. :-) Cheers, simon