emacs-lisp version of the marmalade package repository
Emacs Lisp HTML Other
Latest commit ad50d9c Jul 4, 2015 @nicferrier Merge pull request #103 from nex3/name-change
Thanks Natalie. All Done.
Failed to load latest commit information.
demo-multifile fix the makefile Oct 27, 2014
marmalade-repo-test more doc changes Apr 21, 2014
recipes 2.0.20 implements owner adding via API Oct 18, 2014
specialpages Update copyright dates in HTML Nov 18, 2014
static include "package of the week" Oct 24, 2014
.gitignore update the demo-multifile pattern Oct 26, 2014
Dockerfile fix the Dockerfile ref to the deploy file Aug 26, 2014
Dockerfile-marmalade-deploy.el bump the version Oct 17, 2014
Makefile fix the Makefile tests Aug 26, 2014
README.creole Fix my name. May 9, 2015
admin-tasks.creole add new html page and re-org the doc Apr 21, 2014
boot.el fix the boot Sep 29, 2014
crontab-db-backup add a backup db shell script for cronning Jun 1, 2014
deploy whoops! docker pushing to wrong tag. much confusion. fixed. Aug 26, 2014
dummy-package.el update the dummy-package after much testing Oct 26, 2014
elnode- add auth, package handling and a first test for package handling. Apr 23, 2013
front-page.html Update copyright dates in HTML Nov 18, 2014
login-page.html Update copyright dates in HTML Nov 18, 2014
marmalade-api.el switch the admin package used for authorization. Oct 21, 2014
marmalade-archive.el Fix misspellings of Marmalade Nov 18, 2014
marmalade-customs.el add removal infrastructure. Oct 17, 2014
marmalade-demo.el bumping versions of demo to test Jun 14, 2014
marmalade-mongo.el provide a callback for when we're done Apr 15, 2013
marmalade-service.el Fix my name. May 9, 2015
marmalade-tests.el needs elnode-testsupport Oct 17, 2014
marmalade-users.el add marmalade-set-auth to change a user's auth. Oct 17, 2014
marmalade-vars.el add new marmalade-vars and move the page-header vars to it Jun 2, 2014
mongo-convert updates to show how to do stuff. May 30, 2013
mongo-convert.creole details on the mongo conversion May 31, 2014
news.html Fix link in news.html Oct 24, 2014
nginx-cache-kill add nginx-cache-kill script May 29, 2014
nginx-cache-report report on nginx cache May 31, 2014
nginx.conf fix #23 with 20m limit for nginx, also change the backends Jun 13, 2014
package-page.html Update copyright dates in HTML Nov 18, 2014
profile-page.html Update copyright dates in HTML Nov 18, 2014
register-comingsoon.html Update copyright dates in HTML Nov 18, 2014
todo.org tiny change to todo May 19, 2014
upload-page.html Update copyright dates in HTML Nov 18, 2014
verify.html Update copyright dates in HTML Nov 18, 2014


The Marmalade Service - A package repository in EmacsLisp

This is an EmacsLisp package to reimplement the marmalade-repo with Elnode. Natalie Weizenbaum wrote the original marmalade-repo with node.js and mongodb.

How to

  • Need an account? - make an issue on the Github and Nic will send you a mail with a confirmation link
  • Need to delete a package? - it's possible through the API with the marmalade-client package
  • Need to upload a package? - use the API throught the marmalade-client package


This reimplementation uses an Elnode application dealing with a filesystem of all packages. It's basically a file server app. It also follows the microservice model.

This packages includes conversion tools from the mongodb to the filesystem.

These are the things marmalade should do:

  • construct the package archive file from the package directory structure
    • the package archive is an index of all the packages in the repository.
  • allow the archive to be updated with uploads
  • provide the ELPA /package/ HTTP API for downloading packages
  • provide HTML front end to the /package/ HTTP API
  • provide EmacsLisp front end to the /package/ HTTP API
    • this will likely be a separate project
  • allow users to /register/ in order to upload packages
  • provide /profile/s for people who have registered
  • allow registered users to upload and upgrade packages
    • preferably from inside their emacs
    • and securely
  • allow registered users to be added as owners

Other marmalade things

It would be nice if marmalade provided better package discovery.

It would be nice if marmalade stored licences in a clear way and allowed you to use only safe licences if you wish.

How it works

The package is contained in the top level. Elpakit is used to build it.

marmalade-repo-test is a test directory containing packages used by the test scripts.

marmalade-repo-test/possible-packages contains stuff we don't have tests for but probably should have.