[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#63757: 29.0.91 order of package paths changed: random old versions o
From: |
Philip Kaludercic |
Subject: |
bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path |
Date: |
Mon, 05 Jun 2023 07:55:46 +0000 |
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> Just to make sure I am not missing something in that case:
>> package-load-all-descriptors reads package descriptors either in
>> alphabetical order or in the order the operating system will list them
>> in the elpa/ directory. Via package-load-descriptor, the descriptor
>> expression is passed to the package-process-define-package, which will
>> insert them into package-alist according to the version number.
>
> That's right.
>
>> If this is so, then if the package developer does not bump the commit to
>> something else after releasing the package on GNU ELPA, then order of
>> the VC package vs. the tarball package would depend on order in which
>> they are returned from via `directory-files', since their version
>> according to `version-list-=' would be the same?
>
> If two installed packages have the same version, then indeed the sort
> order between them is "arbitrary" (it currently happens to put in first
> position the first package encountered, which may depend on the
> directory-files sort order but also on the order the packages are found
> along `package-directory-list` if they're not in the same dir).
Ok.
> So, to better handle the scenario you describe, we'd need/want something
> like the 100% untested patch below.
>
>
> Stefan
>
>
> diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
> index ba0e3618f28..01936a4fe0a 100644
> --- a/lisp/emacs-lisp/package.el
> +++ b/lisp/emacs-lisp/package.el
> @@ -698,8 +698,10 @@ package-process-define-package
> ;; If there is, insert the new package at the right place in the
> list.
> (while
> (if (and (cdr old-pkgs)
> - (version-list-< version
> - (package-desc-version (cadr old-pkgs))))
> + (let ((oversion (package-desc-version (cadr
> old-pkgs)))))
> + (or (version-list-< version oversion)
> + (and (equal version oversion)
> + (package-vc-p new-pkg-desc))))
But in this case, if a regular package is upgraded, and a VC package
weren't (even though the user might have written some patch they are
relying on), it would be suddenly switch when starting up Emacs at some
point.
> (setq old-pkgs (cdr old-pkgs))
> (push new-pkg-desc (cdr old-pkgs))
> nil)))
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, (continued)
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Eli Zaretskii, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Stefan Monnier, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Philip Kaludercic, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Eli Zaretskii, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Stefan Monnier, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Philip Kaludercic, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Eli Zaretskii, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Stefan Monnier, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Philip Kaludercic, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Stefan Monnier, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path,
Philip Kaludercic <=
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Stefan Monnier, 2023/06/05
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Eli Zaretskii, 2023/06/07
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Philip Kaludercic, 2023/06/07
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Stefan Monnier, 2023/06/07
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Eli Zaretskii, 2023/06/08
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Eli Zaretskii, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Stefan Monnier, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Stefan Monnier, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Eli Zaretskii, 2023/06/04
- bug#63757: 29.0.91 order of package paths changed: random old versions of packages in load-path, Stefan Monnier, 2023/06/04