Subject: Re: bug#16762: Installed packages are not considered part of the archive contents

From: Dmitry Gutov <[email-masked]>
Date: Fri, 21 Mar 2014 08:47:25 +0200

Johan Andersson <[email-masked]> writes:

> In snapshot, if a package is installed with the most recent version, it is
> not added to the variable package-archive-contents. I don't know the reason
> for this, but I don't think it makes sense. Even if the package is
> installed, it is still part of the package archives in my opinion.

This was changed in revision 113000, not exactly sure why.

Stefan, could you explain that part of the change?

Seems like it could've fixed installed packages wrongly showing up in
the `list-packages' list, but I don't remember having that problem. Was
it made to improve the behavior of `package-install'?

> You have to realize that other packages (such as https://github.com/cask/epl)
> depend on the internals of package.el because it does not have an API (for
> some reason). Considering Epl is a dependency to Cask and a lot of people
> are using Cask, this change will affect many users.

If you're building a house on shaky foundation, and don't work on the
foundation, having to fix the house from time to time seems to be in the
job description.

(Unlike many other packages, there are no developer(s) specifically
maintaining package.el, looking after its API, etc).

> With this change, how can I know if a package is available, no matter if
> it's installed or not?

Look in both `package-archive-contents' and `package-alist', probably.

Although that depends on your definition of "available".