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