From 832d9ebe9589f4fd5eb42d0c705f0c5a85322ce0 Mon Sep 17 00:00:00 2001 From: Joel Kaasinen Date: Tue, 1 Apr 2025 10:16:41 +0300 Subject: [PATCH 1/4] deps: bump malli --- project.clj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/project.clj b/project.clj index dbe9796c..a451969f 100644 --- a/project.clj +++ b/project.clj @@ -40,7 +40,7 @@ [metosin/muuntaja "0.6.11"] [metosin/jsonista "0.3.13"] [metosin/sieppari "0.0.0-alpha13"] - [metosin/malli "0.17.0"] + [metosin/malli "0.18.0"] ;; https://clojureverse.org/t/depending-on-the-right-versions-of-jackson-libraries/5111 [com.fasterxml.jackson.core/jackson-core "2.18.2"] @@ -99,7 +99,7 @@ [metosin/muuntaja "0.6.11"] [metosin/sieppari "0.0.0-alpha13"] [metosin/jsonista "0.3.13"] - [metosin/malli "0.17.0"] + [metosin/malli "0.18.0"] [lambdaisland/deep-diff "0.0-47"] [meta-merge "1.0.0"] [com.bhauman/spell-spec "0.1.2"] From 2bf8aa98a7de9757d0b2afda1d30609b5bb53cf8 Mon Sep 17 00:00:00 2001 From: Joel Kaasinen Date: Tue, 1 Apr 2025 10:22:07 +0300 Subject: [PATCH 2/4] test: malli now uses . instead of ~1 in json-schema/swagger $refs update our assertions accordingly --- test/cljc/reitit/openapi_test.clj | 14 +++++--------- test/cljc/reitit/swagger_test.clj | 32 +++++++++++++++---------------- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/test/cljc/reitit/openapi_test.clj b/test/cljc/reitit/openapi_test.clj index 11d3fd85..ca545008 100644 --- a/test/cljc/reitit/openapi_test.clj +++ b/test/cljc/reitit/openapi_test.clj @@ -1009,7 +1009,7 @@ {:content {"application/json" {:schema - {:$ref "#/components/schemas/reitit.openapi-test~1Plus"}}}}}} + {:$ref "#/components/schemas/reitit.openapi-test.Plus"}}}}}} "/get" {:get {:parameters @@ -1019,19 +1019,15 @@ {:in "query" :name :y :required true - :schema {:$ref "#/components/schemas/reitit.openapi-test~1Y"}}]}}} + :schema {:$ref "#/components/schemas/reitit.openapi-test.Y"}}]}}} :components {:schemas - {"reitit.openapi-test/Plus" + {"reitit.openapi-test.Plus" {:type "object" :properties {:x {:type "integer"} - :y {:$ref "#/components/schemas/reitit.openapi-test~1Y"}} + :y {:$ref "#/components/schemas/reitit.openapi-test.Y"}} :required [:x :y]} - "reitit.openapi-test/Y" {:type "integer"}}}} + "reitit.openapi-test.Y" {:type "integer"}}}} spec)) - ;; TODO: the OAS 3.1 json schema disallows "/" in :components :schemas keys, - ;; even though the text of the spec allows it. See: - ;; https://github.com/seriousme/openapi-schema-validator/blob/772375bf4895f0e641d103c27140cdd1d2afc34e/schemas/v3.1/schema.json#L282 - #_ (is (nil? (validate spec)))))) diff --git a/test/cljc/reitit/swagger_test.clj b/test/cljc/reitit/swagger_test.clj index 593a1287..9fcbd10a 100644 --- a/test/cljc/reitit/swagger_test.clj +++ b/test/cljc/reitit/swagger_test.clj @@ -161,14 +161,14 @@ expected {:x-id #{::math} :swagger "2.0" :info {:title "my-api"} - :definitions {"reitit.swagger-test/req-key" {:type "string" + :definitions {"reitit.swagger-test.req-key" {:type "string" :x-anyOf [{:type "string"} {:type "string"}]} - "reitit.swagger-test/req-val" {:type "object" + "reitit.swagger-test.req-val" {:type "object" :x-anyOf [{:type "object"} {:type "string"}]} - "reitit.swagger-test/resp-map" {:type "object"}, - "reitit.swagger-test/resp-string" {:type "string" + "reitit.swagger-test.resp-map" {:type "object"}, + "reitit.swagger-test.resp-string" {:type "string" :minLength 1}} :paths {"/api/spec/plus/{z}" {:patch {:parameters [] :summary "patch" @@ -287,12 +287,12 @@ :schema {:type "object" :additionalProperties - {:$ref "#/definitions/reitit.swagger-test~1req-val"}}}] + {:$ref "#/definitions/reitit.swagger-test.req-val"}}}] :responses {200 {:schema - {:$ref "#/definitions/reitit.swagger-test~1resp-map" - :x-anyOf [{:$ref "#/definitions/reitit.swagger-test~1resp-map"} - {:$ref "#/definitions/reitit.swagger-test~1resp-string"}]} + {:$ref "#/definitions/reitit.swagger-test.resp-map" + :x-anyOf [{:$ref "#/definitions/reitit.swagger-test.resp-map"} + {:$ref "#/definitions/reitit.swagger-test.resp-string"}]} :description ""} 500 {:description "fail"}} :summary "plus put with definitions"}} @@ -532,24 +532,24 @@ {:get {:no-doc true :handler (swagger/create-swagger-handler)}}]])) spec (:body (app {:request-method :get, :uri "/swagger.json"}))] - (is (= {:definitions {"reitit.swagger-test/Plus" {:properties {:x {:$ref "#/definitions/reitit.swagger-test~1X"}, - :y {:$ref "#/definitions/reitit.swagger-test~1Y"}}, + (is (= {:definitions {"reitit.swagger-test.Plus" {:properties {:x {:$ref "#/definitions/reitit.swagger-test.X"}, + :y {:$ref "#/definitions/reitit.swagger-test.Y"}}, :required [:x :y], :type "object"}, - "reitit.swagger-test/X" {:format "int64", + "reitit.swagger-test.X" {:format "int64", :type "integer"}, - "reitit.swagger-test/Y" {:format "int64", + "reitit.swagger-test.Y" {:format "int64", :type "integer"}, - "reitit.swagger-test/Result" {:type "object", + "reitit.swagger-test.Result" {:type "object", :properties {:result {:type "integer", :format "int64"}}, :required [:result]}}, :paths {"/post" {:post {:parameters [{:description "", :in "body", :name "body", :required true, - :schema {:$ref "#/definitions/reitit.swagger-test~1Plus"}}] + :schema {:$ref "#/definitions/reitit.swagger-test.Plus"}}] :responses {200 {:description "" - :schema {:$ref "#/definitions/reitit.swagger-test~1Result"}}}}} + :schema {:$ref "#/definitions/reitit.swagger-test.Result"}}}}} "/get" {:get {:parameters [{:in "query" :name :x :description "" @@ -563,7 +563,7 @@ :required true :format "int64"}] :responses {200 {:description "" - :schema {:$ref "#/definitions/reitit.swagger-test~1Result"}}}}}} + :schema {:$ref "#/definitions/reitit.swagger-test.Result"}}}}}} :swagger "2.0", :x-id #{:reitit.swagger/default}} spec)))) From 15987d99522346fe84feea07cb7e28a6c842b1f2 Mon Sep 17 00:00:00 2001 From: Joel Kaasinen Date: Tue, 1 Apr 2025 10:25:38 +0300 Subject: [PATCH 3/4] test: bump openapi-schema-validator --- package-lock.json | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1d46edd..86c75ec1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "shadow-cljs": "^2.28.22" }, "devDependencies": { - "@seriousme/openapi-schema-validator": "^2.3.1", + "@seriousme/openapi-schema-validator": "^2.4.0", "karma": "^6.4.4", "karma-chrome-launcher": "^3.2.0", "karma-cli": "^2.0.0", @@ -27,11 +27,10 @@ } }, "node_modules/@seriousme/openapi-schema-validator": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@seriousme/openapi-schema-validator/-/openapi-schema-validator-2.3.1.tgz", - "integrity": "sha512-szUXBZJUhq+Yw+vUro2QeltSIoZvMDQi3MLqJhIKcRcRYyFt9B6dyjMD1RVf3nFvNAHkWqa48NJA46ti2P8smA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@seriousme/openapi-schema-validator/-/openapi-schema-validator-2.4.0.tgz", + "integrity": "sha512-2PWq2QbDMu+CANpBLZ2Uch9PgTIiftLpiLH4lcaykjV463f4Vt9eD61EeaVI++D0HII4JKnptX46391pII1XZA==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^8.17.1", "ajv-draft-04": "^1.0.0", diff --git a/package.json b/package.json index 099a051d..a87d623d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "reitit", "private": true, "devDependencies": { - "@seriousme/openapi-schema-validator": "^2.3.1", + "@seriousme/openapi-schema-validator": "^2.4.0", "karma": "^6.4.4", "karma-chrome-launcher": "^3.2.0", "karma-cli": "^2.0.0", From ef64fc50b81a82a853d0750adce81f62e0ae6240 Mon Sep 17 00:00:00 2001 From: Joel Kaasinen Date: Mon, 12 May 2025 14:39:38 +0300 Subject: [PATCH 4/4] doc: add note about malli update to CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e77bb6d4..44014d9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ We use [Break Versioning][breakver]. The version numbers follow a `.` is present, `:responses :default` is not used, even if `:responses ` defines no schema. * Should not break normal use, but might cause surprises related to defaults applying/not applying +* **NOTE** This release depends on malli 0.18.0, which changes the format of OpenAPI & Swagger named schemas from `foo.bar/quux` to `foo.bar.quux` ## 0.8.0 (2025-03-28)