假设我在leiningen项目中使用了一个库,托管在Clojars上。我遇到了一个错误。我在Github上分叉项目,修复bug。现在怎么样?
在我的leiningen项目中使用我的库版本最合适的方法是什么?
P.S。我来自Ruby世界,所以我显然已经想到了Bundler ......
答案 0 :(得分:6)
我的过程:
当你只是在那里挖掘修复bug时,很有诱惑力将很多“样式修复”应用到项目中。如果你想这样做,请尝试与项目维护人员一起工作,因为他们长期在其中并且在代码中投入更多情感。
答案 1 :(得分:6)
如果您只想在本地提供修改后的版本,可以按照Arthur的流程进行“测试我的程序”步骤。如果您正在处理一个应用程序,并将其与其依赖项打包在一起(使用lein uberjar
,那么这很好)。您可能还希望使用Leiningen的签出功能来并行处理主项目和修改后的库(在Leiningen's tutorial中记录 - 链接到当前2.2.0版本中的版本)。
如果您希望可以在公共Maven存储库中访问您的修改版本,那么接受的事情(实际上,鼓励这个特定用例而不是其他用户)是使用原始artefact id发布项目版本,组ID为org.clojars.{your-clojars-account-name}
。
例如,如果您希望在其foo
中使用(defproject foo "upstream-version" ...)
发布自己的项目版本project.clj
,则会将其defproject
表单更改为{{1在发布之前。然后,您可以依赖项目中的(defproject org.clojars.kendallb/foo "your-version" ...)
。
这样就不会与原始的人工制品ID或任何其他的叉子发生任何冲突。
至于让您的变更合并到上游,Arthur的流程非常合理。