Message ID | 20250303020636.3461-1-ngraves@ngraves.fr |
---|---|
Headers |
Return-Path: <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org> X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 648C127BBEA; Mon, 3 Mar 2025 02:08:49 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 063AA27BBE2 for <patchwork@mira.cbaines.net>; Mon, 3 Mar 2025 02:08:47 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <guix-patches-bounces@gnu.org>) id 1tovDy-00020j-PR; Sun, 02 Mar 2025 21:08:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1tovDw-0001yD-1f for guix-patches@gnu.org; Sun, 02 Mar 2025 21:08:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1tovDv-00007z-NQ for guix-patches@gnu.org; Sun, 02 Mar 2025 21:08:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:From:To:Subject; bh=4JrvJbu2sztRSY7PkBfnCEutvsQUYyeIlPVPYqBahjA=; b=GGwPJzOJiinQ+kUn1ov2LqSXLfduiUdmoRceLtG+m/u0+ZlJtiKmqNKHevWyUYqdEoHs1JqYODf+qRwrwcKz41MXPmBvss+I4QkNlu5gPR4kg1Z/5Y2x8OzEDHurKAVL1oIyaGbd39SrJu0nO3PPOaJ5pdZDu1UPCu95FjjZFB1JMXWxULJXvLE4bMcgEo4nMWjq0SXCJVmfRptMpUpNgs3jQK8hil+4Ju7H7XeQZ5Qn7qV72Xk2eu/k/NVfbGH73kjtO20WP4KnOWGjNCiXP/RWD8pYtIqeFDC80w5Gcvten9+OiUsvV5dUvp7l2z+tlYJeHjjKD6PRHA4sZnD80Q==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1tovDu-0007St-EJ for guix-patches@gnu.org; Sun, 02 Mar 2025 21:08:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#76699] [PATCH emacs-guix 0/4] Refresh package emacs-guix Resent-From: Nicolas Graves <ngraves@ngraves.fr> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org> Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 03 Mar 2025 02:08:01 +0000 Resent-Message-ID: <handler.76699.B.174096762828447@debbugs.gnu.org> Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 76699 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 76699@debbugs.gnu.org Cc: ludo@gnu.org, Nicolas Graves <ngraves@ngraves.fr> X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.174096762828447 (code B ref -1); Mon, 03 Mar 2025 02:08:01 +0000 Received: (at submit) by debbugs.gnu.org; 3 Mar 2025 02:07:08 +0000 Received: from localhost ([127.0.0.1]:40702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>) id 1tovD0-0007OX-Su for submit@debbugs.gnu.org; Sun, 02 Mar 2025 21:07:08 -0500 Received: from lists.gnu.org ([2001:470:142::17]:41556) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ngraves@ngraves.fr>) id 1tovCv-0007N8-Rd for submit@debbugs.gnu.org; Sun, 02 Mar 2025 21:07:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ngraves@ngraves.fr>) id 1tovCo-0001PV-AT for guix-patches@gnu.org; Sun, 02 Mar 2025 21:06:54 -0500 Received: from 3.mo583.mail-out.ovh.net ([46.105.40.108]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ngraves@ngraves.fr>) id 1tovCk-00089P-JU for guix-patches@gnu.org; Sun, 02 Mar 2025 21:06:54 -0500 Received: from director4.ghost.mail-out.ovh.net (unknown [10.109.148.200]) by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4Z5hy65pQpz1RTK for <guix-patches@gnu.org>; Mon, 3 Mar 2025 02:06:38 +0000 (UTC) Received: from ghost-submission-5b5ff79f4f-5dcn8 (unknown [10.108.54.148]) by director4.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 699571FE3F; Mon, 3 Mar 2025 02:06:38 +0000 (UTC) Received: from ngraves.fr ([37.59.142.109]) by ghost-submission-5b5ff79f4f-5dcn8 with ESMTPSA id krePAa4OxWeWVgAA6Nx3uQ (envelope-from <ngraves@ngraves.fr>); Mon, 03 Mar 2025 02:06:38 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-109S00344ba3a8c-e5bc-4fbb-b882-2590c6506c46, 3FD0527DE2CE9D3C35B0E9483E243F320C79A24B) smtp.auth=ngraves@ngraves.fr X-OVh-ClientIp: 90.92.117.144 Date: Mon, 3 Mar 2025 03:01:21 +0100 Message-ID: <20250303020636.3461-1-ngraves@ngraves.fr> X-Mailer: git-send-email 2.48.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Ovh-Tracer-Id: 1057782965305139938 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeljeekjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhephffvvefufffkofgggfestdekredtredttdenucfhrhhomheppfhitgholhgrshcuifhrrghvvghsuceonhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrqeenucggtffrrghtthgvrhhnpeeluddthfdugeefgfeuudfgvefgudejvdeuuddtffdthffhgedtudfgvdefgeffueenucffohhmrghinhepshhrrdhhthdpshgtmhdrnhgvgihtpdgvlhdrihhnnecukfhppeduvdejrddtrddtrddupdeltddrledvrdduudejrddugeegpdefjedrheelrddugedvrddutdelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehnghhrrghvvghssehnghhrrghvvghsrdhfrhdpnhgspghrtghpthhtohepuddprhgtphhtthhopehguhhigidqphgrthgthhgvshesghhnuhdrohhrghdpoffvtefjohhsthepmhhoheekfegmpdhmohguvgepshhmthhpohhuth DKIM-Signature: a=rsa-sha256; bh=4JrvJbu2sztRSY7PkBfnCEutvsQUYyeIlPVPYqBahjA=; c=relaxed/relaxed; d=ngraves.fr; h=From; s=ovhmo4487190-selector1; t=1740967598; v=1; b=IsfxHOgZpTljO2JfH0vkK8V/XOsG/nioUvDp/+9WmgVl9HXwUfVbtBcmSoZlF4F8a9PXbFHP klOa/X0LUu7MY/Ft2OLJ1GJrudMsd5as13b+J9xYT9ETApxJ4HPs/SIUza8bjPB6PGCPHWyzYDe ZWqGcMW3wUM5GkdHiRxwNKxsOFNDlMberbVdCNxhLd4ox+Ya3QTcHO6gXG9M2o7VVMtyj5Ncwrb Z6oFSLUGDCxZ8XMQtQn73MQK4nP4gXSk50e0YWfy0WZqnnUTJlqjRKxA1nd5paPQDiGe6NvoS61 swVEQKnnbG7hjuonEOIsQPtRVBrc366XWmzCAdnuvX0zQ== Received-SPF: pass client-ip=46.105.40.108; envelope-from=ngraves@ngraves.fr; helo=3.mo583.mail-out.ovh.net 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: <guix-patches.gnu.org> List-Unsubscribe: <https://lists.gnu.org/mailman/options/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=unsubscribe> List-Archive: <https://lists.gnu.org/archive/html/guix-patches> List-Post: <mailto:guix-patches@gnu.org> List-Help: <mailto:guix-patches-request@gnu.org?subject=help> List-Subscribe: <https://lists.gnu.org/mailman/listinfo/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=subscribe> Reply-to: Nicolas Graves <ngraves@ngraves.fr> X-ACL-Warn: , Nicolas Graves via Guix-patches <guix-patches@gnu.org> From: Nicolas Graves via Guix-patches via <guix-patches@gnu.org> Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches |
Series |
Refresh package emacs-guix
|
|
Message
Nicolas Graves
March 3, 2025, 2:01 a.m. UTC
This is a series of refreshing commits for emacs-guix. This is done in an effort to port emacs-guix to guile-ares-rs/emacs-arei backend, currently in progress here : https://git.sr.ht/~ngraves/emacs-guix This is still a WIP, I'd still like to replace old references to guix-environment by references to guix shell at least. I'm not able to test all changes, since guix-command seems to be broken (before this patch series I mean). Thus, I invite users of emacs-guix to try that series and report any bug that could have been caused by it. Nicolas Graves (5): Switch to transient Improve most docstrings Remove dash dependency, introduce llama library Use a development channel instead of guix.scm Update NEWS .guix-channel | 3 + NEWS | 10 + README | 2 +- guix.scm => channel/emacs-guix-channel.scm | 69 +++---- channel/emacs-guix-channel.scm.next | 104 ++++++++++ configure.ac | 32 +-- doc/emacs-guix.texi | 59 +++--- doc/htmlxref.cnf | 6 +- elisp/guix-about.el | 2 +- elisp/guix-build-config.el.in | 7 +- elisp/guix-build-log.el | 28 +-- elisp/guix-command.el | 162 ++++++++------- elisp/guix-config.el | 2 +- elisp/guix-default-config.el | 2 +- elisp/guix-external.el | 12 +- elisp/guix-geiser.el | 9 +- elisp/guix-graph.el | 2 +- elisp/guix-guile.el | 6 +- elisp/guix-help-vars.el | 37 ++-- elisp/guix-help.el | 15 +- elisp/guix-license.el | 3 +- elisp/guix-misc.el | 24 ++- elisp/guix-package.el | 2 +- elisp/guix-pcomplete.el | 15 +- elisp/guix-popup.el | 227 --------------------- elisp/guix-prettify.el | 4 +- elisp/guix-profiles.el | 32 +-- elisp/guix-read.el | 8 +- elisp/guix-repl.el | 43 ++-- elisp/guix-transient.el | 187 +++++++++++++++++ elisp/guix-ui-generation.el | 62 +++--- elisp/guix-ui-license.el | 18 +- elisp/guix-ui-lint-checker.el | 15 +- elisp/guix-ui-messages.el | 16 +- elisp/guix-ui-package-location.el | 6 +- elisp/guix-ui-package.el | 104 +++++----- elisp/guix-ui-profile.el | 65 +++--- elisp/guix-ui-service-location.el | 6 +- elisp/guix-ui-service.el | 32 ++- elisp/guix-ui-store-item.el | 46 +++-- elisp/guix-ui-system-generation.el | 24 ++- elisp/guix-ui-system.el | 17 +- elisp/guix-ui.el | 16 +- elisp/guix-utils.el | 92 ++++----- elisp/guix.el | 2 +- elisp/local.mk | 10 +- 46 files changed, 895 insertions(+), 750 deletions(-) create mode 100644 .guix-channel rename guix.scm => channel/emacs-guix-channel.scm (50%) create mode 100644 channel/emacs-guix-channel.scm.next delete mode 100644 elisp/guix-popup.el create mode 100644 elisp/guix-transient.el
Comments
Hello, Nicolas Graves <ngraves@ngraves.fr> skribis: > This is a series of refreshing commits for emacs-guix. Yay! > This is done in an effort to port emacs-guix to > guile-ares-rs/emacs-arei backend, currently in progress here : > https://git.sr.ht/~ngraves/emacs-guix I remain fond of Geiser so I’m skeptical of this change. Perhaps you could explain a bit why you think it’s worthwhile? > This is still a WIP, I'd still like to replace old references to > guix-environment by references to guix shell at least. I'm not able > to test all changes, since guix-command seems to be broken (before > this patch series I mean). > > Thus, I invite users of emacs-guix to try that series and report any > bug that could have been caused by it. I haven’t tried it yet but it LGTM, except for patch #4. Ludo’.
On 2025-03-08 17:57, Ludovic Courtès wrote: > Hello, > > Nicolas Graves <ngraves@ngraves.fr> skribis: > >> This is a series of refreshing commits for emacs-guix. > > Yay! > >> This is done in an effort to port emacs-guix to >> guile-ares-rs/emacs-arei backend, currently in progress here : >> https://git.sr.ht/~ngraves/emacs-guix > > I remain fond of Geiser so I’m skeptical of this change. Perhaps you > could explain a bit why you think it’s worthwhile? Both could exist together if we remain coordinated (hence first the effort to improve, before efforts to port ;), "port" here is not necessarily meant to replace. I'm not qualified enough myself to judge, let's say that I've been sold to ares/arei by the asynchronous/fluency/protocol guarantees. Andrew Tropin's talk on EmacsConf 2023 elaborate more on why the project was started in the first place. https://emacsconf.org/2023/talks/scheme/ I've found it convenient to write and test scheme (a bit less finished on the user's side -- you still have to start the server manually) ; but overall I find it quite pleasant to use, simply write and evaluate the code I'm writing without having to write to copy/paste. What I would want such a package to do is also to have convenient features like: - guix packages recognition while developping (for embark actions) - guix-lint/flymake integration + embark action - guix-style embark action I see this kind of things possible with ares ; I don't know geiser enough to know if it's possible / convenient / how to tackle them properly. > I haven’t tried it yet but it LGTM, except for patch #4. Will look into that, thanks! By the way, I would like to get rid of emacs-bui too, I think it adds a lot of complexity / it is one of the reasons emacs-guix is hard to maintain. I was thinking about - rewriting the completing-read part // replacing the list mode functionality with a completing-read that would list synopses when present with packages like vertico/marginalia (so no more dedicated mode, just a more carefully written completing-read) ; - replacing the guix-ui mode with its proper transient (on *Guix info*, hitting `h` almost spawns a transient-like menu, so it might be more maintainable with transient itself, and with a popping transient, there's no need for buttons), and probably a beautified read-only rec-mode like interface ; if we manage to inject recutils from scheme, it might be a lot less code to maintain in emacs-guix. IMHO, both would make it easier to maintain and extend the package, at the cost of a little less "polish". Sometimes less is more!
Hi, Nicolas Graves <ngraves@ngraves.fr> skribis: >> I remain fond of Geiser so I’m skeptical of this change. Perhaps you >> could explain a bit why you think it’s worthwhile? > > Both could exist together if we remain coordinated (hence first the > effort to improve, before efforts to port ;), "port" here is not > necessarily meant to replace. > > I'm not qualified enough myself to judge, let's say that I've been sold > to ares/arei by the asynchronous/fluency/protocol guarantees. Andrew > Tropin's talk on EmacsConf 2023 elaborate more on why the project was > started in the first place. > > https://emacsconf.org/2023/talks/scheme/ OK, I should take a look. > I've found it convenient to write and test scheme (a bit less finished > on the user's side -- you still have to start the server manually) ; but > overall I find it quite pleasant to use, simply write and evaluate the > code I'm writing without having to write to copy/paste. Agreed, same with Geiser and other such tools. > What I would want such a package to do is also to have convenient > features like: > - guix packages recognition while developping (for embark actions) > - guix-lint/flymake integration + embark action > - guix-style embark action Would be nice! > I see this kind of things possible with ares ; I don't know geiser > enough to know if it's possible / convenient / how to tackle them > properly. Geiser essentially talks to a running Guile REPL in a request/response style. Its downside is that it’s synchronous, and that’s something ares probably improves on, but for the rest it’s really good. > By the way, I would like to get rid of emacs-bui too, I think it adds a > lot of complexity / it is one of the reasons emacs-guix is hard to > maintain. I was thinking about > > - rewriting the completing-read part // replacing the list mode > functionality with a completing-read that would list synopses when > present with packages like vertico/marginalia (so no more dedicated > mode, just a more carefully written completing-read) ; I’m not qualified enough to judge, but removing code can be nice. :-) > - replacing the guix-ui mode with its proper transient (on *Guix info*, > hitting `h` almost spawns a transient-like menu, so it might be more > maintainable with transient itself, and with a popping transient, > there's no need for buttons), and probably a beautified read-only > rec-mode like interface ; if we manage to inject recutils from scheme, > it might be a lot less code to maintain in emacs-guix. I’m not sure I’d rely on ‘rec-mode’ for this (I think the current interface is more pleasant than a raw recutils record as view with rec-mode, and it’s interactive too), but I don’t know. Thanks, Ludo’.
Would you rather create an emacs-guix-next package and call users to try it, or rather just make this update? I ask because the new development channel should adapt to how we'll include that in guix (is modify-inputs necessary or not ?) Nicolas
On 2025-03-09 22:05, Ludovic Courtès wrote: > >> - replacing the guix-ui mode with its proper transient (on *Guix info*, >> hitting `h` almost spawns a transient-like menu, so it might be more >> maintainable with transient itself, and with a popping transient, >> there's no need for buttons), and probably a beautified read-only >> rec-mode like interface ; if we manage to inject recutils from scheme, >> it might be a lot less code to maintain in emacs-guix. > > I’m not sure I’d rely on ‘rec-mode’ for this (I think the current > interface is more pleasant than a raw recutils record as view with > rec-mode, and it’s interactive too), but I don’t know. My point here is that I would prefer a new transient menu in this *Guix package info* instead of sparse buttons, since it's already based on transient. I agree the view is more pleasant, but I think it's quite likely that the emacs-bui package will not be developped again. `rec-mode` is probably too rough, I'll try and find an intermediary alternative.
Interested on testing ! > Thus, I invite users of emacs-guix to try that series and report any > bug that could have been caused by it. Cloned the sr.ht repo, changed branch to arei, but there is no guix.scm file to install with guix package --install-from-file=guix.scm right ?