* doing this would instantly break the configuration of everyone who
customizes package.el or uses it in a nonstandard way -- can anyone
think of a way to maintain some backward compatibility so Drew can
keep his configuration working from Emacs 20 to Emacs 26? ;)
To be clear: I do not use the package system (except rarely, if I need to check a problem reported by someone).
This is partly because I don't use packages, in general. And it is mostly because I use multiple versions of Emacs and multiple configurations, for testing, and I don't want to be bothered with telling package.el what to do and not do each time I use Emacs. My use case is, I think, different from someone who typically wants the same stuff available and turned on in each Emacs session.
So I don't imagine that what you envision (which I haven't followed in detail) should affect me, personally. If I can easily use or not use the package system for any given Emacs session then it will likely be OK by me. (I would in fact like that to be even easier than now. "Installing" packages and enabling them seems too monolithic, to me. It seems to assume that a given user has only one set of preferences, which s?he uses all the time.)
My feedback in this thread is not particularly about how it affects me, personally. It is about how (I think) it affects Emacs users generally (where by "generally" I mean taking into account their diverse use patterns, not just "mostly" as in a majority of users).
Drew, Stefan, Eli -- would you be comfortable with this alternative
proposal, to add a second init-file as I've outlined above? It would
make package.el "just work" in all cases, without requiring any change
to the user's init-file, as long as users read docstrings before
customizing `package-load-list' etc., and as long as we're prepared to
sacrifice a little backwards compatibility (although maybe we can be
smart about it and make the change pretty painless).
I'm not sure I understand it, i.e., just what changes for users. And just what compatibility loss is there?
For example, you say:
made absolutely sure that it's trivial to disable package.el permanently and unconditionally by setting `package-enable-at-startup' in this second init-file
But in your proposal the first init file is apparently loaded after `package-initialize' is done. So it sounds like users will have `package-initialize' inflicted on them unconditionally. How does that jibe with choosing not to use the package system (ever, or for a particular Emacs session)? How is it trivial to tell package.el "Hands off", if `package-initialize' is always done?