diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index eff1773..0000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-version: 2
-jobs:
- build:
- docker:
- - image: circleci/clojure:tools-deps-1.11.1.1113-bullseye-node
- working_directory: ~/mate
- steps:
- - checkout:
- path: ~/mate
- - restore_cache:
- keys:
- - 'clj-v1-{{ checksum "deps.edn" }}-{{ checksum "package-lock.json" }}'
- - 'clj-v1'
- - run: npm ci
- - run: mkdir -p test-results
- - run: bin/kaocha --plugin kaocha.plugin/junit-xml --junit-xml-file test-results/kaocha/results.xml
- - store_test_results:
- path: test-results
- - save_cache:
- key: 'clj-v1-{{checksum "deps.edn"}}-{{ checksum "package-lock.json" }}'
- paths:
- - ~/.m2
- - ~/.cljs/.aot_cache
- - ~/node_modules
- - ~/.gitlibs
diff --git a/.github/workflows/cljdoc.yml b/.github/workflows/cljdoc.yml
new file mode 100644
index 0000000..0150ced
--- /dev/null
+++ b/.github/workflows/cljdoc.yml
@@ -0,0 +1,31 @@
+name: CljDoc
+
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+
+jobs:
+
+ check-cljdoc:
+
+ name: Check source code
+
+ timeout-minutes: 60
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v5
+
+ - name: Setup Clojure
+ uses: DeLaGuardo/setup-clojure@master
+ with:
+ cli: latest
+
+ - name: Build the jar and update pom.xml's version
+ run: clojure -X:jar && mkdir target && mv *.jar target/
+
+ - name: CljDoc Check
+ uses: cljdoc/cljdoc-check-action@v0.0.3
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..1b60c30
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,46 @@
+name: Release
+
+on:
+ release:
+ types:
+ - published # reacts to releases and pre-releases, but not their drafts
+
+jobs:
+
+ test-and-release:
+
+ name: Release
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup Java 8
+ uses: actions/setup-java@v4.7.0
+ with:
+ distribution: "temurin"
+ java-version: 8
+
+ - uses: actions/setup-node@v4
+ with:
+ node-version: lts/hydrogen
+
+ - name: Setup Clojure
+ uses: DeLaGuardo/setup-clojure@master
+ with:
+ cli: latest
+
+ - run: npm ci
+
+ - name: Run the CLJ and CLJS tests
+ run: ./bin/kaocha
+
+ - name: Build the jar and update pom.xml's version
+ run: clojure -X:jar
+
+ - name: Deploy the jar and pom files to Clojars
+ run: clojure -X:deploy
+ env:
+ CLOJARS_USERNAME: green-coder
+ CLOJARS_PASSWORD: "${{ secrets.CLOJARS_DEPLOY_TOKEN }}"
diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
new file mode 100644
index 0000000..37375db
--- /dev/null
+++ b/.github/workflows/validate.yml
@@ -0,0 +1,46 @@
+name: Run tests
+
+on: [push, pull_request]
+
+jobs:
+
+ validate:
+
+ strategy:
+ matrix:
+ # LTS and latest
+ jdk: [8, 11, 17, 21]
+
+ name: "Clojure (Java ${{ matrix.jdk }})"
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: "Setup Java ${{ matrix.jdk }}"
+ uses: actions/setup-java@v4.7.0
+ with:
+ distribution: "temurin"
+ java-version: ${{ matrix.jdk }}
+
+ - uses: actions/setup-node@v4
+ with:
+ node-version: lts/hydrogen
+
+ - name: Setup Clojure
+ uses: DeLaGuardo/setup-clojure@master
+ with:
+ cli: latest
+
+ - name: Cache deps dependencies
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-clojure-${{ hashFiles('**/deps.edn') }}
+ restore-keys: |
+ ${{ runner.os }}-clojure
+
+ - run: npm ci
+
+ - run: ./bin/kaocha
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5b8acfd..4bcfb73 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,7 @@
## Unreleased
+## v0.1.0
+
- New macros `mate.core/apply->`, `mate.core/apply->>` and theirs tests.
- New function `mate.core/mapcat-indexed` and its tests.
- New functions `mate.core/partial->`, `mate.core/partial->>` and their tests.
diff --git a/deps.edn b/deps.edn
index 5e74505..9cbe9fd 100644
--- a/deps.edn
+++ b/deps.edn
@@ -1,28 +1,34 @@
{:paths ["src"]
+
:deps {} ;; This part intentionally left empty
- :aliases {:dev {:extra-deps {org.clojure/clojure {:mvn/version "1.11.1"}
- org.clojure/clojurescript {:mvn/version "1.11.60"}}}
+
+ :aliases {:dev {:extra-deps {org.clojure/clojure {:mvn/version "1.12.3"}
+ org.clojure/clojurescript {:mvn/version "1.12.42"}}}
:test {:extra-paths ["test" "test-resource"]
:extra-deps {lambdaisland/kaocha {:mvn/version "1.71.1119"}
lambdaisland/kaocha-cljs {:mvn/version "1.4.130"}
lambdaisland/kaocha-junit-xml {:mvn/version "1.17.101"}
org.clojure/test.check {:mvn/version "1.1.1"}
- org.clojure/data.json {:mvn/version "2.4.0"}}}
+ org.clojure/data.json {:mvn/version "2.5.1"}}}
- ; clojure -M:outdated --upgrade
- :outdated {:extra-deps {com.github.liquidz/antq {:mvn/version "2.1.946"}}
+ ;; clojure -M:outdated --upgrade
+ :outdated {:extra-deps {com.github.liquidz/antq {:mvn/version "2.11.1276"}}
:main-opts ["-m" "antq.core"]}
- :depstar {:replace-deps {com.github.seancorfield/depstar {:mvn/version "2.1.303"}}
- :exec-fn hf.depstar/jar
- :exec-args {:sync-pom true
- :group-id "taipei.404"
- :artifact-id "mate"
- :version "0.0.9"
- :jar "mate.jar"}}}}
-;; Memo for deploying a new release:
-;; - Change the version above, then build the jar:
-;; clojure -X:depstar
-;; - add a tag "v0.x.y" to the latest commit and push to repo
-;; - deploy:
-;; mvn deploy:deploy-file -Dfile=mate.jar -DpomFile=pom.xml -DrepositoryId=clojars -Durl=https://clojars.org/repo/
+ :jar {:replace-deps {com.github.seancorfield/depstar {:mvn/version "2.1.303"}}
+ :exec-fn hf.depstar/jar
+ :exec-args {:sync-pom true
+ :group-id "taipei.404"
+ :artifact-id "mate"
+ :version "0.0.9"
+ :jar "mate.jar"}}
+
+ :deploy {:extra-deps {slipset/deps-deploy {:mvn/version "0.2.2"}}
+ :exec-fn deps-deploy.deps-deploy/deploy
+ :exec-args {:installer :remote
+ :artifact "mate.jar"}}}}
+
+;; Memo for making a new release:
+;; 1. Change the version "0.x.y" above, commit it, push it to Github.
+;; 2. In Github's website, create a release.
+;; The tag name should be in the format "v0.x.y"
diff --git a/pom.xml b/pom.xml
index 41b2db6..616dac3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
org.clojure
clojure
- 1.10.3
+ 1.12.3