嗨,当更新到Clojure 1.11.0时,我遇到了以下情况。在我们的应用程序中,我们有一些地方使用danlentz/clj-uuid库创建V5(基于名称,SHA1散列)uuids。在升级后,产生的v5 uuids不同。例如
(def ^:const +namespace+ #uuid "50d94d91-a1cf-422d-9586-4ddacf6df176")
(clj-uuid/v5 +namespace+ :some-keyword)
;; Clojure 1.10.3
=> #uuid "d30e9c3c-ced2-534e-a6b8-ecf784fb0785"
;; Clojure 1.11.0
=> #uuid "a16f6719-952a-55b9-b71b-b15dd263665b"
经过一些试验和错误,似乎是由于本地部分参数,即::some-keyword引起的差异,因为在该函数clj-uuid/v5中,它将关键字Object转换为一个byte数组,现在看起来有所不同。(如果我用String代替关键字作为本地部分参数,则生成的uuid在Clojure升级前后是一致的。)
生成的uuids被用于下线系统,要处理这种变化会相当困难。我能否以任何方式生成与之前完全相同的uuids?