{"id":20511579,"url":"https://github.com/10sr/github-elpa","last_synced_at":"2025-04-13T22:42:12.357Z","repository":{"id":138840206,"uuid":"67190615","full_name":"10sr/github-elpa","owner":"10sr","description":"Build and Publish Your Own ELPA Repositories with GitHub Pages","archived":false,"fork":false,"pushed_at":"2025-02-21T04:35:34.000Z","size":236,"stargazers_count":31,"open_issues_count":0,"forks_count":6,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-27T13:01:53.631Z","etag":null,"topics":["elpa","elpa-repositories","github","github-page"],"latest_commit_sha":null,"homepage":"https://10sr.github.io/github-elpa","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/10sr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-09-02T04:46:12.000Z","updated_at":"2025-02-25T17:56:26.000Z","dependencies_parsed_at":"2023-03-13T10:52:45.341Z","dependency_job_id":null,"html_url":"https://github.com/10sr/github-elpa","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/10sr%2Fgithub-elpa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/10sr%2Fgithub-elpa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/10sr%2Fgithub-elpa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/10sr%2Fgithub-elpa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/10sr","download_url":"https://codeload.github.com/10sr/github-elpa/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248794565,"owners_count":21162613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elpa","elpa-repositories","github","github-page"],"created_at":"2024-11-15T20:36:27.300Z","updated_at":"2025-04-13T22:42:12.327Z","avatar_url":"https://github.com/10sr.png","language":"Emacs Lisp","readme":"[![MELPA](http://melpa.org/packages/github-elpa-badge.svg)](http://melpa.org/#/github-elpa)\n[![MELPA Stable](http://stable.melpa.org/packages/github-elpa-badge.svg)](http://stable.melpa.org/#/github-elpa)\n[![JCS-ELPA](https://raw.githubusercontent.com/jcs-emacs/badges/master/elpa/v/github-elpa.svg)](https://jcs-emacs.github.io/jcs-elpa/#/github-elpa)\n\ngithub-elpa\n===========\n\nBuild and publish your own ELPA repositories with GitHub Pages\n\nOverview\n--------\n\n`github-elpa` is an Emacs command-line utility to build your own\n`package.el`-compatible package repository in your git repository.\nBy default this repository will be built into `docs/elpa` directory,\nso by just pushing it to GitHub you can publish the repository with\nGitHub Pages.\n\nSetting up a repository and updating packages are really easy.\nOnce you add a [`Cask`][Cask]/[`Eask`][Eask] file and package\nrecipes in\n[MELPA's format](https://github.com/melpa/melpa#recipe-format),\nissue just one simple command to update the ELPA repository.\n\nQuick Start\n-----------\n\nThis section describes how to setup your ELPA repository in your\nGitHub repository.\n\n### 0. Prerequisite\n\n* A GitHub account, and a GitHub respository that you have a\n  write-permission and can change `Settings`\n* [Cask][] or [Eask][]\n\n### 1. Prepare Cask/Eask File\n\nPut `Cask` file to the root of the GitHub repository.  Typically it\nshould look like:\n\n```elisp\n(source gnu)\n(source melpa)\n\n(depends-on \"github-elpa\")\n```\n\nOr `Eask` file,\n\n```elisp\n(source 'gnu)\n(source 'melpa)\n\n(depends-on \"github-elpa\")\n```\n\n#### [RECOMMENDED] Use Eask to generate the ELPA project\n\nExecute the following command to generate the ELPA project.\n\n```sh\neask create elpa \u003celpa-name\u003e\n```\n\n### 2. Add Recipes and Build Archives\n\nAdd recipe files in\n[MELPA's format](https://github.com/melpa/melpa#recipe-format).\nBy default `github-elpa` looks for `recipes/` directory, but you can\nchange this via `-r` command-line option (see below).\n\n\nOnce you put your recipe files, it is time to build your repository!\n\nIssue following commands:\n\n```sh\ncask install  # Need only once\ncask exec github-elpa update\ngit push\n```\n\nThe second command will fetch packages described in `recipes/`, build\narchives into `docs/elpa`, and git-commit them.\n\n\nIn Eask:\n\n```sh\neask install-deps  # Need only once\neask exec github-elpa update\ngit push\n```\n\n### 3. Change Repository Setting\n\nAfter you push `docs/` directory, you need to change the GitHub\nrepository setting.\nThis setting is needed so that the ELPA repository can be\naccessed as a GitHub Pages.\n\n\n1. Go `Settings` page of your GitHub repository\n\n  ![settings.png](docs/settings.png)\n\n2. In `GitHub Pages`, change `Source` to `master branch /docs folder`\n  and `Save` it\n\n  ![source.png](docs/source.png)\n\n\nNow it's all done!\n\n\nUse and Maintainance\n--------------------\n\n### Add to Your Repository List\n\nThe published ELPA repository URL is\n`https://\u003cusername\u003e.github.io/\u003crepository\u003e/elpa/`.\nFor example, to use the repository of `github-elpa` itself, add\nfollowing to your `init.el`:\n\n```elisp\n(add-to-list 'package-archives '(\"github-elpa\" . \"https://10sr.github.io/github-elpa/elpa/\"))\n```\n\n### Update Repository\n\nWhen package upstreams are updated, you can receive the changes\nin the same way as first building the repository:\n\n```sh\ncask exec github-elpa update\ngit push\n```\n\nIn Eask:\n\n```sh\neask exec github-elpa update\ngit push\n```\n\n\nCommand-Line Arguments\n----------------------\n\n### Sub-Commands\n\n    github-elpa update\n\nIf you just want to do \"all\", issue `update`.\n\nActually this is just a combination of the following `build` and\n`commit` subcommands.\n\n\n    github-elpa build\n\nIssue `build` to only update packages without committing them.\nThis command reads recipes in `recipes/` (or the directory specified\nby `-r` optiion), fetches packages and builds them by recipes.\nIn short, this command is just a thin wrapper around\n`package-build.el`.\n\n\n    github-elpa commit\n\n`commit` subcommand commit packages to git repository.\nThis command will git-commit files in `docs/elpa/` (or the directory\n given by `-a`), and do not commit any other files.\n\n\n### Options\n\n| Option                            | Default                | Description |\n| --------------------------------- | ---------------------- | ----------- |\n| `-r, --recipes-dir \u003crecipes-dir\u003e` | `recipes`              | Specify directory that contains recipe files |\n| `-a, --archive-dir \u003carchive-dir\u003e` | `docs/elpa`            | Specify directory in which to keep compiled archives |\n| `-w, --working-dir \u003cworking-dir\u003e` | `.github-elpa-working` | Specify directory in which to keep checkouts |\n| `-t, --tar \u003ctar-executable\u003e`      | (Use value from `package-build.el`) | Specify tar executable name to archive files |\n\n\nLicense\n-------\n\nThis software is unlicensed. See `LICENSE` for details.\n\n\n\u003c!-- Links --\u003e\n\n[Cask]: https://github.com/cask/cask\n[Eask]: https://github.com/emacs-eask/cli\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F10sr%2Fgithub-elpa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F10sr%2Fgithub-elpa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F10sr%2Fgithub-elpa/lists"}