2013-07-05 4 views
5

私はClojarsでホストされているleiningenプロジェクトでライブラリを使用しています。私はバグに遭う。私はGithubでプロジェクトをフォークし、バグを修正します。それで?パッチライブラリClojarsから

私のleiningenプロジェクトで私のバージョンのライブラリを使用する最も適切な方法は何ですか?

P.S.私は、Rubyの世界から来ているので、私は明らかに心にバンドラーを持っている...

答えて

6

変更されたバージョンのavailあなたはArthurのプロセスを「自分のプログラムをテストする」ステップに従うことができます。これは、デプロイメントの依存関係とともにパッケージ化するアプリケーション(例えば、lein uberjarと言う)で作業している場合は問題ありません。 Leiningenのチェックアウト機能を使用して、メインプロジェクトと修正されたライブラリを並行して作業することもできます(Leiningen's tutorialで文書化 - 現在の2.2.0リリースからのバージョンへのリンク)。

パブリックMavenリポジトリでアクセスできるようにするには、受け入れられたことです(実際には、この特定のユースケースでは奨励されています)。元のアーティファクトIDグループIDはorg.clojars.{your-clojars-account-name}です。例えば

あなたはそのproject.clj(defproject foo "upstream-version" ...)でプロジェクトfooの独自のバージョンをリリースしたい場合、あなたはリリース前に(defproject org.clojars.kendallb/foo "your-version" ...)にそのdefprojectフォームを変更したいです。あなたはあなたのプロジェクトの[org.clojars.kendallb/foo "your-version"]に依存することができます。

この方法では、元のアーティファクトIDまたは他のフォークと競合することはありません。

あなたの変更を上流にマージするために、アーサーのプロセスは完全に合理的です。

+0

私はこの回答を、プロダクションに至るまでパッチを入手するための指示が含まれていたから選択しました。ありがとう! – KendallB

6

私のプロセス:

  • フォークの変更
  • githubの上のプロジェクトのプロジェクト-0.1からのバージョン0.2-SNAPSHOTは、プロジェクト-0.1.2-アーサー-SNAPSHOTをするには、依存関係
  • のproject.cljで私のプロジェクトに私の地元のレポへ
  • CDを私のフォークを追加する「レインインストール」バグ
  • ランを修正します(依存関係を使用するもの)
  • メンテナで
  • ホップIRCへの依存性のメンテナにプルリクエストを送信し、チャットプロジェクト-0.1.2-アーサー-SNAPSHOT
  • テスト私のプログラム
  • に依存するように私のporject.cljを変更私のコーディングスタイルがプロジェクトのビジョンと一致するかどうか丁寧に尋ねてください。彼らは名前から-arthur-を削除し、
  • そのSNAPSHOTブランチをテストベグを、あなたはSNAPSHOT依存性をドロップすることができますので、それらが固定プロジェクトを解放するために弁護修正マージたら
  • (これはまた、彼らの合併を促進するのに役立ちます)。
  • マージしてリリースするの依存を待っている間、あなたが下clojarsにあなたのフォークをプッシュすることができ、あなたの名前とあなたのフォークとしてそれを特定バージョン文字列と(私の場合は私が-arthur-使用。

あなたがバグを修正するために掘り下げているときに、プロジェクトにたくさんの "スタイルフィックス"を適用しようとしているのですが、に入れてみてくださいそれは長距離のためであり、コードにもっと感情的に投資されます。

関連する問題