diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 137bc41..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,54 +0,0 @@ -# -*- js -*- -{ - "version": 2.1, - "executors": { - "clojure": { - "docker": [{"image": "clojure:<< parameters.java_version >>"}], - "parameters": { - "java_version": { - "description": "Java version", - "default": "temurin-25-lein", - "type": "string" - } - }, - "working_directory": "~/leiningen" - } - }, - "jobs": { - "build": { - "executor": "clojure", - "parameters": { - "java_version": { - "description": "Java version", - "default": "<< parameters.java_version >>", - "type": "string" - } - }, - "steps": [ - "checkout", - { - "restore_cache": { - "key": "reply-{{ checksum \"project.clj\" }}" - } - }, - { - "run": "lein test" - }, - { - "save_cache": { - "paths": ["~/.m2/repository"], - "key": "reply-{{ checksum \"project.clj\" }}" - } - } - ] - } - }, - "workflows": { - "test-with-matrix": { - "jobs": [ - {"build": {"name": "openjdk8", "java_version": "openjdk-8-lein"}}, - {"build": {"name": "temurin", "java_version": "temurin-25-lein"}}, - ] - } - } -} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..50d5947 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,49 @@ +name: Tests + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + java-version: [8, 11, 17, 21, 25] + clojure-version: ["1.12"] + include: + - java-version: 8 + clojure-version: "1.8" + - java-version: 8 + clojure-version: "1.9" + - java-version: 8 + clojure-version: "1.10" + - java-version: 8 + clojure-version: "1.11" + - java-version: 25 + clojure-version: "1.10" + - java-version: 25 + clojure-version: "1.11" + name: JDK ${{ matrix.java-version }}, Clojure ${{ matrix.clojure-version }} + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{ matrix.java-version }} + + - uses: DeLaGuardo/setup-clojure@13.4 + with: + lein: 2.11.2 + + - uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: m2-${{ matrix.java-version }}-${{ matrix.clojure-version }}-${{ hashFiles('project.clj') }} + restore-keys: m2-${{ matrix.java-version }}-${{ matrix.clojure-version }}- + + - run: lein with-profile +${{ matrix.clojure-version }} test diff --git a/README.md b/README.md index 1362536..cf891f2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![CircleCI](https://circleci.com/gh/trptcolin/reply/tree/main.svg?style=svg)](https://circleci.com/gh/trptcolin/reply/tree/main) +[![Tests](https://github.com/trptcolin/reply/actions/workflows/test.yml/badge.svg)](https://github.com/trptcolin/reply/actions/workflows/test.yml) [![Clojars Project](https://img.shields.io/clojars/v/reply/reply.svg)](https://clojars.org/reply/reply) [![cljdoc badge](https://cljdoc.org/badge/reply/reply)](https://cljdoc.org/d/reply/reply/CURRENT) [![downloads badge](https://versions.deps.co/reply/reply/downloads.svg)](https://clojars.org/reply/reply) @@ -102,7 +102,7 @@ this during our open-source Friday afternoons. ## License -Copyright (C) 2011-2021 Colin Jones +Copyright (C) 2011-2026 Colin Jones Distributed under the Eclipse Public License, the same as Clojure. See the LICENSE file for details. diff --git a/project.clj b/project.clj index dd784e8..6215a10 100644 --- a/project.clj +++ b/project.clj @@ -1,25 +1,30 @@ (defproject reply "0.6.0-SNAPSHOT" :description "REPL-y: A fitter, happier, more productive REPL for Clojure." - :dependencies [[org.clojure/clojure "1.7.0"] + :dependencies [[org.clojure/clojure "1.8.0"] [jline "2.14.6"] [clj-stacktrace "0.2.8"] - [nrepl "0.8.3"] - ;; tools.cli 1.0 requires Clojure 1.8 - [org.clojure/tools.cli "0.3.1"] - [nrepl/drawbridge "0.2.1"] - [trptcolin/versioneer "0.1.1"] + [nrepl "1.5.2"] + [org.clojure/tools.cli "1.3.250"] + [nrepl/drawbridge "0.3.0"] + [trptcolin/versioneer "0.2.0"] [org.nrepl/incomplete "0.1.0"] - [org.clojars.trptcolin/sjacket "0.1.1.1" + [org.clojars.trptcolin/sjacket "0.1.4" :exclusions [org.clojure/clojure]] ;; bump transitive dep to avoid compatibility warning [net.cgrand/parsley "0.9.3" :exclusions [org.clojure/clojure]]] - :min-lein-version "2.0.0" + :min-lein-version "2.9.1" :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"} :url "https://github.com/trptcolin/reply" :profiles {:dev {:dependencies [[classlojure "0.6.6"]]} - :base {:dependencies []}} - :javac-options ["-target" "8" "-source" "8" "-Xlint:-options"] + :base {:dependencies []} + ;; Clojure versions matrix + :provided {:dependencies [[org.clojure/clojure "1.12.4"]]} + :1.8 {:dependencies [[org.clojure/clojure "1.8.0"]]} + :1.9 {:dependencies [[org.clojure/clojure "1.9.0"]]} + :1.10 {:dependencies [[org.clojure/clojure "1.10.3"]]} + :1.11 {:dependencies [[org.clojure/clojure "1.11.4"]]} + :1.12 {:dependencies [[org.clojure/clojure "1.12.4"]]}} ;; :jvm-opts ["-Djline.internal.Log.trace=true"] :aot [reply.reader.jline.JlineInputReader] :main ^{:skip-aot true} reply.main diff --git a/src/reply/initialization.clj b/src/reply/initialization.clj index 20c8bf4..21fd19c 100644 --- a/src/reply/initialization.clj +++ b/src/reply/initialization.clj @@ -114,10 +114,7 @@ `(do ~@prelude - (use '[clojure.repl :only ~'[source apropos dir]]) - ; doc and find-doc live in clojure.core in 1.2 - (when (ns-resolve '~'clojure.repl '~'pst) - (refer 'clojure.repl :only '~'[pst doc find-doc])) + (use '[clojure.repl :only ~'[source apropos dir pst doc find-doc]]) (use '[clojure.java.javadoc :only ~'[javadoc]]) (use '[clojure.pprint :only ~'[pp pprint]]) diff --git a/test/reply/integration_test.clj b/test/reply/integration_test.clj index ed12611..bc859f1 100644 --- a/test/reply/integration_test.clj +++ b/test/reply/integration_test.clj @@ -14,12 +14,12 @@ ;; TODO: this is easy but seems like wasted effort ;; probably better to use pomegranate (def nrepl - {:local-path "spec/nrepl-0.8.3.jar" - :remote-url "https://clojars.org/repo/nrepl/nrepl/0.8.3/nrepl-0.8.3.jar"}) + {:local-path "spec/nrepl-1.5.2.jar" + :remote-url "https://clojars.org/repo/nrepl/nrepl/1.5.2/nrepl-1.5.2.jar"}) (def clojure - {:local-path "spec/clojure-1.7.0.jar" - :remote-url "https://repo1.maven.org/maven2/org/clojure/clojure/1.7.0/clojure-1.7.0.jar"}) + {:local-path "spec/clojure-1.8.0.jar" + :remote-url "https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0/clojure-1.8.0.jar"}) (defn ensure-test-jar [{:keys [local-path remote-url]}] (let [file (java.io.File. local-path)] @@ -77,7 +77,7 @@ :output-stream out}) (t/is (= "" (str err))) (t/is (re-find #"Unmatched delimiter" (str out))) - (t/is (re-find #"user=> #error" (str out))))) + (t/is (re-find #"(?s)user=>.*#error" (str out))))) (with-out-err [out err] (t/testing "does not print an error when given empty input lines"