diff --git a/.circleci/script/gen_ci.clj b/.circleci/script/gen_ci.clj
index ae0b9675..95da8d94 100644
--- a/.circleci/script/gen_ci.clj
+++ b/.circleci/script/gen_ci.clj
@@ -5,7 +5,7 @@
[clojure.string :as str]
[flatland.ordered.map :refer [ordered-map]]))
-(def graalvm-version "23")
+(def graalvm-version "24")
(defn run
([cmd-name cmd]
diff --git a/.cirrus.yml b/.cirrus.yml
index 3e36b348..7d55f85f 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -5,7 +5,7 @@ task:
skip: "changesIncludeOnly('logo/*', '**.md')"
env:
LEIN_ROOT: "true"
- GRAALVM_VERSION: "23"
+ GRAALVM_VERSION: "24"
GRAALVM_HOME: ${HOME}/graalvm-${GRAALVM_VERSION}/Contents/Home
BABASHKA_PLATFORM: macos # used in release script
BABASHKA_ARCH: aarch64
diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml
new file mode 100644
index 00000000..0a5d297f
--- /dev/null
+++ b/.github/workflows/build-windows.yml
@@ -0,0 +1,100 @@
+name: build
+
+on:
+ push:
+ paths-ignore:
+ - "**.md"
+ - "logo/**"
+ pull_request:
+ paths-ignore:
+ - "**.md"
+ - "logo/**"
+
+# TODO: Add deploy if needed
+jobs:
+ native:
+ if: "!contains(github.event.head_commit.message, 'skip ci')"
+ strategy:
+ matrix:
+ include:
+ - os: windows-2022
+ name: windows
+ static: false
+ runs-on: ${{ matrix.os }}
+ env:
+ LEIN_ROOT: "true"
+ GRAALVM_VERSION: "24"
+ BABASHKA_PLATFORM: ${{ matrix.name }} # used in release script
+ BABASHKA_TEST_ENV: native
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ BABASHKA_SHA: ${{ github.sha }}
+ steps:
+ - name: Git checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 1
+ submodules: 'true'
+
+ - name: Cache deps
+ uses: actions/cache@v4
+ id: cache-deps
+ with:
+ path: ~/.m2/repository
+ key: ${{ runner.os }}-maven-${{ hashFiles('project.clj') }}
+ restore-keys: ${{ runner.os }}-maven-
+
+ - name: Setup GraalVM
+ if: "matrix.static == false"
+ uses: graalvm/setup-graalvm@v1.3.3
+ with:
+ java-version: '24'
+ distribution: 'graalvm'
+ components: 'native-image'
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Install clojure tools
+ uses: DeLaGuardo/setup-clojure@13.2
+ with:
+ cli: latest
+ # lein: latest -- skipped because this uses some PS bullshit
+
+ - name: Babashka version
+ id: babashka-version
+ shell: bash
+ run: |
+ BABASHKA_VERSION=$(cat resources/BABASHKA_VERSION)
+ echo "##[set-output name=version;]${BABASHKA_VERSION}"
+
+ - name: Build
+ shell: cmd
+ run: |
+ powershell -Command "(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.bat', 'lein.bat')"
+ call lein self-install
+
+ set GRAALVM_HOME=%JAVA_HOME%
+ call script/uberjar.bat
+
+ call script/compile.bat
+
+ echo Creating zip archive
+
+ set zip=babashka-%BABASHKA_VERSION%-windows-amd64.zip
+
+ jar -cMf %zip% bb.exe
+
+ bb --config .build/bb.edn --deps-root . release-artifact %zip%
+
+
+ - name: Test binary and libs
+ shell: cmd
+ run: |
+ set BABASHKA_CLASSPATH=
+ set BABASHKA_TEST_ENV=native
+ call script/test.bat :windows
+ call script/run_lib_tests.bat
+
+ - name: Upload artifact
+ uses: actions/upload-artifact@v4
+ with:
+ path: bb.exe
+ name: babashka-${{ steps.babashka-version.outputs.version }}-${{ matrix.name }}-amd64
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 315363f0..b64257aa 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -33,7 +33,7 @@ jobs:
submodules: 'true'
- name: Cache deps
- uses: actions/cache@v2
+ uses: actions/cache@v4
id: cache-deps
with:
path: ~/.m2/repository
@@ -103,7 +103,7 @@ jobs:
runs-on: ${{ matrix.os }}
env:
LEIN_ROOT: "true"
- GRAALVM_VERSION: "23"
+ GRAALVM_VERSION: "24"
BABASHKA_PLATFORM: ${{ matrix.name }} # used in release script
BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m"
@@ -117,7 +117,7 @@ jobs:
submodules: 'true'
- name: Cache deps
- uses: actions/cache@v2
+ uses: actions/cache@v4
id: cache-deps
with:
path: ~/.m2/repository
@@ -128,7 +128,7 @@ jobs:
if: "matrix.static == false"
uses: graalvm/setup-graalvm@v1
with:
- java-version: '23'
+ java-version: '24'
distribution: 'graalvm'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -137,7 +137,7 @@ jobs:
if: "matrix.static == true"
uses: graalvm/setup-graalvm@v1
with:
- version: '23'
+ version: '24'
distribution: 'graalvm'
components: 'native-image'
native-image-musl: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 961ef099..d812e659 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,10 +9,16 @@ A preview of the next release can be installed from
## Unreleased
+- Bump GraalVM to `24`
+- Bump SCI to `0.9.45`
+- Bump edamame to `1.4.28`
+
+## 1.12.197 (2024-02-28)
+
- [#1785](https://github.com/babashka/babashka/issues/1785): Allow subclasses of `Throwable` to have instance methods invoked ([@bobisageek](https://github.com/bobisageek))
- [#1791](https://github.com/babashka/babashka/issues/1791): interop problem on Jsoup form element
-- [#1793](https://github.com/babashka/babashka/issues/1793): Bump `rewrite-clj` to `1.1.49`
- Bump core.async to `1.8.735`
+- [#1793](https://github.com/babashka/babashka/issues/1793): Bump `rewrite-clj` to `1.1.49` (fixes parsing of `foo//` among other things)
- Bump `deps.clj`
- Bump `fs`
diff --git a/Dockerfile b/Dockerfile
index 085b43e1..505a7f69 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,7 +5,7 @@ RUN apt update
RUN apt install --no-install-recommends -yy build-essential zlib1g-dev
WORKDIR "/opt"
-ENV GRAALVM_VERSION="23"
+ENV GRAALVM_VERSION="24"
ARG TARGETARCH
# Do not set those directly, use TARGETARCH instead
ENV BABASHKA_ARCH=
diff --git a/README.md b/README.md
index cc9da4c8..6a289fde 100644
--- a/README.md
+++ b/README.md
@@ -303,63 +303,16 @@ Go [here](https://book.babashka.org/#built-in-namespaces) to see the full list o
A list of projects (scripts, libraries, pods and tools) known to work with babashka.
## Badges
-
-
-[](https://babashka.org)
-
-The babashka compatible badge indicates that a [library can be used as babashka dependency](doc/projects.md).
+[](https://book.babashka.org#badges)
+The babashka compatible badge indicates that a library can be used as babashka dependency.
If this is the case for your library, we encourage you to proudly display this badge.
-Markdown
-
-```markdown
-[](https://babashka.org)
-```
-
-
-AsciiDoc
-
-```asciidoc
-https://babashka.org[image:https://raw.githubusercontent.com/babashka/babashka/master/logo/badge.svg[bb compatible]]
-```
-
-
-HTML
-
-```html
-
-```
-
-
-
-[](https://babashka.org)
-
-The babashka built-in badge means that a [library has been built directly into babashka](https://book.babashka.org/#built-in-namespaces) and requires no extra dependencies to use it.
-
+[](https://book.babashka.org#badges)
+The babashka built-in badge means that a library has been built directly into babashka and requires no extra dependencies to use it.
If this rare honor belongs to your library, you should display this badge.
-Markdown
-
-```markdown
-[](https://babashka.org)
-```
-
-
-AsciiDoc
-
-```asciidoc
-https://babashka.org[image:https://raw.githubusercontent.com/babashka/babashka/master/logo/built-in-badge.svg[bb built-in]]
-```
-
-
-HTML
-
-```html
-
-```
-
-
+See [the babashka book for details](https://book.babashka.org#badges).
## Swag
diff --git a/appveyor.yml b/appveyor.yml
index 59c901ce..9ace75fd 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -7,8 +7,8 @@ image: Visual Studio 2022
clone_folder: C:\projects\babashka
environment:
- GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-jdk-23+37.1
- JAVA_HOME: C:\projects\babashka\graalvm\graalvm-jdk-23+37.1
+ GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-jdk-24+36.1
+ JAVA_HOME: C:\projects\babashka\graalvm\graalvm-jdk-24+36.1
BABASHKA_XMX: "-J-Xmx5g"
skip_commits:
@@ -44,7 +44,7 @@ clone_script:
build_script:
# TODO: Extract the zip by removing the top level folder to remove the hardcoded path for GRAALVM_HOME
- cmd: >-
- powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://download.oracle.com/graalvm/23/archive/graalvm-jdk-23_windows-x64_bin.zip', 'graalvm.zip') }"
+ powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://download.oracle.com/graalvm/24/archive/graalvm-jdk-24_windows-x64_bin.zip', 'graalvm.zip') }"
powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }"
diff --git a/deps.edn b/deps.edn
index ec879397..28cf6745 100644
--- a/deps.edn
+++ b/deps.edn
@@ -52,7 +52,7 @@
org.babashka/cli {:mvn/version "0.8.62"}
org.babashka/http-client {:mvn/version "0.4.22"}
org.flatland/ordered {:mvn/version "1.15.12"}
- org.jsoup/jsoup {:mvn/version "1.18.1"}}
+ org.jsoup/jsoup {:mvn/version "1.19.1"}}
:aliases {:babashka/dev
{:main-opts ["-m" "babashka.main"]}
:profile
@@ -174,7 +174,7 @@
prismatic/plumbing {:git/url "https://github.com/plumatic/plumbing",
:git/sha "424bc704f2db422de34269c139a5494314b3a43b"}
org.clj-commons/hickory {:git/url "https://github.com/clj-commons/hickory"
- :git/sha "27ee318928b6748075fa9954740afedf916ff795"}}
+ :git/sha "9385b6708ef35f161732d8464b3a3aa57dd79f30"}}
:classpath-overrides {org.clojure/clojure nil
org.clojure/spec.alpha nil}}
:clj-nvd
diff --git a/doc/build.md b/doc/build.md
index 71df3425..c60507e5 100644
--- a/doc/build.md
+++ b/doc/build.md
@@ -3,7 +3,7 @@
## Prerequisites
- Install [lein](https://leiningen.org/) for producing uberjars
-- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *Oracle GraalVM 23*.
+- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *Oracle GraalVM 24*.
- For Windows, installing Visual Studio 2019 with the "Desktop development
with C++" workload is recommended.
- Set `$GRAALVM_HOME` to the GraalVM distribution directory. On macOS this can look like:
diff --git a/doc/dev.md b/doc/dev.md
index b3a22bde..c9938027 100644
--- a/doc/dev.md
+++ b/doc/dev.md
@@ -40,7 +40,7 @@ reasons:
## Requirements
-You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use Oracle GraalVM 23.
+You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use Oracle GraalVM 24.
## Clone repository
diff --git a/project.clj b/project.clj
index db087b9f..d3377ebe 100644
--- a/project.clj
+++ b/project.clj
@@ -22,7 +22,7 @@
:flaky :flaky}
:jvm-opts ["--enable-preview"]
:dependencies [[org.clojure/clojure "1.12.0"]
- [borkdude/edamame "1.4.27"]
+ [borkdude/edamame "1.4.29"]
[org.clojure/tools.cli "1.0.214"]
[cheshire "5.13.0"]
[nrepl/bencode "1.2.0"]
@@ -36,7 +36,7 @@
[insn/insn "0.5.2"]
[org.babashka/cli "0.8.62"]
[org.babashka/http-client "0.4.22"]
- [org.jsoup/jsoup "1.18.1"]
+ [org.jsoup/jsoup "1.19.1"]
[borkdude/graal.locking "0.0.2"]]
:plugins [[org.kipz/lein-meta-bom "0.1.1"]]
:metabom {:jar-name "metabom.jar"}
diff --git a/resources/BABASHKA_RELEASED_VERSION b/resources/BABASHKA_RELEASED_VERSION
index 69353e92..5055a5a6 100644
--- a/resources/BABASHKA_RELEASED_VERSION
+++ b/resources/BABASHKA_RELEASED_VERSION
@@ -1 +1 @@
-1.12.196
\ No newline at end of file
+1.12.197
\ No newline at end of file
diff --git a/resources/BABASHKA_VERSION b/resources/BABASHKA_VERSION
index a6f794c1..fcba5798 100644
--- a/resources/BABASHKA_VERSION
+++ b/resources/BABASHKA_VERSION
@@ -1 +1 @@
-1.12.197-SNAPSHOT
\ No newline at end of file
+1.12.198-SNAPSHOT
\ No newline at end of file
diff --git a/resources/META-INF/babashka/deps.edn b/resources/META-INF/babashka/deps.edn
index ec879397..28cf6745 100644
--- a/resources/META-INF/babashka/deps.edn
+++ b/resources/META-INF/babashka/deps.edn
@@ -52,7 +52,7 @@
org.babashka/cli {:mvn/version "0.8.62"}
org.babashka/http-client {:mvn/version "0.4.22"}
org.flatland/ordered {:mvn/version "1.15.12"}
- org.jsoup/jsoup {:mvn/version "1.18.1"}}
+ org.jsoup/jsoup {:mvn/version "1.19.1"}}
:aliases {:babashka/dev
{:main-opts ["-m" "babashka.main"]}
:profile
@@ -174,7 +174,7 @@
prismatic/plumbing {:git/url "https://github.com/plumatic/plumbing",
:git/sha "424bc704f2db422de34269c139a5494314b3a43b"}
org.clj-commons/hickory {:git/url "https://github.com/clj-commons/hickory"
- :git/sha "27ee318928b6748075fa9954740afedf916ff795"}}
+ :git/sha "9385b6708ef35f161732d8464b3a3aa57dd79f30"}}
:classpath-overrides {org.clojure/clojure nil
org.clojure/spec.alpha nil}}
:clj-nvd
diff --git a/script/bump_graal_version.clj b/script/bump_graal_version.clj
index e9a29fda..05643a7d 100755
--- a/script/bump_graal_version.clj
+++ b/script/bump_graal_version.clj
@@ -45,7 +45,6 @@
"appveyor.yml"
"project.clj"
"script/bump_graal_version.clj"
- ".circleci/script/short_ci.clj"
".cirrus.yml"
"script/install-graalvm"])
@@ -55,7 +54,7 @@
;; OR
;;
;; We could have them as environment variables
-(def current-graal-version "23")
+(def current-graal-version "24")
(def cl-options
[["-g" "--graal VERSION" "graal version"]
diff --git a/script/install-graalvm b/script/install-graalvm
index 45add913..22d079e4 100755
--- a/script/install-graalvm
+++ b/script/install-graalvm
@@ -4,7 +4,7 @@ set -euo pipefail
INSTALL_DIR="${1:-$HOME}"
-GRAALVM_VERSION="${GRAALVM_VERSION:-23}"
+GRAALVM_VERSION="${GRAALVM_VERSION:-24}"
GRAALVM_PLATFORM=$BABASHKA_PLATFORM
diff --git a/test-resources/lib_tests/babashka/run_all_libtests.clj b/test-resources/lib_tests/babashka/run_all_libtests.clj
index b9b70876..20e4e11b 100644
--- a/test-resources/lib_tests/babashka/run_all_libtests.clj
+++ b/test-resources/lib_tests/babashka/run_all_libtests.clj
@@ -75,6 +75,8 @@
(doseq [p test-paths]
(add-classpath (str (fs/file git-dir p)))))
(when-not (and skip-windows (windows?))
+ (prn :branch (current-branch))
+ (prn (System/getenv))
(if (and flaky (#{"main" "master"} (current-branch)))
(println "Skipping" tns "for main branch because it's marked flaky")
(swap! test-nss into tns))))
diff --git a/test-resources/lib_tests/bb-tested-libs.edn b/test-resources/lib_tests/bb-tested-libs.edn
index 10820bb3..00a68e87 100644
--- a/test-resources/lib_tests/bb-tested-libs.edn
+++ b/test-resources/lib_tests/bb-tested-libs.edn
@@ -193,7 +193,7 @@
:test-namespaces [plumbing.core-test],
:test-paths ["test"]}
org.clj-commons/hickory {:git-url "https://github.com/clj-commons/hickory"
- :git-sha "27ee318928b6748075fa9954740afedf916ff795"
+ :git-sha "9385b6708ef35f161732d8464b3a3aa57dd79f30"
:test-paths ["test/cljc"]
:test-namespaces [hickory.test.core
hickory.test.convert