[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: What is :core? (was: Stability of core packages (was: Not easy at al
From: |
João Távora |
Subject: |
Re: What is :core? (was: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot)) |
Date: |
Wed, 19 Apr 2023 13:57:13 +0100 |
No one knows, apparently, :-D
But what it means in practice, is that some files (or sets of files)
in the Emacs.git repository on the master branch are watched daily by the
scripts that govern the distribution of packages in https://elpa.gnu.org.
If those scripts notice a change in the ";; Version:" header of said files,
a packaged-up version of that code is tar'ed into a file named
package-<version>.tar.lz and archived somewhere in that site.
Then the tar.lz file can be installed in Emacs via 'package-install',
'use-package', or various other third-party means. Crucially (!) the
package can be installed even in older (sometimes quite a bit older)
versions of Emacs, depending on the value of "Emacs" in the
";; Package-Requires" header. When installed in these Emacs versions,
the package will dutifully perform the job _as if_ you were using it
as part of Emacs master version at the commit where the ";; Version:"
header was updated.
The ";; Version:" header of the Emacs.git repository files is
updated when the maintainers of this package deem the code and its
dependencies sufficiently stable and ready to enter this distribution
channel.
All in all, it is, IMHO, the best recent development we have had
to escape the glacially slow frequency of rolling out new features
in Emacs to the general public. As a user, you don't have to
compile a master Emacs, and -- frequently -- you don't even need to
upgrade your Emacs.
Entire "Emacs distributions" are built around this.
Doom Emacs, for example, requires just Emacs 27.2. But it gets the
user all the new stuff via ELPA (and MELPA, a cousin of ELPA).
There is an issue that no one foresaw, and that is bug#62720 where
this all started: When a package that wasn't :core becomes :core (it
had never happened but it did shortly before Emacs 29 was cut), then
some of the installation methods some people were using (notably Emacs's
built-in package manager) will start doing unexpected things when given
the same package to install.
João
On Wed, Apr 19, 2023 at 1:31 PM Lynn Winebarger <owinebar@gmail.com> wrote:
>
> On Tue, Apr 18, 2023 at 8:58 AM Eli Zaretskii <eliz@gnu.org> wrote:
> > This discussion no longer belongs to the bug tracker, so I'm moving it
> > to emacs-devel and changing its Subject. Please reply here, not
> > there.
>
> Is there any documentation for what ":core" refers to? Executing
> "grep -rn ':core' *" in the emacs source yields the following, which
> doesn't include any explanation:
>
>
> ChangeLog.3:81561: Turn Eldoc, Xref and Project into GNU ELPA :core packages
> ChangeLog.3:236132: * lisp/emacs-lisp/let-alist.el: Now an Elpa :core package
> ChangeLog.4:12044: project.el is a GNU ELPA :core package, so this
> kind of trick isn't
> lisp/emacs-lisp/eldoc.el:11:;; This is a GNU ELPA :core package.
> Avoid functionality that is not
> lisp/emacs-lisp/let-alist.el:12:;; This is an Elpa :core package.
> Don't use functionality that is not
> lisp/jsonrpc.el:10:;; This is a GNU ELPA :core package. Avoid
> functionality that is not
> lisp/progmodes/project.el:7:;; This is a GNU ELPA :core package.
> Avoid using functionality that
> lisp/progmodes/flymake.el:11:;; This is a GNU ELPA :core package.
> Avoid functionality that is not
> lisp/progmodes/xref.el:7:;; This is a GNU ELPA :core package. Avoid
> functionality that is not
> lisp/progmodes/eglot.el:12:;; This is a GNU ELPA :core package. Avoid
> adding functionality
> lisp/progmodes/eglot.el:57:;; available as GNU ELPA :core packages.
> Historically, a number of
> lisp/progmodes/eglot.el:58:;; :core packages were added or reworked
> in Emacs to make this
> test/lisp/progmodes/eglot-tests.el:39:;; IMPORTANT: Since Eglot is a
> :core ELPA package, these tests are
>
> Lynn
--
João Távora
- Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot), (continued)
- Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot), Eli Zaretskii, 2023/04/20
- Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot), Dmitry Gutov, 2023/04/20
- Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot), Eli Zaretskii, 2023/04/20
- Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot), Dmitry Gutov, 2023/04/20
- Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot), Eli Zaretskii, 2023/04/20
- Re: Stability of core packages, Philip Kaludercic, 2023/04/20
- Re: Stability of core packages, Eli Zaretskii, 2023/04/20
- Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot), Dmitry Gutov, 2023/04/20
- Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot), Lynn Winebarger, 2023/04/21
Re: What is :core? (was: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot)), Lynn Winebarger, 2023/04/19