2

我们正在评估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 上完全呕吐(甚至不会运行)。我并不真正关心这一点,但我会关心项目功能是否存在实际问题。

4

1 回答 1

4

据我所知,Schema 应该可以在 1.4 中正常工作。测试失败是因为它们使用了标记协议(没有方法),而 1.4 不喜欢这样——但 Schema 本身并不依赖这个特性。我验证了在向 ATestProtocol 添加一个虚拟方法后,所有的 Schema 测试当前都在 Clojure 1.4.0 下通过。

我不想承诺将来会支持 1.4,但如果您发现任何问题或错误,请告诉我们,我们会看看我们能做些什么。正如 Jared 上面所指出的,Google Group 可能更适合解决此类问题。

于 2013-09-25T22:07:52.943 回答