unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Corwin Brust <corwin@bru.st>
To: Augusto Stoffel <arstoffel@gmail.com>
Cc: Lars Ingebrigtsen <larsi@gnus.org>, 53885@debbugs.gnu.org
Subject: bug#53885: Autoload package-installed-p
Date: Wed, 9 Feb 2022 09:39:46 -0600	[thread overview]
Message-ID: <CAJf-WoRsE_XWbESrCY8zmF0vDNVxYR8voLA-cVoYGS3i60ohsA@mail.gmail.com> (raw)
In-Reply-To: <87a6f0nly1.fsf@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2944 bytes --]

Hi Augusto!

On Wed, Feb 9, 2022, 08:39 Augusto Stoffel <arstoffel@gmail.com> wrote:

>
> By the way, there are two issues with this code snippet.  First, you
> should call '(package-refresh-contents)' to make sure you have the
> package list from MELPA.
>

I believe this was changed with the implementation of "early-init".  We
don't need to expressly call `package-refresh-contents' since Emacs 27, see:
https://github.com/emacs-mirror/emacs/blob/master/etc/NEWS.27#L227



> 'use-package' would be subject to removal by 'package-autoremove'.  To
> fix this, something like
>
>     (add-hook 'after-init-hook
>               (lambda () (package--update-selected-packages '(use-package)
> nil)))
>
> is needed.
>

I wasn't aware of this idiosyncrasy. I will look at package.el further
FTR, in my own configuration I expressly set-up package-selected-packages.

In any case, this bug report stems from a Reddit user's perception of
breakage with the Emacs 28 pre-release binaries recently added to alpha.  I
simply created a minimal reproducer from that person's use/expectations.

Do you agree the (corrected) reproducer given should be sufficient to
demonstrate the change provided by adding the autoload, if the patch is
applied?

As things stand presently, I'm having trouble thinking of use-cases for
package-installed-p that would not start with (require 'package).


> I think a more user-friendly 'package-ensure-installed' function is in
> order here.  I believe the use-package package provides some
> functionality for this, but there is no good built-in equivalent (which
> is needed even by use-package users).
>

I love this idea.  Would you be interested to open a new bug report for
this feature request, perhaps offering a patch if you are so inclined?

FWIW, I agree that ,if/when something more robust is added expressly to
support the batch installation of packages, the need for this autoload (and
perhaps all user-facing use-cases for package-installed-p) may be greatly
reduced.

That said, it's not clear to me whether general consensus will be to
support a "default automation" function (or functions) for this, or that
what we have is "enough" for each of us to do things as we wish.  It might
make sense to open a discussion on the development list to discuss this
potential improvement.

Finally, in case it may help, here is a formula I have often used to
'bootstrap' a batch install of packages:

(setq package-selected-packages '(foo bar baz))
(mapc (lambda(pkg) (when (not (require pkg nil t) (package-install pkg))
package-selected-packages)

For myself, I'm not using `package-autoremove'.  I typically remove
(actually rename, usually) my ELPA folder and then relaunch Emacs.  My
configuration (just like the user on behalf of whom I reported this "bug"),
will then install the features I'm (still) using. I'm glad you are watching
out for people who do use the auto-remove package feature.

Regards,
Corwin

[-- Attachment #2: Type: text/html, Size: 4354 bytes --]

  reply	other threads:[~2022-02-09 15:39 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-08 23:55 bug#53885: Autoload package-installed-p Corwin Brust
2022-02-09  0:05 ` bug#53885: 28.0.51 [PATCH] " Corwin Brust
2022-02-09 13:37   ` Eli Zaretskii
2022-02-09 20:16     ` Lars Ingebrigtsen
2022-02-09 23:58       ` Corwin Brust
2022-02-10  6:10         ` Eli Zaretskii
2022-02-10  6:45           ` Lars Ingebrigtsen
2022-02-10  7:21             ` Corwin Brust
2022-02-10  7:57               ` Eli Zaretskii
2022-02-10  8:09                 ` Corwin Brust
2022-02-10  8:18                   ` Eli Zaretskii
2022-02-10  8:41               ` Lars Ingebrigtsen
2022-02-10  8:49                 ` Corwin Brust
2022-02-10 12:04                 ` Eli Zaretskii
2022-02-10 14:54                   ` Corwin Brust
2022-02-10 17:29                     ` Eli Zaretskii
2022-02-09  5:39 ` bug#53885: " Corwin Brust
2022-02-09 14:39   ` Augusto Stoffel
2022-02-09 15:39     ` Corwin Brust [this message]
2022-02-10  8:42       ` Augusto Stoffel
2022-02-10  8:59         ` Philip Kaludercic
2022-02-10  9:28           ` Augusto Stoffel
2022-02-10  9:23         ` Corwin Brust
2022-02-10  9:30           ` Augusto Stoffel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAJf-WoRsE_XWbESrCY8zmF0vDNVxYR8voLA-cVoYGS3i60ohsA@mail.gmail.com \
    --to=corwin@bru.st \
    --cc=53885@debbugs.gnu.org \
    --cc=arstoffel@gmail.com \
    --cc=larsi@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).