MELPAは有志によるEmacs Lispパッケージリポジトリです。Emacs標準のpackage.el
/ELPAと互換性があり、2016年現在でのEmacs Lispパッケージの配布手段としては主流です。そのあたりの事情は、2015年Emacsパッケージ事情に書いた通り。
MELPAはWebブラウザから簡単にEmacs Lispパッケージを検索することができます。利用者が多いので、自作のEmacs Lispを公開したときに当時にMELPAに登録しておくことでインストールされやすくできます。
特徴としては、「レシピ」の形式でインストール情報を定義することができます。GitHubのプルリクエストでのレシピ投稿はRubyGems.orgやPackagist(PHP)と比べて多少の手間はかかりますが、一定の品質が担保されてゐる強いメリットがあります。
慣れれば簡単、なことではあるのですが、初心者にはつまづきやすい「お作法」のようなものがあるので注意する必要があります。投稿前に注意すべき条項についてはmelpa/CONTRIBUTING.mdにまとめられてるので
この記事は2016年3月13日現在のをもとにしてます。
↓ ここから翻訳
レシピを追加する
新規のレシピ追加はガイドラインを遵守する必要があります。
- ひとつのレシピごとにひとつのプルリクエストを送ること。複数のプルリクエストを送る際は複数のブランチを切って構いません。
- ソースコードは著名なバージョン管理システムに保管されている必要があります。EmacsWikiは保管場所として認められなくなりました。
- パッケージの公式な配布元からインストールされるようにする必要があります。特殊な状況を除いて、フォークしたリポジトリからインストールするレシピは認めれらません。
- パッケージはGNU Emacs Lisp Reference Manual: Packagingによって説明された
package.el
の形式を遵守すべきです。詳細な情報はmarmaladeパッケージマニュアルにもあります。 - レシピはインストールされるファイルサイズが最小になるように指定してください。詳しくはREADMEの#Recipe Formatを参考にしてください。
- パッケージの「安定版」を作成するには、
version-to-list
関数で解釈できる形式の「タグ」を付けます。MALPAはタグをもとに安定版パッケージを生成します。- (訳注: 要は、Gitなら
git tag 0.1.0; git push --tags
みたいな感じです)
- (訳注: 要は、Gitなら
レビューを迅速にするには
我々はMELPAを構成するパッケージの品質に気を掛けてるので、提出されたレシピはすべてレビューします。次の手順に従ってくれれば、レビューのプロセスが迅速化できて助かります。
- flycheck-packageはパッケージのメタデータについての基本的なミスを指摘してくれます。
- プルリクエストには以下の情報を含めてください。
- 何をするためのパッケージなのか簡潔に説明
- パッケージのリポジトリへのリンク
- あなたとパッケージの関係(たとえば、メンテナー? 貢献者? パッケージの利用者?)
- 上流パッケージの管理者とコミュニケーションをとっておいてください。(たとえば、このレシピが投稿されたことで互換性に変化が生じないか)
-
Relevant communications with the upstream package maintainer (e.g., package.el compatibility changes that you have submitted).
(訳注: 私にはこの英文は訳せなかった…)
-
- パッケージのビルドをテストするには、コマンドラインから
make recipes/<recipe>
を実行してください。あるいはEmacsでレシピを開いてC-c C-cを押してください。 - パッケージのインストールをテストするには、
package-install-file
を実行します。あるいは、C-c C-cを押したときにyes
と入力することでもインストールできます。
テスト
説明文の中の<NAME>
は、レシピ名を指します。
- MELPAリポジトリをフォークします
- 新しいレシピファイルを
package-build-recipes-dir
変数のディレクトリ(デフォルトではpackage-buildパッケージがインストールされたディレクトリの下のrecipes/
)に置いてください。package-build.el
で定義されたコマンドM-x package-build-create-recipe
では、その手順を案内してくれます。 - コマンドラインで以下のコマンドを実行し、パッケージが正しく構成されることを確認してください。
make recipes/<NAME>
- あなたの環境の
emacs
のバージョンが23以上であるか、Emacsの実行ファイルに$EMACS_COMMAND
が設定されてることを確認してください。 - またはレシピファイルをEmacsで編集してC-c C-cを押すと、新しく構築されたパッケージをインストールするか尋ねられます。
- もしリポジトリがリリースのためのタグを含むなら、
STABLE=t make recipes/<NAME>
を実行することで正しいバージョン番号が検出できることを検証できます。バージョン検出はレシピに:version-regexp
を記述することで調整できます(README.md#Recipe Formatを参照)。
EMACS=/path/to/emacs make sandbox
そしてM-x package-list-packages
を実行すると、適切にテストと実行ができます。これは依存性が不足してないか検証するのに便利です!
プルリクエストを送る
正しく動作することを検証できたら、GitHubでプルリクエストを送りましょう! hubコマンドを導入すればプルリクエストを送る手間が簡単になるかもしれませんよ…
翻訳ここまで。
あとがき
文意がとれなかった文章は翻訳を諦めた。tadsan氏は中学高校時代は現代文には自信があったが英語は赤点常連だったことで有名なので、翻訳は信頼せず原文を読むべき。