From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel 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 Message-ID: References: <87a5zj2vfo.fsf@gmail.com> <83wn2h5825.fsf@gnu.org> <87wn2gkhzr.fsf@posteo.net> <83cz485oxi.fsf@gnu.org> <87leiwdyff.fsf@posteo.net> <834jpk5hih.fsf@gnu.org> <871qkom3fj.fsf@posteo.net> <83mt3b4yfc.fsf@gnu.org> <87edonlsxi.fsf@posteo.net> <83jzyf4vzb.fsf@gnu.org> <871qknllkj.fsf@posteo.net> <83fs934pjf.fsf@gnu.org> <87wn2fk47y.fsf@posteo.net> <83sfd2g2ek.fsf@gnu.org> <875y9yfxrr.fsf@gmail.com> <87y1muefks.fsf@gmail.com> <834jpifizy.fsf@gnu.org> <83y1mue1qi.fsf@gnu.org> <83sfd2e01f.fsf@gnu.org> <1a5e5837-513b-84d8-3260-cdbf42b71267@gutov.dev> <83sfcz9rf2.fsf@gnu.org> <09a49ab9-ac72-36a9-3e68-9c633710eba7@gutov.dev> <83r0sh8i1q.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16189"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , Dmitry Gutov , emacs-devel To: Lynn Winebarger Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Apr 19 14:58:00 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pp7Nn-00041I-Sr for ged-emacs-devel@m.gmane-mx.org; Wed, 19 Apr 2023 14:57:59 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pp7NQ-0006ng-1N; Wed, 19 Apr 2023 08:57:36 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pp7NI-0006nJ-Qc for emacs-devel@gnu.org; Wed, 19 Apr 2023 08:57:30 -0400 Original-Received: from mail-oo1-xc29.google.com ([2607:f8b0:4864:20::c29]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pp7NG-0005Qc-Ep; Wed, 19 Apr 2023 08:57:28 -0400 Original-Received: by mail-oo1-xc29.google.com with SMTP id k1-20020a4ab281000000b0053e8b5524abso2367650ooo.2; Wed, 19 Apr 2023 05:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681909044; x=1684501044; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=sqg55rROwV2Blt1zLr0ozdtK3iJQkq9Bt5s21GF5v5s=; b=cp0XMSoTnmP1OruPa+V4hj7criN07w90GwzhrWcRjGZcqidJyypJcRhAL+TYZk4c2h h19ijGA+90biI/CS1fqWLzQIOYsXyxV0C6Nx0/BJqS2ElaScWhQZ3gpWqDOEtTn9gFSP FTz2ifTFS3G0z04S30mqzBEXlJ7OkufIfy0m8BcUn/c3uf/vCsekzXzbWsKXObdF3vDm 7cror8RY4qqBZBIBsNwAKT/ACX+e/oX9ZBJLxeHM06pAhl1Ld2ZLqxDSy60gcrsJ9VJt WdG1hFiVg8/jZw7az6w/76TXVjoRjyA2exjjrZCqKxoAA7aFOVk+Ea95IQOHrjihSdHT TD5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681909044; x=1684501044; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sqg55rROwV2Blt1zLr0ozdtK3iJQkq9Bt5s21GF5v5s=; b=GxodAWGyGBkl3X7FltFtDZHy/ia3rYsF/8llvTftsW+d7kLh2r/TO2SN3LUK5/yVIP 8Mj1ru+kVN12qDtGiEB+eAeOUa6rQCiNgoM1XKoGRh14PVhVBb2iMq7t+W7tNkOLpTlV RC/scqjocgDdmb1cQ8e8Oelds7rlGg5QaXgqO+xUidkRoY37YD5kGqrPOYkXNCAs5S+H odK+t/tiWbRFniIzxphZabh4MrKvyVw+mam7MRIR5KuqUyIckOrlZB/sGZBCh90MPjC5 n9om+X7BfX02za+DPwxT8QJZtj9+UZ6cXUtNH9dMpOZH2zK4yItThvrvBJ6pA7JMNimZ Qjnw== X-Gm-Message-State: AAQBX9dXUlwNyvLBgpvT6fHgH0Jvkp8UGUvVQKq6LABKSAszzJZx0GCL f6X8Fty1iRAW+5hRGVwD2fRbys15XOlyIu9/qOs= X-Google-Smtp-Source: AKy350Y3odcASmPHihOc/sa8XFsotDso2LoVKfez5yQQ76GhyetdzGe4/K+Dnn/nvljDgn7b15PI/WePBLp2hixmYgo= X-Received: by 2002:a4a:41c6:0:b0:546:f42b:685b with SMTP id x189-20020a4a41c6000000b00546f42b685bmr3134264ooa.5.1681909044556; Wed, 19 Apr 2023 05:57:24 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::c29; envelope-from=joaotavora@gmail.com; helo=mail-oo1-xc29.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:305435 Archived-At: 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-.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=C3=A3o On Wed, Apr 19, 2023 at 1:31=E2=80=AFPM Lynn Winebarger wrote: > > On Tue, Apr 18, 2023 at 8:58=E2=80=AFAM Eli Zaretskii wrot= e: > > 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 packa= ges > ChangeLog.3:236132: * lisp/emacs-lisp/let-alist.el: Now an Elpa :core pac= kage > 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 --=20 Jo=C3=A3o T=C3=A1vora