Switch dev/test infrastructure from Leiningen to CLI/deps.edn
This commit is contained in:
parent
fdf1c39cfa
commit
6e68bb9122
12 changed files with 132 additions and 146 deletions
19
.circleci/config.yml
Normal file
19
.circleci/config.yml
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
version: 2
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
working_directory: ~/honeysql
|
||||||
|
docker:
|
||||||
|
- image: circleci/clojure:openjdk-11-tools-deps-1.10.0.442
|
||||||
|
# environment:
|
||||||
|
# JVM_OPTS: -Xmx3200m
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
key: honeysql-{{ checksum "deps.edn" }}
|
||||||
|
- run: clojure -R:test:runner -Spath
|
||||||
|
- save_cache:
|
||||||
|
paths:
|
||||||
|
- ~/.m2
|
||||||
|
- ~/.gitlibs
|
||||||
|
key: honeysql-{{ checksum "deps.edn" }}
|
||||||
|
- run: sh run-tests.sh
|
||||||
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -6,20 +6,13 @@
|
||||||
/classes
|
/classes
|
||||||
/checkouts
|
/checkouts
|
||||||
/dist
|
/dist
|
||||||
pom.xml*
|
|
||||||
*.jar
|
*.jar
|
||||||
*.class
|
*.class
|
||||||
.cpcache
|
.cpcache
|
||||||
.eastwood
|
.eastwood
|
||||||
.lein-deps-sum
|
|
||||||
.lein-failures
|
|
||||||
.lein-plugins
|
|
||||||
.lein-repl-history
|
|
||||||
.nrepl-port
|
.nrepl-port
|
||||||
.classpath
|
.classpath
|
||||||
.project
|
.project
|
||||||
.nrepl-port
|
.nrepl-port
|
||||||
bin
|
bin
|
||||||
test/readme.clj
|
|
||||||
/cljs-test-runner-out
|
/cljs-test-runner-out
|
||||||
/node_modules
|
|
||||||
|
|
|
||||||
19
.travis.yml
19
.travis.yml
|
|
@ -1,19 +0,0 @@
|
||||||
dist: trusty
|
|
||||||
sudo: required
|
|
||||||
language: clojure
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- $HOME/.m2
|
|
||||||
- $HOME/.npm
|
|
||||||
- $HOME/.nvm
|
|
||||||
- $TRAVIS_BUILD_DIR/.cache
|
|
||||||
- $TRAVIS_BUILD_DIR/node_modules
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- npm install lumo-cljs@1.8.0 -g
|
|
||||||
|
|
||||||
install:
|
|
||||||
- jdk_switcher use openjdk8
|
|
||||||
|
|
||||||
script: lein do check, eastwood, test-all, tach lumo, test-readme
|
|
||||||
|
|
@ -1,3 +1,7 @@
|
||||||
|
## 1.0.next in progress
|
||||||
|
|
||||||
|
* Switch dev/test pipeline to use CLI/`deps.edn` instead of Leiningen.
|
||||||
|
|
||||||
## 0.9.10
|
## 0.9.10
|
||||||
|
|
||||||
* Fix #254 #255 by adding support for `except`. (@ted-coakley-otm)
|
* Fix #254 #255 by adding support for `except`. (@ted-coakley-otm)
|
||||||
|
|
|
||||||
17
README.md
17
README.md
|
|
@ -1,12 +1,13 @@
|
||||||
# Honey SQL
|
# Honey SQL [](https://circleci.com/gh/jkk/honeysql/tree/master)
|
||||||
|
|
||||||
SQL as Clojure data structures. Build queries programmatically -- even at runtime -- without having to bash strings together.
|
SQL as Clojure data structures. Build queries programmatically -- even at runtime -- without having to bash strings together.
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
[](https://travis-ci.org/jkk/honeysql)
|
The latest versions on Clojars and on cljdoc:
|
||||||
[](https://versions.deps.co/jkk/honeysql)
|
|
||||||
[](https://clojurians.zulipchat.com/#narrow/stream/152091-honeysql)
|
[](https://clojars.org/honeysql) [](https://cljdoc.org/d/honeysql/honeysql/CURRENT)
|
||||||
|
|
||||||
|
|
||||||
## Leiningen Coordinates
|
## Leiningen Coordinates
|
||||||
|
|
||||||
|
|
@ -527,7 +528,8 @@ You can also define your own clauses:
|
||||||
;; Takes a MapEntry of the operator & clause data, plus the entire SQL map
|
;; Takes a MapEntry of the operator & clause data, plus the entire SQL map
|
||||||
(defmethod fmt/format-clause :foobar [[op v] sqlmap]
|
(defmethod fmt/format-clause :foobar [[op v] sqlmap]
|
||||||
(str "FOOBAR " (fmt/to-sql v)))
|
(str "FOOBAR " (fmt/to-sql v)))
|
||||||
|
```
|
||||||
|
```clojure
|
||||||
(sql/format {:select [:a :b] :foobar :baz})
|
(sql/format {:select [:a :b] :foobar :baz})
|
||||||
=> ["SELECT a, b FOOBAR baz"]
|
=> ["SELECT a, b FOOBAR baz"]
|
||||||
```
|
```
|
||||||
|
|
@ -537,7 +539,8 @@ You can also define your own clauses:
|
||||||
;; Defines a helper function, and allows 'build' to recognize your clause
|
;; Defines a helper function, and allows 'build' to recognize your clause
|
||||||
(defhelper foobar [m args]
|
(defhelper foobar [m args]
|
||||||
(assoc m :foobar (first args)))
|
(assoc m :foobar (first args)))
|
||||||
|
```
|
||||||
|
```clojure
|
||||||
(-> (select :a :b) (foobar :baz) sql/format)
|
(-> (select :a :b) (foobar :baz) sql/format)
|
||||||
=> ["SELECT a, b FOOBAR baz"]
|
=> ["SELECT a, b FOOBAR baz"]
|
||||||
|
|
||||||
|
|
@ -551,7 +554,7 @@ When adding a new clause, you may also need to register it with a specific prior
|
||||||
|
|
||||||
If you do implement a clause or function handler for an ANSI SQL, consider submitting a pull request so others can use it, too. For non-standard clauses and/or functions, look for a library that extends `honeysql` for that specific database or create one, if no such library exists.
|
If you do implement a clause or function handler for an ANSI SQL, consider submitting a pull request so others can use it, too. For non-standard clauses and/or functions, look for a library that extends `honeysql` for that specific database or create one, if no such library exists.
|
||||||
|
|
||||||
## why does my parameter get emitted as `()`?
|
## Why does my parameter get emitted as `()`?
|
||||||
|
|
||||||
If you want to use your own datatype as a parameter then the idiomatic approach of implementing `clojure.java.jdbc`'s [`ISQLValue`](https://clojure.github.io/java.jdbc/#clojure.java.jdbc/ISQLValue) protocol isn't enough as `honeysql` won't correct pass through your datatype, rather it will interpret it incorrectly.
|
If you want to use your own datatype as a parameter then the idiomatic approach of implementing `clojure.java.jdbc`'s [`ISQLValue`](https://clojure.github.io/java.jdbc/#clojure.java.jdbc/ISQLValue) protocol isn't enough as `honeysql` won't correct pass through your datatype, rather it will interpret it incorrectly.
|
||||||
|
|
||||||
|
|
|
||||||
24
deps.edn
24
deps.edn
|
|
@ -7,14 +7,22 @@
|
||||||
:1.9 {:override-deps {org.clojure/clojure {:mvn/version "1.9.0"}}}
|
:1.9 {:override-deps {org.clojure/clojure {:mvn/version "1.9.0"}}}
|
||||||
:1.10 {:override-deps {org.clojure/clojure {:mvn/version "1.10.1"}}}
|
:1.10 {:override-deps {org.clojure/clojure {:mvn/version "1.10.1"}}}
|
||||||
:master {:override-deps {org.clojure/clojure {:mvn/version "1.11.0-master-SNAPSHOT"}}}
|
:master {:override-deps {org.clojure/clojure {:mvn/version "1.11.0-master-SNAPSHOT"}}}
|
||||||
;; clj -A:test:runner
|
|
||||||
:test {:extra-paths ["test"]}
|
:test {:extra-paths ["test"]}
|
||||||
:runner {:extra-deps {com.cognitect/test-runner
|
:runner
|
||||||
{:git/url "https://github.com/cognitect-labs/test-runner"
|
{:extra-deps {com.cognitect/test-runner
|
||||||
:sha "f7ef16dc3b8332b0d77bc0274578ad5270fbfedd"}}
|
{:git/url "https://github.com/cognitect-labs/test-runner"
|
||||||
:main-opts ["-m" "cognitect.test-runner"
|
:sha "f7ef16dc3b8332b0d77bc0274578ad5270fbfedd"}}
|
||||||
"-d" "test"]}
|
:main-opts ["-m" "cognitect.test-runner"
|
||||||
|
"-d" "test"]}
|
||||||
:cljs-runner {:extra-deps {olical/cljs-test-runner {:mvn/version "3.7.0"}}
|
:cljs-runner {:extra-deps {olical/cljs-test-runner {:mvn/version "3.7.0"}}
|
||||||
:main-opts ["-m" "cljs-test-runner.main"]}
|
:main-opts ["-m" "cljs-test-runner.main"]}
|
||||||
:readme {:extra-deps {seancorfield/readme {:mvn/version "1.0.12"}}
|
:readme {:extra-deps {seancorfield/readme {:mvn/version "1.0.13"}}
|
||||||
:main-opts ["-m" "seancorfield.readme"]}}}
|
:main-opts ["-m" "seancorfield.readme"]}
|
||||||
|
:eastwood {:extra-deps {jonase/eastwood {:mvn/version "RELEASE"}}
|
||||||
|
:main-opts ["-m" "eastwood.lint" "{:source-paths,[\"src\"]}"]}
|
||||||
|
:jar {:extra-deps {seancorfield/depstar {:mvn/version "0.5.2"}}
|
||||||
|
:main-opts ["-m" "hf.depstar.jar" "honeysql.jar"]}
|
||||||
|
:install {:extra-deps {deps-deploy {:mvn/version "0.0.9"}}
|
||||||
|
:main-opts ["-m" "deps-deploy.deps-deploy" "install" "honeysql.jar"]}
|
||||||
|
:deploy {:extra-deps {deps-deploy {:mvn/version "0.0.9"}}
|
||||||
|
:main-opts ["-m" "deps-deploy.deps-deploy" "deploy" "honeysql.jar"]}}}
|
||||||
|
|
|
||||||
29
package.json
29
package.json
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
"name": "@honeysql/honeysql",
|
|
||||||
"version": "0.9.10",
|
|
||||||
"license": "EPL-1.0",
|
|
||||||
"homepage": "https://github.com/jkk/honeysql",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/jkk/honeysql"
|
|
||||||
},
|
|
||||||
"contributors": [
|
|
||||||
{
|
|
||||||
"name": "Michael Blume",
|
|
||||||
"email": "blume.mike@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Sean Corfield",
|
|
||||||
"email": "sean@corfield.org"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"files": [
|
|
||||||
"src/*"
|
|
||||||
],
|
|
||||||
"directories": {
|
|
||||||
"lib": "src"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"macrovich": "0.2.1-SNAPSHOT"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
62
pom.xml
Normal file
62
pom.xml
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>jkk</groupId>
|
||||||
|
<artifactId>honeysql</artifactId>
|
||||||
|
<version>1.0.next</version>
|
||||||
|
<name>honeysql</name>
|
||||||
|
<description>SQL as Clojure data structures.</description>
|
||||||
|
<url>https://github.com/jkk/honeysql</url>
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>Eclipse Public License</name>
|
||||||
|
<url>http://www.eclipse.org/legal/epl-v10.html</url>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<name>Sean Corfield</name>
|
||||||
|
</developer>
|
||||||
|
<developer>
|
||||||
|
<name>Justin Kramer</name>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
<scm>
|
||||||
|
<url>https://github.com/jkk/honeysql</url>
|
||||||
|
<connection>scm:git:git://github.com/jkk/honeysql.git</connection>
|
||||||
|
<developerConnection>scm:git:ssh://git@github.com/jkk/honeysql.git</developerConnection>
|
||||||
|
<tag>v1.0.next</tag>
|
||||||
|
</scm>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.clojure</groupId>
|
||||||
|
<artifactId>clojure</artifactId>
|
||||||
|
<version>1.10.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.cgrand</groupId>
|
||||||
|
<artifactId>macrovich</artifactId>
|
||||||
|
<version>0.2.1</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<sourceDirectory>src</sourceDirectory>
|
||||||
|
</build>
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>clojars</id>
|
||||||
|
<url>https://repo.clojars.org/</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>sonatype</id>
|
||||||
|
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
<distributionManagement>
|
||||||
|
<repository>
|
||||||
|
<id>clojars</id>
|
||||||
|
<name>Clojars repository</name>
|
||||||
|
<url>https://clojars.org/repo</url>
|
||||||
|
</repository>
|
||||||
|
</distributionManagement>
|
||||||
|
</project>
|
||||||
48
project.clj
48
project.clj
|
|
@ -1,48 +0,0 @@
|
||||||
(defproject honeysql "0.9.10"
|
|
||||||
:description "SQL as Clojure data structures"
|
|
||||||
:license {:name "Eclipse Public License"
|
|
||||||
:url "http://www.eclipse.org/legal/epl-v10.html"}
|
|
||||||
:url "https://github.com/jkk/honeysql"
|
|
||||||
:scm {:name "git"
|
|
||||||
:url "https://github.com/jkk/honeysql"}
|
|
||||||
:dependencies [[org.clojure/clojure "1.10.1"]
|
|
||||||
[net.cgrand/macrovich "0.2.1"]]
|
|
||||||
:aliases {"test-readme" ["with-profile" "midje" "midje"]
|
|
||||||
"test-all" ["with-profile"
|
|
||||||
"default:1.7,default:1.8,default:1.9,default:1.10,default:master"
|
|
||||||
"test"]}
|
|
||||||
:cljsbuild {:builds {:release {:source-paths ["src"]
|
|
||||||
:compiler {:output-to "dist/honeysql.js"
|
|
||||||
:optimizations :advanced
|
|
||||||
:output-wrapper false
|
|
||||||
:parallel-build true
|
|
||||||
:pretty-print false}}
|
|
||||||
:test {:source-paths ["src" "test" "test-lein"]
|
|
||||||
:compiler {:output-to "target/test/honeysql.js"
|
|
||||||
:output-dir "target/test"
|
|
||||||
:source-map true
|
|
||||||
:main honeysql.test
|
|
||||||
:parallel-build true
|
|
||||||
:target :nodejs}}}}
|
|
||||||
:doo {:build "test"}
|
|
||||||
:tach {:test-runner-ns 'honeysql.self-host-runner
|
|
||||||
:source-paths ["src" "test" "test-lein"]}
|
|
||||||
:profiles {:midje {:dependencies [[midje "1.9.6"]]
|
|
||||||
:plugins [[lein-midje "3.2.1"]
|
|
||||||
[midje-readme "1.0.9"]]
|
|
||||||
:midje-readme {:require "[honeysql.core :as sql]
|
|
||||||
[honeysql.helpers :refer :all :as helpers]
|
|
||||||
[honeysql.format :as fmt]
|
|
||||||
[honeysql.helpers :refer [defhelper]]"}}
|
|
||||||
:master {:repositories [["snapshots" "https://oss.sonatype.org/content/repositories/snapshots/"]]
|
|
||||||
:dependencies [[org.clojure/clojure "1.11.0-master-SNAPSHOT"]]}
|
|
||||||
:1.10 {:dependencies [[org.clojure/clojure "1.10.1"]]}
|
|
||||||
:1.9 {:dependencies [[org.clojure/clojure "1.9.0"]]}
|
|
||||||
:1.8 {:dependencies [[org.clojure/clojure "1.8.0"]]}
|
|
||||||
:1.7 {:dependencies [[org.clojure/clojure "1.7.0"]]}
|
|
||||||
:dev {:dependencies [[org.clojure/clojurescript "1.10.520"]
|
|
||||||
[cljsbuild "1.1.7"]]
|
|
||||||
:plugins [[lein-cljsbuild "1.1.7"]
|
|
||||||
[jonase/eastwood "0.3.5"]
|
|
||||||
[lein-doo "0.1.11"]
|
|
||||||
[lein-tach "1.0.0"]]}})
|
|
||||||
31
run-tests.sh
31
run-tests.sh
|
|
@ -1,13 +1,24 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
|
||||||
# Assumes node.js/npm and lumo-cljs are installed!
|
echo ==== Test README.md ==== && clojure -A:readme && \
|
||||||
# See .travis.yml for details of the test environment.
|
echo ==== Lint Source ==== && clojure -A:eastwood && \
|
||||||
#
|
echo ==== Test ClojureScript ==== && clojure -A:test:cljs-runner
|
||||||
rm -rf test/readme.clj
|
|
||||||
if test "$1" = "all"
|
if test $? -eq 0
|
||||||
then
|
then
|
||||||
clj_test="test-all"
|
if test "$1" = "all"
|
||||||
else
|
then
|
||||||
clj_test="test"
|
for v in 1.7 1.8 1.9 1.10 master
|
||||||
|
do
|
||||||
|
echo ==== Test Clojure $v ====
|
||||||
|
clojure -A:test:runner:$v
|
||||||
|
if test $? -ne 0
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo ==== Test Clojure ====
|
||||||
|
clojure -A:test:runner
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
lein do clean, check, eastwood, $clj_test, tach lumo, test-readme
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
(ns honeysql.self-host-runner
|
|
||||||
(:require [cljs.test :as t :refer-macros [run-tests]]
|
|
||||||
honeysql.core-test
|
|
||||||
honeysql.format-test))
|
|
||||||
|
|
||||||
(enable-console-print!)
|
|
||||||
|
|
||||||
(run-tests 'honeysql.core-test
|
|
||||||
'honeysql.format-test)
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
(ns honeysql.test
|
|
||||||
(:require
|
|
||||||
[doo.runner :refer-macros [doo-tests]]
|
|
||||||
[cljs.test :as t :refer-macros [is are deftest testing]]
|
|
||||||
honeysql.core-test
|
|
||||||
honeysql.format-test))
|
|
||||||
|
|
||||||
(doo-tests 'honeysql.core-test
|
|
||||||
'honeysql.format-test)
|
|
||||||
Loading…
Reference in a new issue