假設我在一個leiningen項目中使用了一個庫,並在Clojars上託管。我遇到了一個bug。我在Github上分發了這個項目,並修復了這個bug。怎麼辦?來自Clojars的補丁庫
在我的leiningen項目中使用我的版本庫最合適的方式是什麼?
P.S.我是從Ruby世界的到來,所以我顯然有捆紮機在腦海...
假設我在一個leiningen項目中使用了一個庫,並在Clojars上託管。我遇到了一個bug。我在Github上分發了這個項目,並修復了這個bug。怎麼辦?來自Clojars的補丁庫
在我的leiningen項目中使用我的版本庫最合適的方式是什麼?
P.S.我是從Ruby世界的到來,所以我顯然有捆紮機在腦海...
如果你只希望你的修改版本可用你可以按照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或任何其他叉相沖突。至於讓你的變化合並上遊,亞瑟的過程是完全合理的。
我的過程:
當你只是在那裏挖掘修復一個bug的時候,Tt很喜歡將大量的「風格修正」應用到項目中如果你想這樣做,請嘗試與項目維護者,因爲他們在它爲長期和更多的情感投入代碼。
我選擇了這個答案,因爲它包含了獲取補丁到生產的所有方法的說明。謝謝! – KendallB