> Can you show how `package-alist` changes for `-go-mode` for you? To reproduce the case we need emacs 29.0.91 and ~/.emacs.d/elpa/go-mode-20170726.555/... ~/.emacs.d/elpa/go-mode-20220114.2239/... Run `emacs -Q` and `M-x package-initialize`. After that `package-alist` contains (go-mode #s(package-desc :name go-mode :version (20170726 555) :summary "Major mode for the Go programming language" :reqs nil :kind nil :archive nil :dir "/home/eab/.emacs.d/elpa/go-mode-20170726.555" :extras ((:keywords "languages" "go") (:url . "https://github.com/dominikh/go-mode.el ") (:commit . "99b06da201afb91e8db0c525c0f3c3590fd92fa6")) :signed nil) #s(package-desc :name go-mode :version (20220114 2239) :summary "Major mode for the Go programming language" :reqs ((emacs (26 1))) :kind nil :archive nil :dir "/home/eab/.emacs.d/elpa/go-mode-20220114.2239" :extras ((:url . "https://github.com/dominikh/go-mode.el ") (:keywords "languages" "go") (:maintainer "The go-mode Authors") (:authors ("The go-mode Authors")) (:commit . "fa2693278637f56759480d2bf203bb8aad107230")) :signed nil)) and `load-path` contains "/home/eab/.emacs.d/elpa/go-mode-20170726.555" On Mon, May 29, 2023 at 11:25 PM Stefan Monnier wrote: > >> 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. > > Can you show how `package-alist` changes for `-go-mode` for you? > > >> 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 > > That shouldn't be the case (unless you specifically asked for it via > something like `package-pinned-packages`). > > >> version because of NOSORT unpredictable version order in > >> package-alist and hence random paths in load-path > > In its, this shouldn't make a difference, because it just changes the > order in which we consult the `-pkg.el` descriptors to populate > `package-alist` whereas the *activation* of the `go-mode` package is the > one that should choose the one with the higher version number. > > > 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? > > Barring bugs, `package-alist` can be filled in any order (so the `nosort` > option shouldn't make a difference): we apply the proper sorting > (i.e. newest version at the front) in `package-process-define-package`. > > > Stefan > > -- __________________________ С уважением, Бойков Евгений Алексеевич сот. 8-924-202-25-65 e-mail: artscan@list.ru