diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index a774aa8..0000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-version: 2.1
-
-orbs:
- kaocha: lambdaisland/kaocha@0.0.1
- clojure: lambdaisland/clojure@0.0.8
-
-commands:
- checkout_and_run:
- parameters:
- clojure_version:
- type: string
- steps:
- - checkout
- - clojure/with_cache:
- cache_version: << parameters.clojure_version >>
- steps:
- - run: clojure -e '(println (System/getProperty "java.runtime.name") (System/getProperty "java.runtime.version") "\nClojure" (clojure-version))'
- - run: npm install ws
- - kaocha/execute:
- args: "clj --reporter documentation --plugin cloverage --codecov"
- clojure_version: << parameters.clojure_version >>
- - kaocha/execute:
- args: "cljs --reporter documentation"
- clojure_version: << parameters.clojure_version >>
- - kaocha/upload_codecov:
- flags: clj
-
-jobs:
- java-17-clojure-1_10:
- executor: clojure/openjdk17
- steps: [{checkout_and_run: {clojure_version: "1.10.2"}}]
-
- java-11-clojure-1_10:
- executor: clojure/openjdk11
- steps: [{checkout_and_run: {clojure_version: "1.10.2"}}]
-
- java-9-clojure-1_10:
- executor: clojure/openjdk9
- steps: [{checkout_and_run: {clojure_version: "1.10.2"}}]
-
- java-8-clojure-1_10:
- executor: clojure/openjdk8
- steps: [{checkout_and_run: {clojure_version: "1.10.2"}}]
- test:
- parameters:
- os:
- type: executor
- clojure_version:
- type: string
- executor: << parameters.os >>
- steps:
- - checkout_and_run:
- clojure_version: << parameters.clojure_version >>
-
- babashka-tests:
- executor: clojure/openjdk8
- steps:
- - checkout
- - run:
- command: |
- curl -sLO https://raw.githubusercontent.com/babashka/babashka/master/install
- chmod +x install
- ./install --version 1.0.168
- bb test:bb
-
-workflows:
- kaocha_test:
- jobs:
- - babashka-tests
- - test:
- matrix:
- parameters:
- os: [clojure/openjdk19, clojure/openjdk17, clojure/openjdk11, clojure/openjdk8]
- clojure_version: ["1.10.3", "1.11.1"]
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000..5d8e2a1
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,90 @@
+name: Continuous Delivery
+
+on: push
+
+jobs:
+ Kaocha:
+ runs-on: ${{matrix.sys.os}}
+
+ strategy:
+ matrix:
+ sys:
+ # - { os: macos-latest, shell: bash }
+ - { os: ubuntu-latest, shell: bash }
+ # - { os: windows-latest, shell: powershell }
+
+ defaults:
+ run:
+ shell: ${{matrix.sys.shell}}
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: ๐ง Install java
+ uses: actions/setup-java@v1
+ with:
+ java-version: '25'
+
+ - name: ๐ง Install clojure
+ uses: DeLaGuardo/setup-clojure@master
+ with:
+ cli: '1.12.3.1577'
+
+ - name: ๐ maven cache
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/.m2
+ ~/.gitlibs
+ key: ${{ runner.os }}-maven-${{ github.sha }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+
+ - name: ๐งช Run tests
+ run: bin/kaocha
+
+ Babashka:
+ runs-on: ${{matrix.sys.os}}
+
+ strategy:
+ matrix:
+ sys:
+ # - { os: macos-latest, shell: bash }
+ - { os: ubuntu-latest, shell: bash }
+ # - { os: windows-latest, shell: powershell }
+
+ defaults:
+ run:
+ shell: ${{matrix.sys.shell}}
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: ๐ง Install java
+ uses: actions/setup-java@v1
+ with:
+ java-version: '25'
+
+ - name: ๐ง Install clojure
+ uses: DeLaGuardo/setup-clojure@master
+ with:
+ cli: '1.12.3.1577'
+
+ - name: ๐ง Install babashka
+ run: |
+ curl -sLO https://raw.githubusercontent.com/babashka/babashka/master/install
+ chmod +x install
+ ./install --version 1.0.168
+
+ - name: ๐ maven cache
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/.m2
+ ~/.gitlibs
+ key: ${{ runner.os }}-maven-${{ github.sha }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+
+ - name: ๐งช Run tests
+ run: bb test:bb
diff --git a/README.md b/README.md
index a797b8c..f662160 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,14 @@ Key features
## Lambda Island Open Source
+Thank you! uri is made possible thanks to our generous backers. [Become a
+backer on OpenCollective](https://opencollective.com/lambda-island) so that we
+can continue to make uri better.
+
+
+
+
+
@@ -23,10 +31,10 @@ Key features
uri is part of a growing collection of quality Clojure libraries created and maintained
by the fine folks at [Gaiwan](https://gaiwan.co).
-Pay it forward by [becoming a backer on our Open Collective](http://opencollective.com/lambda-island),
-so that we may continue to enjoy a thriving Clojure ecosystem.
+Pay it forward by [becoming a backer on our OpenCollective](http://opencollective.com/lambda-island),
+so that we continue to enjoy a thriving Clojure ecosystem.
-You can find an overview of our projects at [lambdaisland/open-source](https://github.com/lambdaisland/open-source).
+You can find an overview of all our different projects at [lambdaisland/open-source](https://github.com/lambdaisland/open-source).
@@ -166,39 +174,35 @@ It has been tested against [this list of test cases compiled by the W3C](https:/
## Contributing
-Everyone has a right to submit patches to uri, and thus become a contributor.
-
-Contributors MUST
+We warmly welcome patches to uri. Please keep in mind the following:
- adhere to the [LambdaIsland Clojure Style Guide](https://nextjournal.com/lambdaisland/clojure-style-guide)
-- write patches that solve a problem. Start by stating the problem, then supply a minimal solution. `*`
-- agree to license their contributions as MPL 2.0.
-- not break the contract with downstream consumers. `**`
-- not break the tests.
+- write patches that solve a problem
+- start by stating the problem, then supply a minimal solution `*`
+- by contributing you agree to license your contributions as MPL 2.0
+- don't break the contract with downstream consumers `**`
+- don't break the tests
-Contributors SHOULD
+We would very much appreciate it if you also
-- update the CHANGELOG and README.
-- add tests for new functionality.
+- update the CHANGELOG and README
+- add tests for new functionality
-If you submit a pull request that adheres to these rules, then it will almost
-certainly be merged immediately. However some things may require more
-consideration. If you add new dependencies, or significantly increase the API
-surface, then we need to decide if these changes are in line with the project's
-goals. In this case you can start by [writing a pitch](https://nextjournal.com/lambdaisland/pitch-template),
-and collecting feedback on it.
+We recommend opening an issue first, before opening a pull request. That way we
+can make sure we agree what the problem is, and discuss how best to solve it.
+This is especially true if you add new dependencies, or significantly increase
+the API surface. In cases like these we need to decide if these changes are in
+line with the project's goals.
-`*` This goes for features too, a feature needs to solve a problem. State the problem it solves, then supply a minimal solution.
+`*` This goes for features too, a feature needs to solve a problem. State the problem it solves first, only then move on to solving it.
-`**` As long as this project has not seen a public release (i.e. is not on Clojars)
-we may still consider making breaking changes, if there is consensus that the
-changes are justified.
+`**` Projects that have a version that starts with `0.` may still see breaking changes, although we also consider the level of community adoption. The more widespread a project is, the less likely we're willing to introduce breakage. See [LambdaIsland-flavored Versioning](https://github.com/lambdaisland/open-source#lambdaisland-flavored-versioning) for more info.
## License
-Copyright © 2017-2021 Arne Brasseur and Contributors
+Copyright © 2017-2025 Arne Brasseur and Contributors
Licensed under the term of the Mozilla Public License 2.0, see LICENSE.
diff --git a/bb.edn b/bb.edn
index 0ae526a..f070d0d 100644
--- a/bb.edn
+++ b/bb.edn
@@ -1,6 +1,6 @@
{:deps
{lambdaisland/open-source {:git/url "https://github.com/lambdaisland/open-source"
- :git/sha "7ce125cbd14888590742da7ab3b6be9bba46fc7a"}
+ :git/sha "94295666e8026fb8c58e93f822914810812e77d4"}
current/project {:local/root "."}}
:tasks