Giter Site home page Giter Site logo

esc-emacs / github-elpa Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 10sr/github-elpa

0.0 2.0 0.0 213 KB

Build and Publish Your Own ELPA Repositories with GitHub Pages

Home Page: https://10sr.github.io/github-elpa/elpa/archive-contents

License: The Unlicense

Emacs Lisp 85.62% Makefile 14.38%

github-elpa's Introduction

MELPA MELPA Stable

github-elpa

Build and publish your own ELPA repositories with GitHub Pages

Overview

github-elpa is an Emacs command-line utility to build your own package.el-compatible package repository in your git repository. By default this repository will be built into docs/elpa directory, so by just pushing it to GitHub you can publish the repository with GitHub Pages.

Setting up a repository and updating packages are really easy. Once you add a Cask file and package recipes in MELPA's format, issue just one simple command to update the ELPA repository.

Quick Start

This section describes how to setup your ELPA repository in your GitHub repository.

0. Prerequisite

  • A GitHub account, and a GitHub respository that you have a write-permission and can change Settings
  • Cask

1. Prepare Cask File

Put Cask file to the root of the GitHub repository. Typically it should look like:

(source gnu)
(source melpa)

(depends-on "github-elpa")

2. Add Recipes and Build Archives

Add recipe files in MELPA's format. By default github-elpa looks for recipes/ directory, but you can change this via -r command-line option (see below).

Once you put your recipe files, it is time to build your repository!

Issue following commands:

cask install  # Need only once
cask exec github-elpa update
git push

The second command will fetch packages described in recipes/, build archives into docs/elpa, and git-commit them.

3. Change Repository Setting

After you push docs/ directory, you need to change the GitHub repository setting. This setting is needed so that the ELPA repository can be accessed as a GitHub Pages.

  1. Go Settings page of your GitHub repository

settings.png

  1. In GitHub Pages, change Source to master branch /docs folder and Save it

source.png

Now it's all done!

Use and Maintainance

Add to Your Repository List

The published ELPA repository URL is https://<username>.github.io/<repository>/elpa/. For example, to use the repository of github-elpa itself, add following to your init.el:

(setq package-archives
      `(,@package-archives
        ("github-elpa" . "https://10sr.github.io/github-elpa/elpa/")))

Update Repository

When package upstreams are updated, you can receive the changes in the same way as first building the repository:

cask exec github-elpa update
git push

Command-Line Arguments

Sub-Commands

github-elpa update

If you just want to do "all", issue update.

Actually this is just a combination of the following build and commit subcommands.

github-elpa build

Issue build to only update packages without committing them. This command reads recipes in recipes/ (or the directory specified by -r optiion), fetches packages and builds them by recipes. In short, this command is just a thin wrapper around package-build.el.

github-elpa commit

commit subcommand commit packages to git repository. This command will git-commit files in docs/elpa/ (or the directory given by -a), and do not commit any other files.

Options

Option Default Description
-r, --recipes-dir <recipes-dir> recipes Specify directory that contains recipe files
-a, --archive-dir <archive-dir> docs/elpa Specify directory in which to keep compiled archives
-w, --working-dir <working-dir> .github-elpa-working Specify directory in which to keep checkouts

License

This software is unlicensed. See LICENSE for details.

github-elpa's People

Contributors

10sr avatar

Watchers

James Cloos avatar Eric Crosson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.