emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Obtaining the version of an installed package


From: Bozhidar Batsov
Subject: Re: Obtaining the version of an installed package
Date: Wed, 11 Aug 2021 10:15:36 +0300
User-agent: Cyrus-JMAP/3.5.0-alpha0-554-g53a5f93b7d-fm-20210809.002-g53a5f93b

On Mon, Aug 9, 2021, at 6:39 PM, Stefan Monnier wrote:
Bozhidar Batsov [2021-08-09 17:03:21] wrote:
> I guess that could work, although from what I gathered it operates only on
> the current package. I was hoping to find something like an API like
> `(package-get-version 'package-name)`.

Ah, no, we don't have such an abstraction.

Currently, you'd have to use the `package--alist` function (whose first
call will take a bit of time to real all the <FOO>-pkg.el files) and
then look inside its return value with `package-desc-<foo>`.

Got it, thanks!


[ That's assuming you're interested in the packages currently installed.
  If you're interested in the packages currently activated, then you
  have that list in `package-activated-list` but that fails to record
  which version has been activated :-(  ]

Patches welcome to add more friendly accessors.

Will keep this in mind!


I'm also curious to know the specific context in which you need that
info.  Is it to test at runtime whether some dependency includes
a particular bugfix/feature ?

Yeah, something like this. Probably an overkill and it's not something I really need right now.
What I mostly needed was to extract the installed version of a snapshot package for debug purposes (useful for packages on MELPA to understand how old is the snapshot someone installed there). E.g. I print this in CIDER's REPL:

;; CIDER 1.2.0snapshot (package: 20210729.521)

In this case the "real" version 1.2.0-snapshot, but there's also the MELPA package version, that's basically the date the package was built.
The function you mentioned might help with this, probably in combination with lm-version. 



        Stefan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]