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

Hi Corwin,

On Wed,  9 Feb 2022 at 09:39, Corwin Brust <corwin@bru.st> wrote:

> 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

This is a different matter.  What I was saying is, you need to download
the package list from MELPA before trying to install a missing package.

If you delete ~/.emacs.d/elpa, your configuration as you showed it won't
be able to bootstrap.

>  '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?

I recall Philip giving a similar suggestion on the mailing list but I
can't find that thread anymore.  So I added him to this message.

> 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.

Autoloading 'package-installed-p' wouldn't cause any harm, but it also
doesn't solve any problems, so why bother?

> 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





  reply	other threads:[~2022-02-10  8:42 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
2022-02-10  8:42       ` Augusto Stoffel [this message]
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=87y22jm7su.fsf@gmail.com \
    --to=arstoffel@gmail.com \
    --cc=53885@debbugs.gnu.org \
    --cc=corwin@bru.st \
    --cc=larsi@gnus.org \
    --cc=philipk@posteo.net \
    /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).