unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@IRO.UMontreal.CA>
To: Radon Rosborough <radon.neon@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: Interoperation between package managers
Date: Sun, 13 Aug 2017 19:32:38 -0400	[thread overview]
Message-ID: <jwv7ey7njqw.fsf-monnier+Inbox@gnu.org> (raw)
In-Reply-To: <CADB4rJFf0kOSF6hjkAvuv3vYw2ff7M3yTsDZBw6qOxj+sk1veA@mail.gmail.com> (Radon Rosborough's message of "Sun, 13 Aug 2017 15:42:48 -0700")

>> I'd probably want to also unify the two files into one (which would
>> likely hold the concatenation of <pkg>-pkg.el and
>> <pkg>-autoloads.el).
> I'm a little wary of this idea. It seems to me like <pkg>-autoloads.el
> is purely an implementation detail (or "build artifact") of the
> package manager, whereas <pkg>-pkg.el contains author-maintained
> metadata that should be checked into version control in the upstream
> repository.

My view is that <pkg>-pkg.el should be built from metadata stored
elsewhere (that's what we do in elpa.git).

>> I think it's very important to be able to have several versions of a
>> given package installed at the same time.
> This is another concept which makes a lot of sense in the
> tarball-from-ELPA workflow, but not much sense in the source-based
> workflow (where you don't need to save old versions because you can
> revert to any version at any time).

I was thinking about it in the context of packages which can come from
the user's config as well as from the system (i.e. installed by the
sysadmin).

There are other cases where it can make sense.  E.g. have both foo-1.0
and foo-2.0 installed at the same time, because foo-2.0 requires
Emacs-25 and you use both Emacs-25 and Emacs-24.

I agree that these needs aren't the most common ones, but you don't gain
anything by disallowing them, really.

>> Specific requests (especially patches) are very welcome here.
> Unfortunately, I can't contribute patches since I am already too busy
> maintaining my own package manager.  However, I can give some
> suggestions for things that need to be explained.

These look like info about the internals, and indeed we don't document
them very much.  Some of them are purposefully not documented ("use the
source, 'cause it might change").  But there's a a lot of room for
improvement anyway.  I'll see if I can improve on that.

> * What is the format of a package on the server?

AFAIK this is documented somewhere.

> * What does activating a package mean? Again, I know that it entails
>   evaluating the autoloads file and adding a directory to the load
>   path, but most people don't.

Actually "adding a directory to the load path" is only there by
accident: it should be done by the autoloads file.

> * Why is package-initialize so slow?

I don't know that it is, so I can't answer the question.

>   What are the bottlenecks when you
>   activate lots of packages?

I haven't looked into.  If you find performance problems,
M-x report-emacs-bug is probably the best option, so we can try to find
how to improve the situation.

> Maybe package.el is simple, but unless there's a clear statement that
> "this documentation covers exactly what package.el does", there's
> always the concern that more magic is going on, given how opaque the
> source code is.

The source code of package.el is not supposed to be opaque.  I wasn't
the original author and I didn't find it opaque when I looked at it.
So if it's opaque, maybe it's my fault, but I'm probably not the right
guy to fix it, then ;-)


        Stefan



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

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-07  0:37 Friendly discussion about (package-initialize) Radon Rosborough
2017-08-07  1:39 ` Stefan Monnier
2017-08-07  2:16   ` Radon Rosborough
2017-08-07  2:44     ` Stefan Monnier
2017-08-07  4:12       ` Radon Rosborough
2017-08-09 20:24         ` Stefan Monnier
2017-08-10  3:32           ` Radon Rosborough
2017-08-10  4:25             ` Eli Zaretskii
2017-08-10  4:39               ` Radon Rosborough
2017-08-10  7:24                 ` Eli Zaretskii
2017-08-10 17:06                   ` Radon Rosborough
2017-08-10 19:08                     ` Eli Zaretskii
2017-08-10 19:31                       ` Radon Rosborough
2017-08-10 20:00                       ` Mark Oteiza
2017-08-11  6:14                         ` Eli Zaretskii
2017-08-11  1:25                     ` Nick Helm
2017-08-11 21:43                       ` Stefan Monnier
2017-08-09 20:35         ` Interoperation between package managers (was: Friendly discussion about (package-initialize)) Stefan Monnier
2017-08-10  3:54           ` Radon Rosborough
2017-08-10 21:34             ` Interoperation between package managers Stefan Monnier
2017-08-11  2:14               ` Radon Rosborough
2017-08-11 22:05                 ` Stefan Monnier
2017-08-12 17:54                   ` Radon Rosborough
2017-08-12 20:53                     ` Jonas Bernoulli
2017-08-13 21:43                       ` Stefan Monnier
2017-08-13 21:25                     ` Stefan Monnier
2017-08-13 22:42                       ` Radon Rosborough
2017-08-13 23:32                         ` Stefan Monnier [this message]
2017-08-14  0:29                           ` Radon Rosborough
2017-08-14  8:02                             ` Stefan Monnier
2017-08-23 19:39             ` Nikolay Kudryavtsev
2017-08-23 20:58               ` Radon Rosborough
2017-08-24 12:36                 ` Nikolay Kudryavtsev
2017-08-24 20:11                   ` Radon Rosborough
2017-08-25 14:31                     ` Nikolay Kudryavtsev
2017-08-24 15:04               ` Ted Zlatanov
2017-08-24 15:46                 ` Nikolay Kudryavtsev
2017-08-07  3:20   ` Friendly discussion about (package-initialize) Noam Postavsky
2017-08-07  4:14   ` Mark Oteiza
2017-08-08  0:47     ` Stefan Monnier
2017-08-10 20:15       ` Mark Oteiza
2017-08-10 21:29         ` Stefan Monnier
2017-08-11  1:14           ` Mark Oteiza
2017-08-11  8:03             ` Clément Pit-Claudel
2017-08-07  6:52 ` Colin Baxter

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=jwv7ey7njqw.fsf-monnier+Inbox@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=radon.neon@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 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).