From: "Jorgen Schäfer" <jorgen.schaefer@gmail.com>
To: v.schneidermann@gmail.com, emacs-devel <emacs-devel@gnu.org>
Subject: Re: Calling (package-initialize) sooner during initialization
Date: Sun, 12 Apr 2015 14:09:15 +0200 [thread overview]
Message-ID: <CALqDrSeaYdOEBvC_VmLwhbhRGKvUCVmUB3U1icjLoEXmOXwOTw@mail.gmail.com> (raw)
Hello.
I think a major part of the problem here is that package-initialize does
a lot more things than it needs to. All that has to happen before the
user init file is loaded is to load the autoload files from ~/.emacs.d/elpa/.
Everything else can happen on demand or after the init file is loaded,
because it is not necessary to make packages available.
If package.el provided some sort of (package-load-directory DIR), and
ran that on ~/.emacs.d/elpa/, that should fix most use cases already:
> - package-enable-at-startup: Would be equivalent to the proposed
> environment variable.
That's usually set when the user runs package-initialize manually, but
if the user does not want to enable packages at startup, they can simply
not have anything in ~/.emacs.d/elpa/.
> - package-load-list: Needs to be configured before.
If the user does not want to enable certain packages, they can move
them out of ~/.emacs.d/elpa/. If necessary, they can move the packages
into, say, ~/.emacs.d/held/ and run
(package-load-directory "~/.emacs.d/held") after configuring this variable.
> - package-archives: Needs to be configured before for
> non-interactive package installation.
> - package-pinned-packages: Needs to be configured before for
> non-interactive package installation.
> - package-check-signature and package-unsigned-archives: Can be
> customized afterwards
> - package-directory-list: Needs to be configured before.
These are all only relevant for package installation, not for package
initialization. The user can configure them before installing packages in
their init file, if desired.
> - package-user-dir: Needs to be configured before.
In the new approach, changing this only means the new directory is not
loaded before the user init file is loaded. The user can simply do this
manually using (package-load-directory NEW-DIR) when they need the
new packages, which more or less replicates the current setup of requiring
a package-initialize before packages become available, but arguable more
obvious as the user has to set the variable in their init file already.
That is, Emacs just needs to adjust the load-path and load auto-loads
for the default location before the user init file is run to solve the original
problem of user confusion. None of the config options are necessary for this,
so the race condition that caused the original desire of not running
package-initialize before the user init file is gone. The user can set the
config options as necessary in their init file while simply using packages as
expected.
Regards,
Jorgen
next reply other threads:[~2015-04-12 12:09 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-12 12:09 Jorgen Schäfer [this message]
2015-04-12 14:26 ` Calling (package-initialize) sooner during initialization Artur Malabarba
2015-04-12 14:45 ` Jorgen Schäfer
2015-04-12 20:46 ` Stefan Monnier
2015-04-12 14:40 ` Aneesh Kumar K.V
2015-04-12 16:23 ` Artur Malabarba
2015-04-12 20:44 ` Stefan Monnier
2015-04-12 21:02 ` Jorgen Schäfer
2015-04-12 23:22 ` Stefan Monnier
2015-04-13 22:52 ` Artur Malabarba
2015-04-13 22:49 ` Artur Malabarba
-- strict thread matches above, loose matches on Subject: below --
2015-04-18 12:25 Taylan Ulrich Bayırlı/Kammer
2015-04-18 13:32 ` Artur Malabarba
2015-04-18 14:24 ` Nic Ferrier
2015-04-18 15:16 ` Taylan Ulrich Bayırlı/Kammer
2015-04-18 17:35 ` Artur Malabarba
2015-04-18 18:25 ` Nic Ferrier
2015-04-18 18:48 ` Artur Malabarba
2015-04-18 15:11 ` Taylan Ulrich Bayırlı/Kammer
2015-04-18 17:16 ` Stefan Monnier
2015-04-18 17:56 ` Dmitry Gutov
2015-04-18 18:16 ` Taylan Ulrich Bayırlı/Kammer
2015-04-18 18:32 ` Artur Malabarba
2015-04-19 0:24 ` Drew Adams
2015-04-19 0:38 ` Artur Malabarba
2015-04-18 18:24 ` Artur Malabarba
2015-04-18 18:32 ` Dmitry Gutov
2015-04-19 8:19 ` Artur Malabarba
2015-04-18 18:04 ` Taylan Ulrich Bayırlı/Kammer
2015-04-18 18:23 ` Artur Malabarba
2015-04-19 3:07 ` Stefan Monnier
2015-04-19 6:44 ` Philipp Stephani
2015-04-19 8:11 ` Artur Malabarba
2015-04-18 22:37 ` chad
2015-04-19 6:40 ` Philipp Stephani
2015-04-19 8:04 ` Artur Malabarba
2015-04-20 0:43 ` Stefan Monnier
2015-04-20 7:54 ` Taylan Ulrich Bayırlı/Kammer
2015-04-20 12:42 ` Stefan Monnier
2015-04-20 14:31 ` Taylan Ulrich Bayırlı/Kammer
2015-04-20 16:01 ` Artur Malabarba
2015-04-20 17:29 ` chad
2015-04-20 18:38 ` Artur Malabarba
2015-04-20 19:40 ` chad
2015-04-20 19:07 ` Stefan Monnier
2015-04-20 15:19 ` Mark Oteiza
2015-04-27 9:52 ` Thierry Volpiatto
2015-04-27 11:03 ` Taylan Ulrich Bayırlı/Kammer
2015-04-27 14:01 ` Drew Adams
2015-04-27 12:32 ` Artur Malabarba
2015-04-27 14:10 ` Drew Adams
2015-04-27 14:15 ` Artur Malabarba
2015-04-27 14:36 ` Thierry Volpiatto
2015-04-27 12:46 ` Stefan Monnier
2015-04-27 13:43 ` Andy Moreton
2015-04-27 15:46 ` Stefan Monnier
2015-04-28 10:11 ` Artur Malabarba
2015-04-28 7:25 ` Oleh Krehel
2015-04-28 7:39 ` Artur Malabarba
2015-04-28 7:42 ` Oleh Krehel
2015-04-28 14:54 ` Wolfgang Jenkner
2015-04-28 16:46 ` Drew Adams
2015-04-28 17:29 ` Wolfgang Jenkner
2015-04-28 18:52 ` Artur Malabarba
2015-04-29 1:20 ` Stefan Monnier
2015-04-28 15:32 ` raman
2015-04-29 8:25 ` Thierry Volpiatto
2015-04-28 15:26 ` raman
2015-04-27 14:13 ` Drew Adams
2015-04-27 14:46 ` Thierry Volpiatto
2015-04-27 15:15 ` Artur Malabarba
2015-04-27 15:52 ` Stefan Monnier
2015-04-28 0:30 ` Stephen J. Turnbull
2015-04-29 8:01 ` Thierry Volpiatto
2015-04-29 13:09 ` Stefan Monnier
2015-04-28 0:25 ` Stephen J. Turnbull
2015-04-11 23:10 Vasilij Schneidermann
2015-04-12 1:00 ` Artur Malabarba
2015-04-12 16:46 ` Mark Oteiza
2015-04-12 19:43 ` Artur Malabarba
2015-04-12 20:05 ` Mark Oteiza
2015-04-12 20:28 ` Artur Malabarba
2015-04-12 3:56 ` Stefan Monnier
2015-04-12 9:58 ` Artur Malabarba
2015-04-12 12:02 ` Stefan Monnier
[not found] ` <20150412082125.GA490@odonien>
2015-04-12 10:07 ` Vasilij Schneidermann
2015-04-12 10:28 ` Artur Malabarba
2015-03-30 19:01 Artur Malabarba
2015-03-30 20:44 ` Stefan Monnier
2015-03-31 10:52 ` Artur Malabarba
2015-03-31 12:34 ` Stefan Monnier
2015-04-18 10:46 ` Ted Zlatanov
2015-03-31 8:53 ` Thierry Volpiatto
2015-03-31 10:55 ` Artur Malabarba
2015-03-31 12:29 ` Stefan Monnier
2015-03-31 12:48 ` Dmitry Gutov
2015-03-31 13:19 ` Thierry Volpiatto
2015-03-31 13:47 ` Thierry Volpiatto
2015-03-31 14:03 ` Thierry Volpiatto
2015-03-31 14:56 ` Artur Malabarba
2015-04-01 6:04 ` Thierry Volpiatto
2015-03-31 14:51 ` Sebastian Wiesner
2015-03-31 15:40 ` Artur Malabarba
2015-03-31 20:46 ` Stefan Monnier
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CALqDrSeaYdOEBvC_VmLwhbhRGKvUCVmUB3U1icjLoEXmOXwOTw@mail.gmail.com \
--to=jorgen.schaefer@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=v.schneidermann@gmail.com \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.