Since Emacs 27 the package cl is deprecated, the replacement is
cl-lib, which is available since Emacs 24.3.
This patch replaces cl by cl-lib and drops support for Emacs versions
less than 24.3. Dropping older Emacsen is required, because cl-lib is
a builtin starting from version 24.3 and doesn't need an extra package
from ELPA.
Testcases for past issues still contain cl. Most of them seem to be
broken and need further investigation.
This patch is tested with test/run-ert.sh, which outputs:
Ran 10 tests, 10 results as expected, 0 unexpected (2021-01-30 13:24:54+0100, 0.672122 sec)
1 expected failures
and manually by daily usage for a month now.
If `:library` and `:feature` are not specified, `eval-after-load` will
use `:pkgname` as its first argument. For a github based recipe, the
`:pkgname` has two parts: "username/reponame". We need to remove the
"username" part before passing `:pkgname` to `eval-after-load`.
In most cases, we assume any connection is insecure unless the URL
starts with "https://", "$USERNAME@", or "ssh". There are a few
exceptions: I'm assuming all Emacswiki packages are insecure, and I
don't think we can know whether packages installed via Google Go are
secure or not.
This allow developer to switch easily between multiple installations
directories, using e.g.:
emacs -q --eval '(setq user-emacs-directory "~/tmp/emacs-test-el-get")'
Conflicts:
el-get.el
Move more variables to el-get-custom.el, add requires or
declare-functions as needed.
There were a few places that appeared to be actual bugs: wrong or
missing variable names.
Move variables from el-get.el to el-get-custom.el; this lets the byte
compiler find them when looking at el-get-recipes.el, which is triggered
by (require 'el-get-recipes) from el-get.el. We can't (require 'el-get)
in el-get-recipes.el because that would cause circular requires which
the byte compiler rejects.
This prevents Emacs from inserting "..." in place of very deep or long
data structures, which could corrupt the status file in some cases.
This is done by defining a wrapper function "el-get-print-to-string",
which el-get should use for all "critical" stringification tasks.
As noted in #689.
That cleans up the code and allow not to depend on the :reload property, and
cater with some edge cases like features currently loaded but no longer
present in the updated package.
Conflicts:
el-get.el
The previous patches are changing the behavior in a user visible way for
recipes. Update user documentation to reflect the change and upgrade the
minor version number to be able to track this.