Op 20-11-2023 om 11:22 schreef Simon Tournier: > Hi, > > On Sun, 19 Nov 2023 at 23:44, Maxime Devos wrote: > >> Bug 1: emacs bundles emacs-transient. >> (Likewise for quite a few other Emacs packages.) > > This is not a bug. transient.el is part of Emacs since version 28, see > NEWS: > > --8<---------------cut here---------------start------------->8--- > * New Modes and Packages in Emacs 28.1 > > ** transient.el > This library implements support for powerful keyboard-driven menus. > Such menus can be used as simple visual command dispatchers. More > complex menus take advantage of infix arguments, which are somewhat > similar to prefix arguments, but are more flexible and discoverable. > --8<---------------cut here---------------end--------------->8--- > > When an user installs Emacs, they expect to have transient as builtin; > it is not bundled. This does not answer how the bundling is not a bug. Unbundling is not incompatible with keeping builtins -- for example, emacs-minimal could be the ‘minimalistic Emacs, without the typical bundled ‘built-in’ stuff’, and emacs could be 'emacs-minimal + the unbundled stuff in propagated-inputs’. (Well, preferably not propagated, but that's just a matter of wrapping or unions etc..) Another option could be to unbundle things in the 'source' of emacs / emacs-minimal and copy over source code from the 'emacs-‘builtin’' packages during a build phase. (IIUC, emacs-minimal is for compiling Emacs packages and for scripts, of which most probably have no need for keyboard-driven menus -- and if they do have need,) > I recommend to read the section: > > * New Modes and Packages in Emacs X > > in NEWS release files to know which mode or package are included as > builtin. I won't -- my package manager is Guix, not Emacs. > And yes, these packages are sometimes developed outside the > Emacs tree using a dedicated repository, as transient.el or Org-mode for > instance. > > >> Bug 2: no collision handling. > > This is a bug, IMHO. Indeed, if an user prefers another version of > builtin modes or packages, they should not collide with the builtin > ones. Well, they do not collide when using “guix shell”: > > guix shell -C emacs emacs-transient -E TERM -- emacs -q > > Therefore, maybe the issue comes from some specific code from “guix > home”. Hum, I do not know. They do, in fact, collide -- as I mentioned in the e-mail you replied to: > [...] because > "guix shell" (and likewise for "environment") suppresses collision error > messages: > > $ guix shell emacs emacs-transient > > (see: https://issues.guix.gnu.org/54350). Best regards, Maxime Devos