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 -- 2.38.0