From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.devel Subject: Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot) Date: Tue, 18 Apr 2023 11:56:58 -0700 Message-ID: <35638c9d-e13f-fad8-5f95-ea03d65d4aa2@gmail.com> References: <87a5zj2vfo.fsf@gmail.com> <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; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31549"; mail-complaints-to="usenet@ciao.gmane.io" Cc: joaotavora@gmail.com, emacs-devel@gnu.org To: Eli Zaretskii , Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Apr 18 20:57:52 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 1poqWW-00083N-5U for ged-emacs-devel@m.gmane-mx.org; Tue, 18 Apr 2023 20:57:52 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1poqVm-0000MM-KG; Tue, 18 Apr 2023 14:57:06 -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 1poqVl-0000M9-Mz for emacs-devel@gnu.org; Tue, 18 Apr 2023 14:57:05 -0400 Original-Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1poqVi-0006we-NU; Tue, 18 Apr 2023 14:57:05 -0400 Original-Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-51f6461af24so771910a12.2; Tue, 18 Apr 2023 11:57:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681844221; x=1684436221; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=HyTqRG/G/pk3VwuiOG1CVGaItOrKWsWaWROHRZrpv/8=; b=gf/uXBgz9RjGLJym57EPoK4qej+CKaGWrQ2Y4YedL0UMPD1RAOw0Rij+uC1vsKNuLw pLNxeExOISc+8VBiqlCSh0bhORuBl+/cl988ePlPlbNj7hjOX83fB1tUuUx/KW6r8lT1 HvI7lbYgfZT8MPVdieRUNSSCHNwhQIt90iEBp57cXrfYLK2b09Tj6l9jMg5C8pcjF5tp J1NLq/VxoUrjSQ1QSE1CxDn61BGYisdB6kQsOFsJhi45tVli1qWVwlanPED+z8082SXw 5UBxMccQIbFuBd8OADkS/zdAvB1GGyeH/oxtAxVwDAwntFh2ViwoWG9gr4XOTvYR4T31 yFEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681844221; x=1684436221; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HyTqRG/G/pk3VwuiOG1CVGaItOrKWsWaWROHRZrpv/8=; b=WWnj7+RDhXRc5VkgugV33Q50H6aXeyAR2VKg+16atKAYYMe2pjHjwdu4rRjhugORgZ bVm6dQVg2BwmIcky0OgtrrdNTS7UQFSNId2z/5+1S9D6YQMlW6FpfS/89y2SRvHUjFjj VX2fqLnP/fT0vqyW8k2D03U5BCOAmIWOmi/s0E6yPwwGSmgiQrwiIlrO9cNyPd+yWK1D yS8G10wihGJGmXprvs/7ABeZW824uuDU46joewoKN+LGhRHKWTrvu6SUPr5LPJWh3LsZ MC860GU+9QZiFb9MZTDDYxzvnrYL+0va16yXOiLhsqAhwOK75s0zhlkD/zLZl//T4qse Tmhg== X-Gm-Message-State: AAQBX9cXnlCl+lzbSY3aVtBA9OOxRALwNixVXIAeX9kKNAxylbWRbZiv S2g4KxuCBT3A95HfPLi+KX0RFfuKJs095Q== X-Google-Smtp-Source: AKy350YrdSxaGUFJstp8YoQqfl4MskFt+AYhDOljUVJFU0+nJiVKS1SYd0D/SdvIS0T2BvX54Ns7rg== X-Received: by 2002:a17:90b:4b87:b0:23f:ebf2:d3e9 with SMTP id lr7-20020a17090b4b8700b0023febf2d3e9mr608553pjb.6.1681844220556; Tue, 18 Apr 2023 11:57:00 -0700 (PDT) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id m4-20020a17090ade0400b00231227781d5sm11127782pjv.2.2023.04.18.11.56.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 18 Apr 2023 11:57:00 -0700 (PDT) Content-Language: en-US In-Reply-To: <83r0sh8i1q.fsf@gnu.org> Received-SPF: pass client-ip=2607:f8b0:4864:20::535; envelope-from=jporterbugs@gmail.com; helo=mail-pg1-x535.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:305417 Archived-At: On 4/18/2023 5:57 AM, Eli Zaretskii wrote: > So this again goes back to the main issue: how should the stability > considerations affect development of core packages and their > "stability gradation"? It sounds to me like there are 3 or 4 levels (depending on how you count): * Stable: the version of a package included in the latest Emacs tarball * Latest: the latest version on GNU ELPA (etc) * Devel: the latest version on GNU-devel ELPA (etc) You could possibly add: * Core(?): the version of a package included in the tarball of the user's *current* Emacs installation I think these 3 or 4 levels should be plenty for 99% of scenarios. From this, we can also propose a hard rule: packages at a certain level should only depend on other packages at the same level or lower (so a "latest" package can't depend on a "devel" package). We could also add as soft guidance: a package should do its best to require only stable versions of dependencies where feasible. However, this runs into the problem João saw: if your package (e.g. Eglot) would strongly benefit from requiring a newer version of a dependency (ElDoc), what should you do? Currently, the only options are a) do nothing and let users have a worse experience or b) make the user upgrade the dependency too, even if they don't particularly want it. Neither solution seems ideal to me. One alternative would be for packages to be able to *recommend* dependencies. Then, Eglot could recommend newer versions of ElDoc, but they wouldn't actually be required. We could do this via some extra package metadata, or maybe the follow simple solution would be enough: when installing a package from a particular archive[1], offer the user the option of also installing any of the package's requirements from that archive too. So, if I installed Eglot from GNU ELPA, Emacs would suggest that I also install ElDoc, etc from GNU ELPA too. (Of course, if a package truly *requires* a newer version of a package that's only available in ELPA, it wouldn't need to prompt the user.) [1] You could also think of this as "installing a package of a particular stability level".