New definition is more canonical elisp, and uses two new el-get-core
functions "el-get-plist-keys" and "el-get-keyword-name".
Intended to improve #1412.
Combined with the byte-compile fix in f47d14b, changing el-get-remove
to set the pacakge status to "removed" before updating the autoloads
and removing the package results in correct autoload behavior when
removing packages.
Fixes#446.
Currently :build/:info properties are executed even if a package is
builtin. This however is due to fail because the normal method is
being replaced.
Therefore if :type is 'builtin *and* the recipe has a :builtin
property neither :build nor :info are executed.
Signed-off-by: Rüdiger Sonderfeld <ruediger@c-plusplus.de>
Split the package removal logic into a dangerous internal function
which removes everything, and a user-friendly external
function (el-get-cleanup) which ensures that el-get doesn't get nuked.
el-get-update-all overrode package-refresh-contents using flet to
avoid triggering a full refresh of all elpa packages when updating
each elpa package. The use of flet was incorrect, and the overridden
function was specified with different arguments, causing an error.
The use case for el-get 'wait is very thin (setup file only), and fixing it
would be hard enough that we're not going to work on it. If you want to wait
until the packages are installed, just use 'sync.
One reason why fixing that situation is not easy is that some error cases
that happen at install time are not catched by El-Get code, so there's no
place where to set the package status as "failed" or something equivalent.
We wouls still have some "required" packages left, and if we don't count
them in the progress information we hang up completely.
This commit also refresh the test/README content to cope with the recent
status.old backup file, and in passing reformat the file as Markdown.
This adds the ability for recipes to specify a required minimum emacs
version. Attempting to install such a recipe in a lower version of
emacs will result in an error.
This includes a fix to "el-get-reload" that ignores errors during
reloading package files, because CEDET raises errors if you try to
reload it. If a file raises an error during reloading, we issue a
warning telling the user that they might have to restart emacs to
finish the update.
Recipe fixes based on https://github.com/dimitri/el-get/pull/748
This is critical because installation dependency chaining happens via
a post-init hook. This is done by putting the call to post-init-hooks
outside the "el-get-with-status-sources" block.
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.