unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Radon Rosborough <radon.neon@gmail.com>
To: Drew Adams <drew.adams@oracle.com>
Cc: emacs-devel@gnu.org
Subject: Re: Summary and next steps for (package-initialize)
Date: Wed, 23 Aug 2017 11:32:55 -0700	[thread overview]
Message-ID: <CADB4rJEDCY5+6aF8BCMRmPO4qJr=bWy5BJhpvXxgU3BJEUJAyg@mail.gmail.com> (raw)
In-Reply-To: <58ac4c14-3f26-4b21-806a-aa2326ce3d2b@default>

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

> Again? How about not being bothered the first time? It sounds like
> `package-initialize' is evaluated the first time, unconditionally.

This is wrong. `package-initialize' is called only once, in step (2).
This step happens before loading the primary init-file, but after
loading the secondary init-file. If you set
`package-enable-at-startup' to nil in the secondary init-file, then
`package-initialize' will never be evaluated under any circumstances.

> And it sounds like, even if I don't use the package system, I will
> have to edit a secondary init file (the first one read), just to
> tell package.el "Hands off!"

You will have to do that only once in the entire history of your
dotfiles. No longer is `package-initialize' called after loading the
primary init-file, so a single `setq' is all that is needed to
permanently disable package.el.

> And if I want to try a package in a particular Emacs session then I
> need to once again edit that first ("secondary") init file, to
> enable the package system. Is that right?

No, it's wrong. To try a package, all you have to do is run M-x
package-initialize. In fact, if it's a new package you are installing,
M-x package-install will suffice, as package.el is initialized
automatically when you try to use it.

> It's hard to believe this has to be so convoluted.

It seems very simple to me. The package manager is initialized before
reading the init-file, unless you tell it not to do that. And in any
case, you can initialize it later. The only nonstandard part of this
is that the code to disable automatic initialization goes in a
separate file.

> (But I understand that you are saying that what you propose is less
> convoluted than what we have now.)

Oh heck yes. Even I don't really understand the full ramifications of
the current system.

> It seems to me that use of package.el should be just like use of any
> other library. Users should explicitly opt in. But I understand that
> you've said that it has been decided to enable the package system by
> default for everyone, at the outset.

The rationale for this decision was that we want to treat package.el
as a core part of Emacs rather than as an extension. If you want to
debate that, then fine (I might join you), but let's take it as
granted for a moment. If package.el is a core part of Emacs, then we
expect all of its features to work by default. And we also expect
libraries installed using package.el to work similarly to libraries
that are shipped with Emacs. That's why it's enabled by default.

Note that I'm not really complaining about this decision, even though
I don't like package.el and never use it. It seems reasonable to me
for the built-in package manager to act like this, even if I don't use
said package manager.

> It doesn't matter, IMO, if 99% of the users want to opt in; it
> should still be opt-in.

It really depends on whether you view package.el as a core part of
Emacs or not. After all, the menu and tool bars are turned on by
default; VC is turned on by default (even though lots of people turn
it off and use Magit); why shouldn't the package manager be turned on
by default?

