Fork me on GitHub

[ Packages ] [ Installing ] [ Known Issues ] [ Updating Packages ] [ Development ]

MELPA or Milkypostman’s ELPA or Milkypostman’s Experimental Lisp Package Repository if you’re not into the whole brevity thing.

a repository for development versions of Emacs packages (hot from the repo).

Last Update: 2012.02.22 05:52

Current List of Packages

Package Version Description
ac-dabbrev 20091116 auto-complete el source for dabbrev
browse-kill-ring 20110304 interactively insert items from kill-ring - - coding utf-8 - -
clojure-mode 20120212 Major mode for Clojure code
clojure-test-mode 20120212 Minor mode for Clojure tests
clojurescript-mode 20120212 Major mode for ClojureScript code
csv-mode 20091203 major mode for editing comma-separated value files
darcsum 20120115 a pcl-cvs like interface for managing darcs patches
deft 20111211 quickly browse filter and edit plain text notes
dired+ 20120218 Extensions to Dired
elisp-slime-nav 20111111 Make M- and M- work in elisp like they do in slime
evil 20120221 Extensible Vi layer for Emacs
expand-region 20120220 Increase selected region by semantic units
find-file-in-project 20110904 Find files in a project quickly
findr 20120130 Breadth-first file-finding facility for X Emacs
flymake-cursor 20110905 displays flymake error msg in minibuffer after delay
full-ack 20111216 a front-end for ack
gist 20101104 No description available
git-blame 20120129 Minor mode for incremental blame for Git - - coding utf-8 - -
haskell-mode 20100702 A Haskell editing mode - -coding iso-8859-1 - -
hl-sentence 20111203 highlight a sentence based on customizable face
idle-highlight-mode 20110817 highlight the word the point is on
ido-ubiquitous 20111016 Use ido nearly everywhere
inf-ruby 20111212 Run a ruby process in a buffer
inflections 20120130 convert english words between singular and plural
js3 20120120 JavaScript scanner
jump 20120130 build functions which contextually jump between files
magit 20120213 Control Git from Emacs
magithub 20120209 Magit extensions for using GitHub
markdown-mode 20120220 Emacs Major mode for Markdown-formatted text files
markdown-mode+ 20120219 extra functions for markdown-mode
melpa 20120213 special handling for the MELPA repository
mmm-mode 20120114 Allow Multiple Major Modes in a buffer
org-fstree 20090904 include a filesystem subtree into an org file
paredit 20110508 minor mode for editing parentheses - - Mode Emacs-Lisp - -
pretty-mode 20100804 redisplay parts of the buffer as pretty symbols
rainbow-delimiters 20111125 Highlight nested parens brackets braces a different color at each depth
rinari 20120210 Rinari Is Not A Rails IDE
ruby-compilation 20120210 run a ruby process in a compilation buffer
ruby-mode 20120122 Major mode for editing Ruby files
rvm 20120201 Emacs integration for rvm
slime 20120214 Superior Lisp Interaction Mode for Emacs
smex 20120127 M-x interface with Ido-style fuzzy matching
starter-kit 20120202 Saner defaults and goodies
starter-kit-bindings 20120202 Saner defaults and goodies bindings
starter-kit-eshell 20120202 Saner defaults and goodies eshell tweaks
starter-kit-js 20120202 Saner defaults and goodies for Javascript
starter-kit-lisp 20120202 Saner defaults and goodies for lisp languages
starter-kit-perl 20120202 Some helpful Perl code
starter-kit-ruby 20120202 Saner defaults and goodies for Ruby
textile-mode 20100416 Textile markup editing major mode
todochiku 20120202 A mode for interfacing with Growl Snarl and the like
undo-tree 20120105 Treat undo history as a tree
yasnippet 20120216 Yet another snippet extension for Emacs

Installing

To add the repository put this before the call to package-initialize in your init.el file.

(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)

Please read about known issues below before attempting to install multiple packages at once.

Customizations

There is currently no way in package.el to exclude or include versions. So to remedy this I ahve created a package that will allow you to enable only certain packages or exclude certain packages. You can install the package by pasting this into yoru *scratch* buffer and evaluating it.

(progn
  (switch-to-buffer
   (url-retrieve-synchronously
    "https://raw.github.com/milkypostman/melpa/master/melpa.el"))
  (package-install-from-buffer  (package-buffer-info) 'single))

You can then customize two variables:

melpa-package-enable

List of MELPA packages to enable. Empty list enables all packages.

melpa-package-exclude

List of MELPA package to exclude. This list trumps those specified in melpa-package-enable.

Known Issues

Due to the way the HTTP routing works on my provider, the HTTP/1.1 connection will time out for long package installs – where the package is large and takes a while to compile – like magit or evil.

(setq url-http-attempt-keepalives nil)

This makes things a tad more slow but means that the install completes correctly. Otherwise the connection times out and the install goes haywire.

Fixes for package.el

Note: These fixes are included in the melpa.el package.

There are a number of small bugs in Emacs24’s package.el. First, when installing dependencies, the packages were not getting initialized. Second, the order for dependencies was coming out backwards for what I needed. Both problems are easily patched by some advice.

(defadvice package-compute-transaction
  (before
   package-compute-transaction-reverse (package-list requirements)
   activate compile)
  "reverse the requirements"
  (setq requirements (reverse requirements))
  (print requirements))

(defadvice package-download-tar
  (after package-download-tar-initialize activate compile)
  "initialize the package after compilation"
  (package-initialize))

(defadvice package-download-single
  (after package-download-single-initialize activate compile)
  "initialize the package after compilation"
  (package-initialize))

Updating Packages

package.el now includes a mechanism to upgrade packages. After running package-list-pacages, type u (mark Upgradable packages) and then x (eXecute the installs and deletions). When it’s done installing all the packages it will ask if you want to delete the obsolete packages and so you can hit y (Yes).

If you run into a problem installing or upgrading, you may need to go into your ~/.emacs.d/elpa/ directory and delete packages that are installed multiple times. This can happen when the install times out (see Known Issues).

Development

https://github.com/milkypostman/melpa

Contributions are welcome. Currently, the builder only supports packages using git, subversion, mercurial, and darcs. This covers most of the packages that I am interested in.