On 2/3/2022 1:30 PM, Tim Cross wrote:
Is the transient.el included in Emacs 28 the same as the one on GNU
ELPA?
Currently, yes. They're both 0.3.7. However, that could obviously change
in the future (e.g. a user on 28.1 would likely have transient 0.3.7,
though GNU ELPA might have transient 0.3.8 if it were released one day).
I'm assuming it is, but I have to admit I'm still not 100% clear
on how Emacs handles the situation where you use a library that is both
built-in and available in ELPA. Does Emacs use the latest version
available or does it use the built-in version until you explicitly
select the ELPA versions?
Emacs will use the built-in version of a package provided that package
meets the version requirements. For the version of Org Mode that comes
with Emacs, it would always use the built-in transient (largely because
maintainers wouldn't do it any other way). If you download a newer Org
version from GNU ELPA, I believe it checks the package metadata and then
will fetch transient from GNU ELPA as well if the built-in version is
too old.
(I haven't looked at the code to verify this, but it's how Eglot worked
when I installed it. Eglot wants newer versions of eldoc, xref, project,
etc than Emacs 27.2 provides, so package.el automatically installs them
when installing Eglot.)
- Jim