On 10/25/26 06:17, Kamila Szewczyk wrote:
> There are other packages that use date stamps instead of version
> numbers, so either those parsers can handle that or they already fail
> on some existing packages.  That is their problem, not ours.

They won't fail on such packages.  They won't be used to begin with, and instead, the maintainers will have to update them manually.  I don't see the benefits of making everything more annoying for everyone and insisting on the timestamp instead of a simple incrementing version number.

Simple:  the GNU config scripts already have timestamps, and outside standards (like refusing to accept YYYYMMDD as a version number) are not our problem. (<URL:https://www.gnu.org/prep/standards/standards.html#Non_002dGNU-Standards>)

> GNU config is mature and *every* published version is expected to be
> stable, correct, and deployable.  There are no "development" versions
> of these scripts in the main repository (anymore?).

Well, if you insist...  I ran a script to search the repository in parallel for shell syntax errors and I quickly got this result:

9bbefc1 -- "config.guess (:Darwin::*): Simplify UNAME_PROCESSOR." was committed on 28 May 2019, replacing an `if' with a `case' but left the closing `fi'.  As a result trying to run `sh -n config.guess' unconditionally fails.  A fix has been committed 2h30min later, but if someone depended on the trunk version being "stable, correct, and deployable," they were out of luck on that day.  I disagree that the script has no development versions; every version is a development version that is incidentally seldom usable as a release version.

I did say "(anymore?)" and your counter-example is from seven years ago and was fixed in less than three hours.

I believe that you have mentioned a recent bungled Automake release because `make fetch` failed due to Savannah being crushed under the scraper horde at an inopportune time?

> That (drop in new config.{guess,sub}) works reliably *because* there
> will never be a SemVer major release 2 of GNU config.  All future
> version retain compatibility with the old interface, which means that
> even an ancient configure can use the latest scripts.

Simple grep for common breaking change keywords over all commit messages yields the following result:

28ea239 -- "config.sub: Remove windows-gnu." was committed on 19 September 2023.  A breaking change is defined as a previously accepted input becoming an error.  Running `sh config.sub x86_64-windows-gnu' demonstrates exactly this behaviour before and after the commit was pushed.

I view it differently:  interface compatibility has been (and will be) preserved.  That a specific configuration tuple was deprecated and declared invalid does not break backwards compatibility.  The scripts are still "drop-in" updates.


-- Jacob


Reply via email to