Custom Melpa Archive

Vladimir Panteleev edited this page Dec 10, 2017 · 2 revisions
Clone this wiki locally

Motivation

Some times you would have the need of having your own melpa archive with some custom recipes not necessarily at the same version than other public melpa repos. For example for sharing a controlled emacs development environment on a corporate setting.

HowTo

To create a custom melpa archive, follow these simple steps:

# obtain a clone of melpa at a custom location, in this case this repo will be shared inside myorg corporation git repo.
$ git clone https://github.com/milkypostman/melpa.git myorg-melpa

# on a new branch, remove all melpa recipes 
$ cd myorg-melpa
$ git checkout -b myorg
$ git rm recipes/*
$ git commit -am 'removed all recipes'

# create your custom recipes and build the package-archive
$ $EDITOR recipes/myorg-git-workflow
$ make

Once you have built your custom Melpa archive, you're ready to tell emacs to use it:

(add-to-list 'package-archives (cons "MyOrg" (expand-file-path "/path-to/myorg-melpa/packages")) t)

HTML

If you'd like to publish a website for your ELPA:

# bootstrap JSON data
$ echo '[]' > html/download_counts.json
$ echo '{}' > html/build-status.json

# update site name and description
$ $EDITOR html/index.html
$ $EDITOR html/js/melpa.js

Then, point your webserver at the html/ directory.