Closed Silex closed 9 months ago
Doesn't look like a problem with Eldev. It's probably that some unstable package has a bug that is only triggered in Emacs 29.1. I'd suggest you compare exact dependency versions with a workflow where it "was working before". Most likely a change in one of those resulted in this bug.
Paul
On Thu, 9 Nov 2023 at 10:42, Philippe Vaucher @.***> wrote:
Hello,
Can you help figure out why I have this error?
https://github.com/Silex/docker.el/actions/runs/6809956722/job/18517267196
It came out of the blue, it was working before.
— Reply to this email directly, view it on GitHub https://github.com/emacs-eldev/eldev/issues/93, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABYPBKZLZZID6KMXHHWQWTYDSQOTAVCNFSM6AAAAAA7EIANYGVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE4DKMRSHE2DOMA . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Okay, thanks that makes sense given melpa stable builds without any issue 👍
EDIT actually no stable is quite outdated compared to unstable so that's why. Will compare with the previous build that worked.
Well the only thing that seems to have changed is tablist and the changes are so minor I don't get it:
https://github.com/politza/tablist/compare/master...emacsorphanage:tablist:master
Honestly it really looks like emacs 29.1 is missing the seq-25 library:
Working: https://github.com/Silex/docker.el/actions/runs/6423514290/job/17442172631 Not working: https://github.com/Silex/docker.el/actions/runs/6809956722/job/18519519959
We can see that 28.2 also works: https://github.com/Silex/docker.el/actions/runs/6809956722/job/18519519424
Ok I really ran the exact same code as the previous working one and it's still failing, but I think I maybe found why:
https://github.com/Silex/docker.el/actions/runs/6810836257/job/18519948977
@purcell: maybe emacs 29.1 in nix-emacs-ci recently changed (https://github.com/purcell/nix-emacs-ci/commit/fea8d89381cb064d1f3cb6b7ec95d161f640d0b3) and seq-25
is missing from it?
Seems to be a bug in Emacs itself, actually. However, I'm not sure why it is triggered only on certain version.
To reproduce, save the following Elisp snippet:
(require 'package)
(setf package-user-dir "/tmp/elpa"
package-archives '(("gnu-devel" . "https://elpa.gnu.org/devel/")))
(package-refresh-contents)
(let ((debug-on-error t))
(package-install (cadr (assq 'seq package-archive-contents))))
and then from the command line run:
$ emacs --batch --load bug.el
Result here:
$ emacs --batch --load ~/test/test.el
Importing package-keyring.gpg...
Importing package-keyring.gpg...done
Contacting host: elpa.gnu.org:443
Contacting host: elpa.gnu.org:443
Package refresh done
Setting ‘package-selected-packages’ temporarily since "emacs -q" would overwrite customizations
Contacting host: elpa.gnu.org:443
Parsing tar file...
Parsing tar file...done
Extracting... \
Extracting...done
INFO Scraping files for loaddefs...
INFO Scraping files for loaddefs...done
Source file ‘/tmp/elpa/seq-2.24.0.20230904.183335/seq.el’ newer than byte-compiled file; using older file
Debugger entered--Lisp error: (file-missing "Cannot open load file" "No such file or directory" "seq-25")
require(seq-25)
byte-code("\301\10\302\"\203\16\0\303\304!\210\202\22\0\303\305!\210\306\307!\207" [emacs-version version< "25" require seq-24 seq-25 provide seq] 3)
#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_32>(("/tmp/elpa/seq-2.24.0.20230904.183335/seq" . 76))
...
Yes, I've hit this too, with my own start-up. Here's the workaround I use to avoid it: https://github.com/purcell/emacs.d/blob/bab418cb1c25e435fb8fafdb7144f8024fc75bc0/lisp/init-elpa.el#L89-L98
After installing the ELPA version of seq
, Emacs decides it must re-load seq
(presumably because it was already loaded from the built-in version), and then loads seq.el
from the downloaded ELPA package. The problem is that at this point it hasn't added the new ELPA package's installation directory to load-path
, so when seq.el
tries to load seq-25.el
, Emacs fails to find that file.
I haven't submitted this upstream, and I couldn't see reports of it elsewhere, so I assumed I was the only person with this curse, or that it was caused by transitive dependencies present in my config. Your concise reproduction example makes it very clear that it's an Emacs bug IMO, so I'd encourage you to report it.
Emacs decides it must re-load seq
That's actually a sane thing to do. I have seen quite a few problems arising from mixing up old and new (after upgrade) packages, including several with Eldev too.
The problem is that at this point it hasn't added the new ELPA package's installation directory to load-path, so it fails to find the seq-25.el file there.
Yep, seems so. I'll add a workaround similar to what you have linked above to Eldev too. Even if they fix it upstream, we still have released buggy Emacs versions to test on.
Your concise reproduction example makes it very clear
Yeah, I'm a reproducer junkie, I have created a lot and I love them. This is basically what you need to do (reduce to a short standalone piece of code) to create a good regression test.
I'd encourage you to report it
Frankly, I hate dealing with Emacs upstream. If someone wishes to do that instead, that would be nice.
I hate dealing with Emacs upstream
I don't enjoy it either, but I'll hit M-x report-emacs-bug
on your behalf. :)
Ok thanks for your debuggings guys. I guess I was just unlucky with these particular builds and that the problem will solve itself magically just like it arrived.
@purcell: just curious, when bugs like this are found, do they update the 29.1 tarball or do we have to live with this bug until 29.2 is out? I never saw 29.1.1 or 29.1.2 releases like for other softwares.
It'd just get fixed in 29.2 afaik.
FYI here's how I fixed it with your help in my project https://github.com/Silex/docker.el/commit/d1f6d3310471b05df395197099627e3d0670e82d
Ah, good idea only applying the advice in that specific emacs version. I should do that too.
Eldev 1.8 includes a workaround for this bug.
I confirm the bug is gone now thanks to Eldev https://github.com/Silex/docker.el/commit/d5255a65b7240d0038cc417f301b43df05a27922
Hello,
Can you help figure out why I have this error?
https://github.com/Silex/docker.el/actions/runs/6809956722/job/18517267196
It came out of the blue, it was working before.