ELPA Package directories are named <package>-<version>. Previously
`el-get-elpa-package-directory' looked for package-dirs using
`all-completions' meaning anything starting with <package> would match.
This is problematic if a package is a prefix of another package, eg the
`s' and `solarized-theme' packages.
Instead of doing that, look for a directory that is precisely
<package>-<version> where <version> is something acceptable to
`version-to-list'.
Fixes#1189.
This test attempts to recreate the situation described in #809. The test
passes, which means either the issue has been fixed, or this test case
isn't actually testing the right thing.
closes#809
The package-install function calls some initalization functions from
within the interactive form. This can cause it to fail when called
non-interactively.
package-refresh-contents calls package-read-all-archive-contents so we
don't need to call it explicitly.
Fixes#1389
* Add el-get-check-recipe command
* Add a script test/check-recipe.el
* Mention recipe checker in the document
* Add warnings to el-get-check-recipe
* Use @command instead of @code
* make el-get.info
* Use more expressive name than el-get-check-recipe-1
* test-recipe.sh no longer fails due to missing el-get test directory
* test-recipe.sh and run-test.sh now do better jobs of cleaning up
* All test scripts now specify /bin/bash as interpreter
Otherwise, run-test.sh fails with the error:
(file-error "Opening output file" "no such file or directory"
"/tmp/el-get-test-home/.emacs.d/el-get/.status.el.old")
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.