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
|
||||
/checkouts
|
||||
/dist
|
||||
pom.xml*
|
||||
*.jar
|
||||
*.class
|
||||
.cpcache
|
||||
.eastwood
|
||||
.lein-deps-sum
|
||||
.lein-failures
|
||||
.lein-plugins
|
||||
.lein-repl-history
|
||||
.nrepl-port
|
||||
.classpath
|
||||
.project
|
||||
.nrepl-port
|
||||
bin
|
||||
test/readme.clj
|
||||
/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
|
||||
|
||||
* 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.
|
||||
|
||||
## Build
|
||||
|
||||
[](https://travis-ci.org/jkk/honeysql)
|
||||
[](https://versions.deps.co/jkk/honeysql)
|
||||
[](https://clojurians.zulipchat.com/#narrow/stream/152091-honeysql)
|
||||
The latest versions on Clojars and on cljdoc:
|
||||
|
||||
[](https://clojars.org/honeysql) [](https://cljdoc.org/d/honeysql/honeysql/CURRENT)
|
||||
|
||||
|
||||
## 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
|
||||
(defmethod fmt/format-clause :foobar [[op v] sqlmap]
|
||||
(str "FOOBAR " (fmt/to-sql v)))
|
||||
|
||||
```
|
||||
```clojure
|
||||
(sql/format {: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
|
||||
(defhelper foobar [m args]
|
||||
(assoc m :foobar (first args)))
|
||||
|
||||
```
|
||||
```clojure
|
||||
(-> (select :a :b) (foobar :baz) sql/format)
|
||||
=> ["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.
|
||||
|
||||
## 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.
|
||||
|
||||
|
|
|
|||
24
deps.edn
24
deps.edn
|
|
@ -7,14 +7,22 @@
|
|||
:1.9 {:override-deps {org.clojure/clojure {:mvn/version "1.9.0"}}}
|
||||
: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"}}}
|
||||
;; clj -A:test:runner
|
||||
:test {:extra-paths ["test"]}
|
||||
:runner {:extra-deps {com.cognitect/test-runner
|
||||
{:git/url "https://github.com/cognitect-labs/test-runner"
|
||||
:sha "f7ef16dc3b8332b0d77bc0274578ad5270fbfedd"}}
|
||||
:main-opts ["-m" "cognitect.test-runner"
|
||||
"-d" "test"]}
|
||||
:runner
|
||||
{:extra-deps {com.cognitect/test-runner
|
||||
{:git/url "https://github.com/cognitect-labs/test-runner"
|
||||
:sha "f7ef16dc3b8332b0d77bc0274578ad5270fbfedd"}}
|
||||
:main-opts ["-m" "cognitect.test-runner"
|
||||
"-d" "test"]}
|
||||
:cljs-runner {:extra-deps {olical/cljs-test-runner {:mvn/version "3.7.0"}}
|
||||
:main-opts ["-m" "cljs-test-runner.main"]}
|
||||
:readme {:extra-deps {seancorfield/readme {:mvn/version "1.0.12"}}
|
||||
:main-opts ["-m" "seancorfield.readme"]}}}
|
||||
:readme {:extra-deps {seancorfield/readme {:mvn/version "1.0.13"}}
|
||||
: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
|
||||
#
|
||||
# Assumes node.js/npm and lumo-cljs are installed!
|
||||
# See .travis.yml for details of the test environment.
|
||||
#
|
||||
rm -rf test/readme.clj
|
||||
if test "$1" = "all"
|
||||
|
||||
echo ==== Test README.md ==== && clojure -A:readme && \
|
||||
echo ==== Lint Source ==== && clojure -A:eastwood && \
|
||||
echo ==== Test ClojureScript ==== && clojure -A:test:cljs-runner
|
||||
|
||||
if test $? -eq 0
|
||||
then
|
||||
clj_test="test-all"
|
||||
else
|
||||
clj_test="test"
|
||||
if test "$1" = "all"
|
||||
then
|
||||
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
|
||||
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