Subject: Re: bug#62751: 29.0.90; New libraries that still need to be assigned to packages

From: Stefan Kangas <[email-masked]>
Date: Sun, 1 Oct 2023 10:46:13 -0700

Eli Zaretskii <[email-masked]> writes:

>> From: Stefan Kangas <[email-masked]>
>> Date: Sun, 1 Oct 2023 08:46:46 -0700
>> Cc: [email-masked], [email-masked], [email-masked]
>>
>> Eli Zaretskii <[email-masked]> writes:
>>
>> >> +4.  Check that all new Lisp libraries belong to sensible packages.
>> >> +    Run "make -C lisp finder-data" and check the diff of the generated
>> >> +    file against the previously released Emacs version to see what has
>> >> +    changed.
>> >> +
>> >
>> > This could benefit from some criteria for what is and isn't reasonable
>> > in these diffs, or what to do with the differences.  Because otherwise
>> > "check the diff" doesn't tell how to check it.
>>
>> I didn't put anything, because I don't know how to summarize that in a
>> few short words.  Ideas for how to do that are welcome.
>
> Well, if you tell it in as many words as you need (or point me to
> where it was already described up-thread), I could try suggesting a
> concise version.

Here's a typical excerpt of the difference between emacs-29 and master:

--- emacs-release/lisp/finder-inf.el	2023-09-29 11:44:34.000000000 +0200
+++ emacs/lisp/finder-inf.el	2023-10-01 19:36:12.000000000 +0200
@@ -120,17 +120,18 @@
   (ediff . [(2 81 6) nil "a comprehensive visual interface to diff & patch"])
   (edmacro . [nil nil "keyboard macro editor"])
   (edt . [nil nil "enhanced EDT keypad mode emulation for GNU Emacs"])
-  (eglot . [(1 12 29) nil "The Emacs Client for LSP servers"])
+  (eglot . [(1 15) nil "The Emacs Client for LSP servers"])
   (ehelp . [nil nil "bindings for electric-help mode"])
   (eieio . [(1 4) nil "Enhanced Implementation of Emacs Interpreted Objects"])
   (eieio-core . [(1 4) nil "Core implementation for eieio"])
-  (eldoc . [(1 13 0) nil "Show function arglist or variable docstring
in echo area"])
+  (eldoc . [(1 14 0) nil "Show function arglist or variable docstring
in echo area"])
   (elec-pair . [nil nil "Automatic parenthesis pairing"])
   (electric . [nil nil "window maker and Command loop for `electric' modes"])
   (elide-head . [nil nil "hide headers in files"])
   (elint . [nil nil "Lint Emacs Lisp"])
+  (elixir-ts-mode . [nil nil "Major mode for Elixir with tree-sitter support"])
   (elp . [nil nil "Emacs Lisp Profiler"])
-  (emacs . [(29 1 50) nil "the extensible text editor"])
+  (emacs . [(30 0 50) nil "the extensible text editor"])
   (emacs-authors-mode . [nil nil "font-locking for etc/AUTHORS"])
   (emacs-lock . [nil nil "protect buffers against killing or exiting"])
   (emacs-news-mode . [nil nil "major mode to edit and view the NEWS file"])

We have here two cases:

1. eglot, eldoc, and emacs just have new versions, and therefore need
   no action.

2. elixir-ts-mode is a new package, and we need to consider if that
   package makes sense.  In this case, I'd say it does, but I'm not sure
   how to summarize the reasons why in a precise way.  Perhaps one could
   say something along the lines of "it functions as a standalone
   feature".

In Emacs 29.1, we had several new packages named something like:

    use-package-bind-key
    use-package-core
    use-package-diminish
    [...]
    use-package

In this case, the new packages did _not_ make sense and had to be
consolidated into just one package: use-package.  Again, it is hard for
me to summarize the reasons why.  I suppose it has something to do with
them not working without each other, and thus should better be treated
as one functional whole.