2013-07-05 52 views
5

假設我在一個leiningen項目中使用了一個庫,並在Clojars上託管。我遇到了一個bug。我在Github上分發了這個項目,並修復了這個bug。怎麼辦?來自Clojars的補丁庫

在我的leiningen項目中使用我的版本庫最合適的方式是什麼?

P.S.我是從Ruby世界的到來,所以我顯然有捆紮機在腦海...

回答

6

如果你只希望你的修改版本可用你可以按照Arthur的流程進行「測試我的程序」步驟。如果你正在開發一個應用程序,那麼你可以將它與它的依賴包打包在一起進行部署(如lein uberjar)。您可能還想使用Leiningen的簽出功能並行處理主項目和修改後的庫(在Leiningen's tutorial中記錄 - 鏈接到當前2.2.0版本的版本)。

如果您希望您的修改版本可以在公共Maven存儲庫中訪問,則接受的事情(實際上,鼓勵這個特定的用例,而不是其他的)接受的事情是發佈具有原始artefact id的項目版本並且組ID爲org.clojars.{your-clojars-account-name}

例如,如果你想在其project.clj(defproject foo "upstream-version" ...)釋放自己的項目foo的版本,你的defproject形式發佈前改變爲(defproject org.clojars.kendallb/foo "your-version" ...)。那麼你可以依靠[org.clojars.kendallb/foo "your-version"]在你的項目中。

這種方式不會有任何與原始的人工製品ID或任何其他叉相沖突。至於讓你的變化合並上遊,亞瑟的過程是完全合理的。

+0

我選擇了這個答案,因爲它包含了獲取補丁到生產的所有方法的說明。謝謝! – KendallB

6

我的過程:

  • 叉在GitHub上項目
  • 變化從項目的0.1版本1,2-快照項目0.1.2 - 亞瑟 - 快照依賴
  • 的project.clj修復bug
  • 運行「雷音安裝」到我的叉子
  • CD添加到我的本地回購到我的項目(使用依賴關係的那個)
  • 更改我的porject.clj依賴於項目0.1.2 - 亞瑟 - 快照
  • 測試我的程序
  • 提交pull請求依賴的維護者
  • 跳上IRC聊天與維護關於這個問題,並且禮貌地詢問我的編碼風格是否符合他們對該項目的願景。 (這也有助於加快其合併)
  • 一旦合併修改從名稱中刪除-arthur-和測試他們的快照分支機構
  • 苦苦央求他們釋放固定的項目,所以你可以刪除快照依賴。
  • 當你正在等待依賴合併和釋放你可以在你的名字並帶有版本字符串將其標識爲您的叉子(在我來說,我使用-arthur-把你的叉子clojars。

當你只是在那裏挖掘修復一個bug的時候,Tt很喜歡將大量的「風格修正」應用到項目中如果你想這樣做,請嘗試項目維護者,因爲他們在它爲長期和更多的情感投入代碼。