Closed darshanime closed 10 months ago
I've just bumped the dependencies and installing that might fix the issue.
If it does not, then you'll have to do the reinstallation dance. Uninstall forge
and transient
. Exit Emacs. Restart Emacs. Reinstall packages. The problem is that package.el
often leaks already loaded old versions of a package into byte-code when installing a new version.
thanks, this fixed the issue.
Seeing similar issues with a clean install via Elpaca:
elpaca | e25aa78 HEAD -> master, origin/master, origin/HEAD |
installer | 0.6 |
emacs | GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) of 2024-02-28 |
git | git version 2.44.0 |
The problem is that package.el often leaks already loaded old versions of a package into byte-code when installing a new version.
This would not apply here, as byte-compilation is done in a subprocess with only the package's dependencies made available on load-path. Any ideas?
Looks like in my case it's due to the difference between the built-in version of transient.el currently shipping with Emacs 30.0.50 (0.3.2.50-git ede0aed) vs the MELPA version (0.5.3 beecdc8).
@tarsius Any chance of getting a transient version bump for the built-in version?
Any chance of getting a transient version bump for the built-in version?
I can try to do that soon, but cannot promise anything.
it's due to the difference between the built-in version of transient.el currently shipping with Emacs 30.0.50 (0.3.2.50-git https://github.com/magit/forge/commit/ede0aeda1a7c0ef4713891a7b43f80bdbc7abbc7) vs the MELPA version (0.5.3 beecdc8).
That shouldn't matter. forge-pkg.el
specifies that at least transient
"version" 20240201
is needed. Does Elpaca not respect that?
I did some experiments a few days ago. From my first interactive attempt I remember an error along the lines of "version -1 does not satisfy 20240201". I then tried elpaca-test
, which failed to install transient
. I then used a modified elpaca-test
, which first installed transient
explicitly and then forge
. The latter worked.
Jonas Bernoulli @.***> writes:
it's due to the difference between the built-in version of transient.el currently shipping with Emacs 30.0.50 (0.3.2.50-git ede0aed) vs the MELPA version (0.5.3 beecdc8).
That shouldn't matter. forge-pkg.el specifies that at least transient "version" 20240201 is needed. Does Elpaca not respect that? [...] I then used a modified elpaca-test, which first installed transient explicitly and then forge. The latter worked.
The installation will work, but loading the package will break at runtime. One of the flaws of the YYYYMMDD style version requirement is there's no good way to know what date each of those built-in packages corresponds to. Elpaca tries to fall back to the emacs-version relase date (as there is nothing else to compare to). Obviously, that's not perfect, but it's the best solution I can think of.
I did some experiments a few days ago. From my first interactive attempt I remember an error along the lines of "version -1 does not satisfy 20240201".
Hadn't seen that error myself, but there is another Emacs bug which is affecting transient.el:
https://lists.gnu.org/archive/html/bug-gnu-emacs/2024-03/msg00177.html
Long story short, transient.el is not a member of package--builtin-versions for Emacs versions 28.1 through 29.2. Currently package.el doesn't recognize it as a builtin package on those versions. It was causing transient to fail to install via Elpaca, so I've added a workaround to Elpaca so it's properly recognized.
Any chance of getting a transient version bump for the built-in version? I can try to do that soon, but cannot promise anything.
Thanks. No rush, as I can work around it with Elpaca.
I am trying to install forge, which "worked", but it is failing with
forge--pull is already defined as something else than a generic function
when I run any command.I tried this on these versions of emacs:
Versions installed:
Warnings
Backtrace
Messages
Compile log