From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Allowing rolling release packages on ELPA Date: Wed, 26 Oct 2022 14:55:13 -0400 Message-ID: References: <87o7u4p2t4.fsf@posteo.net> <87sfjbrt6h.fsf@posteo.net> <87czaev3lc.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18640"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Philip Kaludercic Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Oct 26 20:56:07 2022 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 1onlZP-0004dZ-4i for ged-emacs-devel@m.gmane-mx.org; Wed, 26 Oct 2022 20:56:07 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1onlYg-0003LN-HN; Wed, 26 Oct 2022 14:55:22 -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 1onlYe-0002Va-Lb for emacs-devel@gnu.org; Wed, 26 Oct 2022 14:55:20 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1onlYc-0006VI-N5 for emacs-devel@gnu.org; Wed, 26 Oct 2022 14:55:20 -0400 Original-Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 12D454425C1; Wed, 26 Oct 2022 14:55:17 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 37A59440CCB; Wed, 26 Oct 2022 14:55:15 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1666810515; bh=AegIQ9trVdaicOlaIgElXJk8X4oVY/HObU2UfXZpGeE=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=IpdHcWQrP2jpimIlmrkJLsvp3FB4/Z3UVZubKGpRFdxY/g79jabTe5LXYNIPcNA0m b9kDMFEWgMCvDsZyuBvk+MxAwlxBbG73qTvB6VN0/htGvEn1N+PUvxOhRpgY1Cel0i 70u82ZdsFDIdMGcHq1rHZOdqKpGHmxbNaIuln1KkHOh7crT8zOEAJ9F2xLdInx3Zqw ot0gAi8wQXzrB0vTGSd9c4o/eWNQps1G0HHYD97sKrgFGqCpt+osfvhLWmWx0CyTHL iOGdgl6zciLf0zN5R/XP+/ldcYfW/eKBRXhs4YZMZceo8uxExKBBm4vxcVDJPTw/cT Wpy/coZIyNRGg== Original-Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id AD043120F46; Wed, 26 Oct 2022 14:55:14 -0400 (EDT) In-Reply-To: <87czaev3lc.fsf@posteo.net> (Philip Kaludercic's message of "Wed, 26 Oct 2022 18:31:43 +0000") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Original-Sender: "Emacs-devel" Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:298571 Archived-At: > How does this look like: LGTM, thanks. [ We may want to refine this later, e.g. to avoid the resulting redundancy between GNU and GNU-devel, but I'm not sure yet what we'll want to do it about it, so let's see how it works first. ] Stefan > From 6f746b919d3a377cf8ef0f9aa34ebbf9969b0188 Mon Sep 17 00:00:00 2001 > From: Philip Kaludercic > Date: Sun, 16 Oct 2022 18:05:40 +0200 > Subject: [PATCH] Add support for rolling-release packages > > * README: Document :rolling-release > * elpa-admin.el (elpaa--get-release-revision): Respect > :rolling-release. > (elpaa--make-one-package): Respect :rolling-release. > --- > README | 11 ++++++++++- > elpa-admin.el | 10 +++++++++- > 2 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/README b/README > index 4ff305047a..1c42f13cd7 100644 > --- a/README > +++ b/README > @@ -1,5 +1,5 @@ > #+TITLE: ELPA-Admin README > -#+DATE: 2022-01-06 > +#+DATE: 2022-10-26 > > Copyright (C) 2010-2022 Free Software Foundation, Inc. \\ > See the end of the file for license conditions. > @@ -168,6 +168,15 @@ this ORIG-VERSION (or REMAPPED-VERSION if non-nil) to override > the default heuristic which uses the last revision that modified the > "Version:" header. > > +** =:rolling-release FLAG= > +If FLAG is non-nil, a new package will be released for every new > +commit, instead of just on incrementing the "Version" header. FLAG > +can optionally be a string, in which case the package is only released > +if the version is equal to FLAG. > + > +Note that the usage of this option is discouraged. Only use it if the > +package maintainer explicitly wishes to use a "rolling release" model. > + > * Configuration (elpa-config) > > The configuration file is a `lisp-data-mode` file containing > diff --git a/elpa-admin.el b/elpa-admin.el > index a1eec9c448..7ed78430d6 100644 > --- a/elpa-admin.el > +++ b/elpa-admin.el > @@ -194,6 +194,7 @@ commit which modified the \"Version:\" pseudo header." > (not (member vers (car version-map)))) > (pop version-map)) > (or (nth 2 (car version-map)) > + (and (elpaa--spec-get pkg-spec :rolling-release) "HEAD") > ;; When the mainfile is a symlink (e.g. for :core packages), run Git > ;; in the directory that holds the actual file, otherwise Git won't > ;; know what file we're talking about. > @@ -945,7 +946,8 @@ place the resulting tarball into the file named TARBALL-ONLY." > dir pkg-spec > `(nil ,devel-vers > . ,(nthcdr 2 metadata)) > - nil tarball-only)))) > + nil tarball-only))) > + (rolling-release (elpaa--spec-get pkg-spec :rolling-release))) > > ;; Try and build the latest release tarball. > (cond > @@ -972,7 +974,13 @@ place the resulting tarball into the file named TARBALL-ONLY." > tarball dir pkg-spec metadata > (lambda () (cdr last-rel))) > (elpaa--release-email pkg-spec metadata dir))))))) > + ((and (stringp rolling-release) > + (not (version= rolling-release vers))) > + (elpaa--message "Expected version %s, but got %s for package %s!" > + rolling-release vers pkgname)) > (t > + (when rolling-release > + (setq vers devel-vers)) > (let ((tarball (concat elpaa--release-subdir > (format "%s-%s.tar" pkgname vers)))) > (when (elpaa--make-one-tarball