No description
Find a file
2020-02-23 10:32:19 -08:00
docker reorganize repo; update Dockerfile maintainer 2020-02-23 10:16:19 -08:00
.gitignore reorganize repo; update Dockerfile maintainer 2020-02-23 10:16:19 -08:00
.travis.yml use 'test a recipe before' for default build 2020-02-23 10:32:05 -08:00
Dockerfile reorganize repo; update Dockerfile maintainer 2020-02-23 10:16:19 -08:00
LICENSE add license :) 2020-02-23 07:39:12 -08:00
Makefile improve output 2020-02-22 16:14:43 -08:00
melpazoid.el fix loop on replace-match 2020-02-22 16:14:43 -08:00
melpazoid.py add a handful of TODOs 2020-02-23 10:16:19 -08:00
README.org fix README apostrophes 2020-02-23 10:32:19 -08:00

melpazoid 🤖

https://travis-ci.org/riscy/melpazoid.svg?branch=master

melpazoid is a bundle of scripts for testing Emacs packages, primarily submissions to MELPA. I've been using this to help check MELPA pull requests. The ambition is checks that run in a "clean" environment, either through CI or through a container on your local machine.

This is a work in progress feedback and pull requests are welcome (search for TODOs, raise an issue, whatever). Note my current aim is to make this code simpler before I make it any more complicated.

The checks are a combination of:

  1. byte-compile-file
  2. checkdoc
  3. package-lint
  4. a license checker (in melpazoid.py)
  5. some elisp checks (in melpazoid.el)

14 are on the MELPA checklist, so you should always try to get those right. The license checker is currently very crude. The elisp checks are not foolproof, sometimes opinionated, and may raise false positives.

Usage

You can fork it and let CI do the work, or use it locally.

Fork it and let CI do the work

If you don't want to install this software or its dependencies, you are encouraged to fork this repository and let CI do the work. Then enable Travis-CI on your fork, or just open a pull request against this repository (I won't merge it). The eventual build information will report any issues.

Your fork will need to point to the Emacs package you want to build, which can be done by modifying the .travis.yml file in one of the following ways.

Test a recipe before you even open a pull request to MELPA

Modify the env field and specify your clone URL and your recipe:

env: >-
  CLONE_URL=https://github.com/me/my-package-repo
  RECIPE='(my-package :repo "me/my-package-repo" :fetcher github)'

Note the apostrophes ' around the RECIPE.

Test a MELPA pull request you've already opened

Modify the env field and specify your open MELPA PR:

env: >-
  MELPA_PR_URL=https://github.com/melpa/melpa/pull/6713

Use it locally

You will need Python ≥ 3.6 (and the requests package) and Docker. An image will be built with (hopefully) all of your requirements installed. By default, it will be run with no network access. The output scroll will report any discovered issues.

Test a MELPA PR

MELPA_PR_URL=https://github.com/melpa/melpa/pull/6718 make

Test a remote package

CLONE_URL=https://github.com/riscy/shx-for-emacs \
    RECIPE='(shx :repo "riscy/shx-for-emacs" :fetcher github)' \
    make

Note the apostrophes ' around the RECIPE.

Test a local package (work in progress)

PKG_PATH=/path/to/package \
    PKG_NAME=package-name \
    make