I think it's fine for stuff to be turned on by default as long as it's
easy to turn it off again and swap in something else:

     (menu-bar-mode -1)
     (tool-bar-mode -1)
     (setq vc-handled-backends nil)
     (setq package-enable-at-startup nil)

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

  reply	other threads:[~2017-08-23 18:32 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-20  2:38 Summary and next steps for (package-initialize) Radon Rosborough
2017-08-20  6:10 ` Drew Adams
2017-08-20 17:20   ` Radon Rosborough
2017-08-20 18:09     ` Drew Adams
2017-08-20 18:39       ` Radon Rosborough
2017-08-21  0:33         ` Drew Adams
2017-08-21  4:08           ` Radon Rosborough
2017-08-20  8:13 ` Stefan Monnier
2017-08-20 17:21   ` Radon Rosborough
2017-08-20  8:15 ` Clément Pit-Claudel
2017-08-20 17:21   ` Radon Rosborough
2017-08-20 14:20 ` Eli Zaretskii
2017-08-20 16:37   ` Alex
2017-08-20 16:44     ` Eli Zaretskii
2017-08-20 16:46     ` Yuri Khan
2017-08-20 16:54       ` Drew Adams
2017-08-20 17:18         ` Colin Baxter
2017-08-22 21:24       ` Alex
2017-08-20 17:22   ` Radon Rosborough
2017-08-20 17:36     ` Eli Zaretskii
2017-08-20 17:54       ` Radon Rosborough
2017-08-21 16:35         ` Eli Zaretskii
2017-08-21 16:43           ` Radon Rosborough
2017-08-21 17:40             ` Eli Zaretskii
2017-08-21 20:33               ` Radon Rosborough
2017-08-22  2:37                 ` Eli Zaretskii
2017-08-22  4:52                   ` Radon Rosborough
2017-08-22  8:41                     ` Clément Pit-Claudel
2017-08-22 16:02                       ` Radon Rosborough
2017-08-22 14:33                     ` Eli Zaretskii
2017-08-22 18:09                       ` Radon Rosborough
2017-08-22 21:01                         ` Clément Pit-Claudel
2017-08-21  9:04   ` Stefan Monnier
2017-08-21 14:31     ` Eli Zaretskii
2017-08-21 16:34       ` Radon Rosborough
2017-08-21 17:47         ` Clément Pit-Claudel
2017-08-22 11:37         ` Timur Aydin
2017-08-22 16:58           ` Radon Rosborough
2017-08-22 21:04             ` Clément Pit-Claudel
2017-08-23  5:17               ` Radon Rosborough
2017-08-23 11:33                 ` Angelo Graziosi
2017-08-23 17:16                   ` Radon Rosborough
2017-08-23 13:28                 ` Drew Adams
2017-08-23 17:31                   ` Radon Rosborough
2017-08-23 18:00                     ` Drew Adams
2017-08-23 18:32                       ` Radon Rosborough [this message]
2017-08-23 20:27                         ` Drew Adams
2017-08-23 20:59                           ` Clément Pit-Claudel
2017-08-23 21:21                             ` Drew Adams
2017-08-23 21:44                               ` Clément Pit-Claudel
2017-08-23 21:53                                 ` Drew Adams
2017-08-24  0:44                               ` Radon Rosborough
2017-08-24  6:39                                 ` Drew Adams
2017-08-25  1:03                                   ` Radon Rosborough
2017-08-24 17:14                           ` Eli Zaretskii
     [not found]                           ` <<83fucg99cj.fsf@gnu.org>
2017-08-24 17:44                             ` Drew Adams
2017-08-24 18:12                               ` Clément Pit-Claudel
2017-08-24 18:29                                 ` Drew Adams
2017-08-24 21:34                                   ` Clément Pit-Claudel
2017-08-24 21:40                                     ` Drew Adams
2017-08-25  1:04                                   ` Radon Rosborough
2017-08-24 18:14                               ` Eli Zaretskii
     [not found]                               ` <<83bmn496js.fsf@gnu.org>
2017-08-24 18:36                                 ` Drew Adams
2017-08-24 18:57                                   ` Eli Zaretskii
2017-08-25  1:04                                   ` Radon Rosborough
2017-08-25  1:04                               ` Radon Rosborough
2017-08-23  3:15       ` Stefan Monnier
2017-08-24 16:47         ` Eli Zaretskii
2017-08-24 17:48           ` Stefan Monnier
2017-08-24 18:26             ` Eli Zaretskii
2017-08-25  3:52               ` Stefan Monnier
2017-08-25  3:59                 ` Radon Rosborough
2017-08-25  4:39                   ` Stefan Monnier
2017-08-25  4:45                     ` Radon Rosborough
2017-08-25  4:48                       ` Stefan Monnier
2017-08-25  6:47                 ` Eli Zaretskii
2017-08-25 11:51                   ` Stefan Monnier
2017-08-25  1:04             ` Radon Rosborough
2017-08-25  4:14               ` Stefan Monnier
2017-08-25  4:28                 ` Radon Rosborough
2017-08-25  4:47                   ` Stefan Monnier
2017-08-25 21:07                 ` Stefan Monnier
2017-08-25 21:34                   ` Radon Rosborough
2017-08-26 22:29                     ` Stefan Monnier
2017-08-26 22:33                       ` Radon Rosborough
2017-08-21 16:18     ` Radon Rosborough
2017-08-20 19:09 ` Mark Oteiza
2017-08-23 15:57 ` Nikolay Kudryavtsev
2017-08-23 18:17   ` Radon Rosborough
2017-08-23 19:17     ` Nikolay Kudryavtsev
2017-08-23 19:38       ` Radon Rosborough
2017-08-23 20:09         ` Nikolay Kudryavtsev
2017-08-24  0:13           ` Radon Rosborough
2017-08-24 13:44             ` Nikolay Kudryavtsev
2017-08-25  1:04               ` Radon Rosborough
2017-08-24 17:12           ` Eli Zaretskii
2017-08-23 22:30   ` Nathan Moreau
2017-08-24  0:54     ` Radon Rosborough
2017-08-24 11:13       ` Nathan Moreau
2017-08-24 17:02   ` Eli Zaretskii
2017-08-24 17:52     ` Nikolay Kudryavtsev
2017-08-24 18:31       ` Eli Zaretskii
2017-08-25 13:48         ` Nikolay Kudryavtsev
  -- strict thread matches above, loose matches on Subject: below --
2017-08-21  8:24 angelo.g0
2017-08-21 16:22 ` Radon Rosborough
2017-08-21 19:35   ` Angelo Graziosi

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='CADB4rJEDCY5+6aF8BCMRmPO4qJr=bWy5BJhpvXxgU3BJEUJAyg@mail.gmail.com' \
    --to=radon.neon@gmail.com \
    --cc=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.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).