MELPAにレシピを投稿するには

  • 9
    Like
  • 0
    Comment
More than 1 year has passed since last update.

MELPAは有志によるEmacs Lispパッケージリポジトリです。Emacs標準のpackage.el/ELPAと互換性があり、2016年現在でのEmacs Lispパッケージの配布手段としては主流です。そのあたりの事情は、2015年Emacsパッケージ事情に書いた通り。

MELPAはWebブラウザから簡単にEmacs Lispパッケージを検索することができます。利用者が多いので、自作のEmacs Lispを公開したときに当時にMELPAに登録しておくことでインストールされやすくできます。

特徴としては、「レシピ」の形式でインストール情報を定義することができます。GitHubのプルリクエストでのレシピ投稿はRubyGems.orgPackagist(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みたいな感じです)

レビューを迅速にするには

我々は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>は、レシピ名を指します。

  1. MELPAリポジトリをフォークします
  2. 新しいレシピファイルをpackage-build-recipes-dir変数のディレクトリ(デフォルトではpackage-buildパッケージがインストールされたディレクトリの下のrecipes/)に置いてください。package-build.elで定義されたコマンドM-x package-build-create-recipeでは、その手順を案内してくれます。
  3. コマンドラインで以下のコマンドを実行し、パッケージが正しく構成されることを確認してください。
    make recipes/<NAME>
    • あなたの環境のemacsのバージョンが23以上であるか、Emacsの実行ファイルに$EMACS_COMMANDが設定されてることを確認してください。
    • またはレシピファイルをEmacsで編集してC-c C-cを押すと、新しく構築されたパッケージをインストールするか尋ねられます。
  4. もしリポジトリがリリースのためのタグを含むなら、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氏は中学高校時代は現代文には自信があったが英語は赤点常連だったことで有名なので、翻訳は信頼せず原文を読むべき。