From 3c8c7dec0531ee6bff9cca778befde77b59ce3cc Mon Sep 17 00:00:00 2001 From: Bozhidar Batsov Date: Tue, 22 Oct 2013 15:37:05 +0300 Subject: [PATCH] Do an automatic package upgrade in prelude-update --- README.md | 31 ++++++++++++++++++------------- core/prelude-core.el | 4 ++++ core/prelude-packages.el | 2 +- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index c8cf38d..e061436 100644 --- a/README.md +++ b/README.md @@ -90,13 +90,15 @@ You'd do well to replace `~/.emacs.d` with the value of ## Updating Prelude +### Manual update + The update procedure is fairly straightforward and consists of 3 steps: -### Update all bundled packages +#### Update all bundled packages -Just run M-x package-list-packages RET U x. Unfortunately this step cannot be automated. +Just run M-x package-list-packages RET U x. -### Update Prelude's code +#### Update Prelude's code ```bash cd path/to/prelude/installation @@ -106,14 +108,16 @@ git pull The `path/to/prelude/installation` is usually `~/.emacs.d` (at least on Unix systems). -Alternatively you can run M-x prelude-update from Emacs itself. - -### Restart Prelude +#### Restart Prelude It's generally a good idea to stop Emacs after you do the update. The next time Prelude starts it will install any new dependencies (if there are such). +### Automatic update + +Simply run M-x prelude-update from Emacs itself and restart Emacs afterwards. + ## Enabling additional modules By default most of the modules that ship with Prelude are not loaded. For more information on the functionality provided by these modules visit the [docs](modules/doc/README.md). @@ -428,16 +432,17 @@ If you're not fond of spellchecking on the fly: ### Updating bundled packages -Currently there is no Emacs Lisp API for updating packages, so you'll -have to update manually the packages that came with Prelude from time -to time. +Generally it's a good idea to do a package update before running +updating Prelude, since the latest Prelude code might depend on newer +versions of the bundled packages than you would currently have +installed. + +If you're doing manual Prelude updates you should always do a package update first. `M-x package-list-packages RET U x` -Generally it's a good idea to do a package update before running -`prelude-update`, since the latest Prelude code might depend on newer -versions of the bundled packages than you would currently have -installed. +That's not necessary if you're using `M-x prelude-update`, since it +will automatically update the installed packages. ### Problems with flyspell-mode diff --git a/core/prelude-core.el b/core/prelude-core.el index cce55f2..e58cded 100644 --- a/core/prelude-core.el +++ b/core/prelude-core.el @@ -450,10 +450,14 @@ Doesn't mess with special buffers." (exchange-point-and-mark) (deactivate-mark nil)) +(require 'epl) + (defun prelude-update () "Update Prelude to its latest version." (interactive) (when (y-or-n-p "Do you want to update Prelude? ") + (message "Updating installed packages...") + (epl-upgrade) (message "Updating Prelude...") (cd prelude-dir) (shell-command "git pull") diff --git a/core/prelude-packages.el b/core/prelude-packages.el index be853dd..82499a4 100644 --- a/core/prelude-packages.el +++ b/core/prelude-packages.el @@ -42,7 +42,7 @@ (defvar prelude-packages '(ace-jump-mode ack-and-a-half anzu dash diminish elisp-slime-nav - expand-region flx-ido flycheck gist + epl expand-region flx-ido flycheck gist git-commit-mode gitconfig-mode gitignore-mode grizzl guru-mode helm helm-projectile ido-ubiquitous key-chord magit move-text rainbow-mode