2024 Clojure状态调查中分享您的想法!

欢迎!请参阅关于页面以了解更多有关如何使用本网站的信息。

0
规范

我发现了一些尝试spec-alpha2(一些小)的障碍。这两个都是在GitHub页面上的文档中。引用的命名空间是spec的旧版本,而jar文件不在Leiningen的默认存储库之一。

我建议如下更新

将“要加载的命名空间”部分改为引用clojure.spec-alpha2而不是clojure.alpha.spec

在包含Maven坐标的部分中说明jar文件位于Sonatype快照存储库中(https://oss.sonatype.org/content/repositories/snapshots/

1 个答案

0

命名空间是正确的(之前的版本是clojure.spec.alpha,spec-alpha2的版本目前是clojure.alpha.spec,但预计在发布时将是clojure.spec)。

我们不认为这个库目前可以使用(它不完全且存在许多已知错误)。Sonatype快照存储库在发布部分中提及(开发快照版本链接)。我们目前没有进行快照发布。可能有一些来自构建盒子测试工作的工作,但它们并不反映当前状态或我推荐使用的内容。也许我会暂时移除所有这些。

如README中所述,如果您想在开发期间尝试它,请将其用作git依赖来获取当前状态。

我认为移除对 Maven 构建的引用可能是一个好主意,以防有人像我一样掉进兔子洞,如果可能的话甚至可以从存储库中拉取。

经过一些侦探工作,我使这个例子工作(我猜这是从 spec-alpha2 的早期版本)。

(defproject scratch "0.1.0-SNAPSHOT")
  :dependencies [[org.clojure/clojure "1.10.1"]
            [org.clojure/spec-alpha2 "0.2.177-SNAPSHOT"]
            [org.clojure/test.check "0.9.0"]]
  :repositories [["sonatype" {:url "https://oss.sonatype.org/content/repositories/snapshots/"}]]

(ns scratch.core
  (:require [clojure.spec-alpha2 :as sa2]
            [clojure.spec-alpha2.gen :as gen]))

(sa2/def ::x (s/and-
            (s/cat :i1 int? :i2 int?)
            #(apply distinct? %)))

等等
顺便说一下,无论那个快照是什么,它都很旧,并不能反映存储库的当前状态。
...