GNU ELPA Mirror
This repository hosts a tool for maintaining a GitHub mirror of the GNU ELPA Emacs Lisp Package Archive. The service is deployed to Heroku and runs daily.
GNU ELPA uses an overly complex, unwieldy, and fragile build process. Therefore, running GNU ELPA packages directly from source is not an easy task. In addition to the added complexity when compared to MELPA, running some packages requires a local checkout of the Emacs source repository.
These problems are all neatly avoided if the GNU ELPA build process is run on Heroku and the results are mirrored to GitHub, so that the packages can be easily run from source by anyone.
The package named
<foo> can be found at the URL:
(setq straight-recipes-gnu-elpa-use-mirror t)
This is also documented in the
Create a Heroku app named
Add the following buildpacks:
ACCESS_TOKENconfig var to a GitHub personal access token with the
Add the Heroku Scheduler addon.
Configure Scheduler to run the command
Set up automatic deploys when pushing to GitHub.
Run it locally (in a virtualenv, after installing from
$ python3 -m gnu_elpa_mirror
Test the cron job manually:
$ heroku run ./cron.daily.sh
$ heroku run bash