elmarmalade
elmarmalade copied to clipboard
emacs-lisp version of the marmalade package repository
= The Marmalade Service - A package repository in EmacsLisp =
This is an EmacsLisp package to reimplement the [[http://marmalade-repo.org|marmalade-repo]] with Elnode. Natalie Weizenbaum wrote the original [[http://marmalade-repo.org|marmalade-repo]] with node.js and mongodb.
=== How to ===
- Need an account? - make an issue on the [[http://github.com/nicferrier/elmarmalade|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
=== About ===
This reimplementation uses an [[http://elnode.org|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.