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
About
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.