address #561 by dropping support for clojure 1.9

Signed-off-by: Sean Corfield <sean@corfield.org>
This commit is contained in:
Sean Corfield 2025-03-06 13:20:16 -08:00
parent 675c94b294
commit 0d1fd0e901
No known key found for this signature in database
6 changed files with 13 additions and 18 deletions

View file

@ -1,5 +1,8 @@
# Changes # Changes
* 2.7.next in progress
* Drop support for Clojure 1.9 [#561](https://github.com/seancorfield/honeysql/issues/561).
* 2.6.1281 -- 2025-03-06 * 2.6.1281 -- 2025-03-06
* Address [#568](https://github.com/seancorfield/honeysql/issues/568) by adding `honey.sql/semicolon` to merge multiple SQL+params vectors into one (with semicolons separating the SQL statements). * Address [#568](https://github.com/seancorfield/honeysql/issues/568) by adding `honey.sql/semicolon` to merge multiple SQL+params vectors into one (with semicolons separating the SQL statements).
* Address [#567](https://github.com/seancorfield/honeysql/issues/567) by adding support for `ASSERT` clause. * Address [#567](https://github.com/seancorfield/honeysql/issues/567) by adding support for `ASSERT` clause.

View file

@ -14,7 +14,8 @@ This project follows the version scheme MAJOR.MINOR.COMMITS where MAJOR and MINO
> Note: every commit to the **develop** branch runs CI (GitHub Actions) and successful runs push a MAJOR.MINOR.9999-SNAPSHOT build to Clojars so the very latest version of HoneySQL is always available either via that [snapshot on Clojars](https://clojars.org/com.github.seancorfield/honeysql) or via a git dependency on the latest SHA. > Note: every commit to the **develop** branch runs CI (GitHub Actions) and successful runs push a MAJOR.MINOR.9999-SNAPSHOT build to Clojars so the very latest version of HoneySQL is always available either via that [snapshot on Clojars](https://clojars.org/com.github.seancorfield/honeysql) or via a git dependency on the latest SHA.
HoneySQL 2.x requires Clojure 1.9 or later. HoneySQL 2.7.x requires Clojure 1.10.3 or later.
Earlier versions of HoneySQL support Clojure 1.9.0.
It also supports recent versions of ClojureScript and Babashka. It also supports recent versions of ClojureScript and Babashka.
Compared to the [legacy 1.x version](#1.x), HoneySQL 2.x provides a streamlined codebase and a simpler method for extending the DSL. It also supports SQL dialects out-of-the-box and will be extended to support vendor-specific language features over time (unlike 1.x). Compared to the [legacy 1.x version](#1.x), HoneySQL 2.x provides a streamlined codebase and a simpler method for extending the DSL. It also supports SQL dialects out-of-the-box and will be extended to support vendor-specific language features over time (unlike 1.x).

View file

@ -47,8 +47,7 @@
"Generate and run doc tests. "Generate and run doc tests.
Optionally specify :aliases vector: Optionally specify :aliases vector:
[:1.9] -- test against Clojure 1.9 (the default) [:1.10] -- test against Clojure 1.10.3 (the default)
[:1.10] -- test against Clojure 1.10.3
[:1.11] -- test against Clojure 1.11.0 [:1.11] -- test against Clojure 1.11.0
[:1.12] -- test against Clojure 1.12.0 [:1.12] -- test against Clojure 1.12.0
[:cljs] -- test against ClojureScript" [:cljs] -- test against ClojureScript"
@ -99,7 +98,7 @@
(defn ci (defn ci
"Run the CI pipeline of tests (and build the JAR). "Run the CI pipeline of tests (and build the JAR).
Default Clojure version is 1.9.0 (:1.9) so :elide Default Clojure version is 1.10.3 (:1.10) so :elide
tests for #409 on that version." tests for #409 on that version."
[opts] [opts]
(let [aliases [:cljs :elide :1.10 :1.11 :1.12] (let [aliases [:cljs :elide :1.10 :1.11 :1.12]

View file

@ -1,6 +1,6 @@
{:mvn/repos {"sonatype" {:url "https://oss.sonatype.org/content/repositories/snapshots/"}} {:mvn/repos {"sonatype" {:url "https://oss.sonatype.org/content/repositories/snapshots/"}}
:paths ["src"] :paths ["src"]
:deps {org.clojure/clojure {:mvn/version "1.9.0"}} :deps {org.clojure/clojure {:mvn/version "1.10.3"}}
:aliases :aliases
{;; for help: clojure -A:deps -T:build help/doc {;; for help: clojure -A:deps -T:build help/doc
:build {:deps {io.github.clojure/tools.build {:mvn/version "0.10.6"} :build {:deps {io.github.clojure/tools.build {:mvn/version "0.10.6"}
@ -8,7 +8,6 @@
:ns-default build} :ns-default build}
;; versions to test against: ;; versions to test against:
:1.9 {:override-deps {org.clojure/clojure {:mvn/version "1.9.0"}}}
:1.10 {:override-deps {org.clojure/clojure {:mvn/version "1.10.3"}}} :1.10 {:override-deps {org.clojure/clojure {:mvn/version "1.10.3"}}}
:1.11 {:override-deps {org.clojure/clojure {:mvn/version "1.11.4"}}} :1.11 {:override-deps {org.clojure/clojure {:mvn/version "1.11.4"}}}
:1.12 {:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}} :1.12 {:override-deps {org.clojure/clojure {:mvn/version "1.12.0"}}}

View file

@ -9,7 +9,7 @@ The DSL itself -- the data structures that both versions convert to SQL and para
If you are using Clojure 1.11, you can invoke `format` with a mixture of named arguments and a trailing hash If you are using Clojure 1.11, you can invoke `format` with a mixture of named arguments and a trailing hash
map of additional options, if you wish. map of additional options, if you wish.
HoneySQL 1.x supported Clojure 1.7 and later. HoneySQL 2.x requires Clojure 1.9 or later. HoneySQL 1.x supported Clojure 1.7 and later. HoneySQL 2.7.x requires Clojure 1.10.3 or later. Earlier versions of HoneySQL 2.x support Clojure 1.9.0.
## Group, Artifact, and Namespaces ## Group, Artifact, and Namespaces
@ -90,7 +90,7 @@ The new namespaces are:
* `honey.sql` -- the primary API (just `format` now), * `honey.sql` -- the primary API (just `format` now),
* `honey.sql.helpers` -- helper functions to build the DSL. * `honey.sql.helpers` -- helper functions to build the DSL.
Supported Clojure versions: 1.9 and later. Supported Clojure versions: 1.10.3 and later.
## API Changes ## API Changes

View file

@ -436,9 +436,7 @@
(defn- format-simple-var (defn- format-simple-var
([x] ([x]
(let [c (if (keyword? x) (let [c (if (keyword? x)
#?(:bb (str (symbol x)) (str (symbol x))
:clj (str (.sym ^clojure.lang.Keyword x)) ;; Omits leading colon
:default (subs (str x) 1))
(str x))] (str x))]
(format-simple-var x c {}))) (format-simple-var x c {})))
([x c opts] ([x c opts]
@ -455,9 +453,7 @@
;; for multiple / in the %fun.call case so that ;; for multiple / in the %fun.call case so that
;; qualified column names can be used: ;; qualified column names can be used:
(let [c (if (keyword? x) (let [c (if (keyword? x)
#?(:bb (str (symbol x)) (str (symbol x))
:clj (str (.sym ^clojure.lang.Keyword x)) ;; Omits leading colon
:default (subs (str x) 1))
(str x))] (str x))]
(cond (str/starts-with? c "%") (cond (str/starts-with? c "%")
(let [[f & args] (split-by-separator (subs c 1) ".")] (let [[f & args] (split-by-separator (subs c 1) ".")]
@ -1737,10 +1733,7 @@
(if (keyword? k) (if (keyword? k)
(if-let [n (namespace k)] (if-let [n (namespace k)]
(symbol n (name k)) (symbol n (name k))
;; In CLJ runtime, reuse symbol that's already present in the keyword. (symbol (name k)))
#?(:bb (symbol (name k))
:clj (.sym ^clojure.lang.Keyword k)
:default (symbol (name k))))
k)) k))
(defn format-dsl (defn format-dsl