Hello.

I am not confident how to classify this kind of behaviour change.
You can see the beginning of the discussion below.

Briefly, if you have different versions of packages in package-user-dir then pretest 29 loads random old versions of them whereas 28 loads mostly latest versions.

---------- Forwarded message ---------
From: Philip Kaludercic <philipk@posteo.net>
Date: Sat, May 27, 2023 at 6:23 PM
Subject: Re: emacs 04c4c578 pretest 29.0.91
To: Евгений Бойков <artscan@list.ru>


Евгений Бойков <artscan@list.ru> writes:

> Hello, Philip.

Hi,

> In your commit 04c4c578, package directories became NOSORT due to (fourth t
> argument)
>     (directory-files dir)
> replaced by
>     (directory-files dir t "^[^.]" t)
>
> It affects package-alist forming. For example, there are old and new
> versions of a package in my elpa directory:
>
> go-mode-20170726.555
> go-mode-20220114.2239
>
> After (package-initialize)
> in emacs 28 (require 'go-mode) gives 2022 version, e.g. the latest version
> of a package in most cases, directory-files default sorting works.
> In emacs 29.0.91 I get old 2017 version because of NOSORT unpredictable
> version order in package-alist and hence random paths in load-path.
>
> I just tried to move from 28 to 29.0.91 and got many errors due to old
> versions of many packages.
> Excuse me if it is a feature and I missed something.

No, this is not a feature but I think it might have uncovered a bug.
Relying on the ordering of file names (which IIRC is lexiographic not
numeric) is not a robust way to decide what packages should be preferred
when loading descriptors.  Could you submit a bug report to
bug-gnu-emacs@gnu.org so that this issue can be discussed with the other
maintainers?
--
__________________________

С уважением,
Бойков Евгений Алексеевич
сот. 8-924-202-25-65
e-mail: artscan@list.ru