Subject: Re: bug#66554: [PATCH] Add the public API of Compat to the core

From: Stefan Monnier <[email-masked]>
Date: Thu, 11 Jan 2024 15:11:54 -0500

> --- a/lisp/subr.el
> +++ b/lisp/subr.el
> @@ -6873,9 +6873,9 @@ version-separator
>  
>  Usually the separator is \".\", but it can be any other string.")
>  
> -
>  (defconst version-regexp-alist
> -  '(("^[-._+ ]?snapshot$"                                 . -4)
> +  `(("^[-._+ ]?hyper$"                                    . ,most-positive-fixnum)
> +    ("^[-._+ ]?snapshot$"                                 . -4)
>      ;; treat "1.2.3-20050920" and "1.2-3" as snapshot releases
>      ("^[-._+]$"                                           . -4)
>      ;; treat "1.2.3-CVS" as snapshot release

Relying on a change in `version-regexp-alist` open a can of worms.
It's much simpler to make sure the GNU ELPA `compat` package uses
versions of the form `30.0.NN` (or `30.1.NN` if it means it
offers functionality from Emacs-30.2, tho hopefully we'll never get
there).

>>>> Is there a place where we could add a warning to make sure that
>>>> bumping the version won't be forgotten?

The addition cab done procedurally, as in

    ;;;;####autoload (push (list 'compat emacs-major-version emacs-minor-version) package--builtin-versions)

-- Stefan