我们正在评估Prismatic/schema是否用于当前使用Clojure 1.4的项目。我们目前不希望在项目中升级Clojure。 Schema需要Clojure 1.5.1,但是repl中的一些基本测试没有显示Clojure版本更改为1.4的任何问题。
是否有其他人尝试在Clojure 1.4上使用架构,它是如何消失的?
这是我尝试过的(在project.clj中将Clojure更改为1.4.0之后):
(require '[schema.core :as s])
(require '[schema.macros :as sm])
(sm/defn foo ...)
(s/with-fn-validation (foo ...))
没问题。我注意到的一件事是模式测试在Clojure 1.4上完全呕吐(甚至不会运行)。这我并不在乎,但我会关心项目功能是否存在实际问题。
答案 0 :(得分:4)
据我所知,Schema应该可以正常使用1.4。测试失败是因为他们使用标记协议(没有方法),而1.4不喜欢 - 但Schema本身不依赖于此功能。我验证了在向ATestProtocol添加虚拟方法之后,所有Schema测试目前都在Clojure 1.4.0下传递。
我不想承诺未来对1.4的支持,但如果您发现任何问题或错误,请告诉我们,我们会看到我们能做些什么。正如Jared在上面指出的那样,谷歌集团可能更适合这样的问题。