cli
cli copied to clipboard
Built-in packages are not updated when listed as dependencies
This originated from https://github.com/Silex/docker.el/pull/244
Emacs 28 included transient as a built in package (version 0.3.7), the package Docker.el requires a later version than the built in package.
When including transient as a project dependency:
(package "docker"
"2.3.1"
"Interface to Docker")
;; other packages
(depends-on "transient" "0.10.1")
And then running eask install-deps
Get this output
Installing 5 package dependencies...
- [1/5] Installing aio (1.0)... done v
- [2/5] Installing dash (2.20.0)... done v
- [3/5] Installing s (1.13.0)... done v
- [4/5] Installing tablist (1.1)... done v
- [5/5] Skipping transient (0.10.1)... already installed X
(Total of 4 dependencies installed, 1 skipped)
However, transient has not been upgraded to 0.10.1 as described.
This is due to inconsistent behavior in package.el.
- When
transientis installed directly,package.elchecks the name only. - When
transientis installed as a dependency (e.g. by running(package install 'docker)), the newer version is installed.
You can work around this by installing the project as a package, rather than by using eask install in that specific case. See https://github.com/Silex/docker.el/pull/244 for an example in CI.
Yes, this is one of the most significant issues, but I don't think Eask should address it; instead, it should be fixed upstream in package.el. 🤔
(Oops I originally wrote eask install when I meant eask install-deps, but the behavior is the same in both cases)
it should be fixed upstream in package.el
Yeah I agree about the underlying issue, Eask should probably stay as a package.el wrapper.