Merge branch 'master' into core-async-bump

This commit is contained in:
Michiel Borkent 2025-04-03 11:30:26 +02:00
commit d756c1f5c6
19 changed files with 138 additions and 78 deletions

View file

@ -5,7 +5,7 @@
[clojure.string :as str] [clojure.string :as str]
[flatland.ordered.map :refer [ordered-map]])) [flatland.ordered.map :refer [ordered-map]]))
(def graalvm-version "23") (def graalvm-version "24")
(defn run (defn run
([cmd-name cmd] ([cmd-name cmd]

View file

@ -5,7 +5,7 @@ task:
skip: "changesIncludeOnly('logo/*', '**.md')" skip: "changesIncludeOnly('logo/*', '**.md')"
env: env:
LEIN_ROOT: "true" LEIN_ROOT: "true"
GRAALVM_VERSION: "23" GRAALVM_VERSION: "24"
GRAALVM_HOME: ${HOME}/graalvm-${GRAALVM_VERSION}/Contents/Home GRAALVM_HOME: ${HOME}/graalvm-${GRAALVM_VERSION}/Contents/Home
BABASHKA_PLATFORM: macos # used in release script BABASHKA_PLATFORM: macos # used in release script
BABASHKA_ARCH: aarch64 BABASHKA_ARCH: aarch64

100
.github/workflows/build-windows.yml vendored Normal file
View file

@ -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

View file

@ -33,7 +33,7 @@ jobs:
submodules: 'true' submodules: 'true'
- name: Cache deps - name: Cache deps
uses: actions/cache@v2 uses: actions/cache@v4
id: cache-deps id: cache-deps
with: with:
path: ~/.m2/repository path: ~/.m2/repository
@ -103,7 +103,7 @@ jobs:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
env: env:
LEIN_ROOT: "true" LEIN_ROOT: "true"
GRAALVM_VERSION: "23" GRAALVM_VERSION: "24"
BABASHKA_PLATFORM: ${{ matrix.name }} # used in release script BABASHKA_PLATFORM: ${{ matrix.name }} # used in release script
BABASHKA_TEST_ENV: native BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m" BABASHKA_XMX: "-J-Xmx6500m"
@ -117,7 +117,7 @@ jobs:
submodules: 'true' submodules: 'true'
- name: Cache deps - name: Cache deps
uses: actions/cache@v2 uses: actions/cache@v4
id: cache-deps id: cache-deps
with: with:
path: ~/.m2/repository path: ~/.m2/repository
@ -128,7 +128,7 @@ jobs:
if: "matrix.static == false" if: "matrix.static == false"
uses: graalvm/setup-graalvm@v1 uses: graalvm/setup-graalvm@v1
with: with:
java-version: '23' java-version: '24'
distribution: 'graalvm' distribution: 'graalvm'
components: 'native-image' components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
@ -137,7 +137,7 @@ jobs:
if: "matrix.static == true" if: "matrix.static == true"
uses: graalvm/setup-graalvm@v1 uses: graalvm/setup-graalvm@v1
with: with:
version: '23' version: '24'
distribution: 'graalvm' distribution: 'graalvm'
components: 'native-image' components: 'native-image'
native-image-musl: true native-image-musl: true

View file

@ -9,10 +9,16 @@ A preview of the next release can be installed from
## Unreleased ## 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)) - [#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 - [#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` - 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 `deps.clj`
- Bump `fs` - Bump `fs`

View file

@ -5,7 +5,7 @@ RUN apt update
RUN apt install --no-install-recommends -yy build-essential zlib1g-dev RUN apt install --no-install-recommends -yy build-essential zlib1g-dev
WORKDIR "/opt" WORKDIR "/opt"
ENV GRAALVM_VERSION="23" ENV GRAALVM_VERSION="24"
ARG TARGETARCH ARG TARGETARCH
# Do not set those directly, use TARGETARCH instead # Do not set those directly, use TARGETARCH instead
ENV BABASHKA_ARCH= ENV BABASHKA_ARCH=

View file

@ -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. A list of projects (scripts, libraries, pods and tools) known to work with babashka.
## Badges ## Badges
<!-- note to editor: it seems a blank line must appear before code blocks within <details> -->
[![bb compatible](/logo/badge.svg)](https://babashka.org)
The babashka compatible badge indicates that a [library can be used as babashka dependency](doc/projects.md).
[![bb compatible](/logo/badge.svg)](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. If this is the case for your library, we encourage you to proudly display this badge.
<details><summary>Markdown</summary> [![bb built-in](/logo/built-in-badge.svg)](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.
```markdown
[![bb compatible](https://raw.githubusercontent.com/babashka/babashka/master/logo/badge.svg)](https://babashka.org)
```
</details>
<details><summary>AsciiDoc</summary>
```asciidoc
https://babashka.org[image:https://raw.githubusercontent.com/babashka/babashka/master/logo/badge.svg[bb compatible]]
```
</details>
<details><summary>HTML</summary>
```html
<a href="https://babashka.org" rel="nofollow"><img src="https://github.com/babashka/babashka/raw/master/logo/badge.svg" alt="bb compatible" style="max-width: 100%;"></a>
```
</details>
<br/>
[![bb built-in](/logo/built-in-badge.svg)](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.
If this rare honor belongs to your library, you should display this badge. If this rare honor belongs to your library, you should display this badge.
<details><summary>Markdown</summary> See [the babashka book for details](https://book.babashka.org#badges).
```markdown
[![bb built-in](https://raw.githubusercontent.com/babashka/babashka/master/logo/built-in-badge.svg)](https://babashka.org)
```
</details>
<details><summary>AsciiDoc</summary>
```asciidoc
https://babashka.org[image:https://raw.githubusercontent.com/babashka/babashka/master/logo/built-in-badge.svg[bb built-in]]
```
</details>
<details><summary>HTML</summary>
```html
<a href="https://babashka.org" rel="nofollow"><img src="https://github.com/babashka/babashka/raw/master/logo/built-in-badge.svg" alt="bb built-in" style="max-width: 100%;"></a>
```
</details>
</br>
## Swag ## Swag

View file

@ -7,8 +7,8 @@ image: Visual Studio 2022
clone_folder: C:\projects\babashka clone_folder: C:\projects\babashka
environment: environment:
GRAALVM_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-23+37.1 JAVA_HOME: C:\projects\babashka\graalvm\graalvm-jdk-24+36.1
BABASHKA_XMX: "-J-Xmx5g" BABASHKA_XMX: "-J-Xmx5g"
skip_commits: skip_commits:
@ -44,7 +44,7 @@ clone_script:
build_script: build_script:
# TODO: Extract the zip by removing the top level folder to remove the hardcoded path for GRAALVM_HOME # TODO: Extract the zip by removing the top level folder to remove the hardcoded path for GRAALVM_HOME
- cmd: >- - 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 }" powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }"

View file

@ -52,7 +52,7 @@
org.babashka/cli {:mvn/version "0.8.62"} org.babashka/cli {:mvn/version "0.8.62"}
org.babashka/http-client {:mvn/version "0.4.22"} org.babashka/http-client {:mvn/version "0.4.22"}
org.flatland/ordered {:mvn/version "1.15.12"} 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 :aliases {:babashka/dev
{:main-opts ["-m" "babashka.main"]} {:main-opts ["-m" "babashka.main"]}
:profile :profile
@ -174,7 +174,7 @@
prismatic/plumbing {:git/url "https://github.com/plumatic/plumbing", prismatic/plumbing {:git/url "https://github.com/plumatic/plumbing",
:git/sha "424bc704f2db422de34269c139a5494314b3a43b"} :git/sha "424bc704f2db422de34269c139a5494314b3a43b"}
org.clj-commons/hickory {:git/url "https://github.com/clj-commons/hickory" org.clj-commons/hickory {:git/url "https://github.com/clj-commons/hickory"
:git/sha "27ee318928b6748075fa9954740afedf916ff795"}} :git/sha "9385b6708ef35f161732d8464b3a3aa57dd79f30"}}
:classpath-overrides {org.clojure/clojure nil :classpath-overrides {org.clojure/clojure nil
org.clojure/spec.alpha nil}} org.clojure/spec.alpha nil}}
:clj-nvd :clj-nvd

View file

@ -3,7 +3,7 @@
## Prerequisites ## Prerequisites
- Install [lein](https://leiningen.org/) for producing uberjars - 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 - For Windows, installing Visual Studio 2019 with the "Desktop development
with C++" workload is recommended. with C++" workload is recommended.
- Set `$GRAALVM_HOME` to the GraalVM distribution directory. On macOS this can look like: - Set `$GRAALVM_HOME` to the GraalVM distribution directory. On macOS this can look like:

View file

@ -40,7 +40,7 @@ reasons:
## Requirements ## 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 ## Clone repository

View file

@ -22,7 +22,7 @@
:flaky :flaky} :flaky :flaky}
:jvm-opts ["--enable-preview"] :jvm-opts ["--enable-preview"]
:dependencies [[org.clojure/clojure "1.12.0"] :dependencies [[org.clojure/clojure "1.12.0"]
[borkdude/edamame "1.4.27"] [borkdude/edamame "1.4.29"]
[org.clojure/tools.cli "1.0.214"] [org.clojure/tools.cli "1.0.214"]
[cheshire "5.13.0"] [cheshire "5.13.0"]
[nrepl/bencode "1.2.0"] [nrepl/bencode "1.2.0"]
@ -36,7 +36,7 @@
[insn/insn "0.5.2"] [insn/insn "0.5.2"]
[org.babashka/cli "0.8.62"] [org.babashka/cli "0.8.62"]
[org.babashka/http-client "0.4.22"] [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"]] [borkdude/graal.locking "0.0.2"]]
:plugins [[org.kipz/lein-meta-bom "0.1.1"]] :plugins [[org.kipz/lein-meta-bom "0.1.1"]]
:metabom {:jar-name "metabom.jar"} :metabom {:jar-name "metabom.jar"}

View file

@ -1 +1 @@
1.12.196 1.12.197

View file

@ -1 +1 @@
1.12.197-SNAPSHOT 1.12.198-SNAPSHOT

View file

@ -52,7 +52,7 @@
org.babashka/cli {:mvn/version "0.8.62"} org.babashka/cli {:mvn/version "0.8.62"}
org.babashka/http-client {:mvn/version "0.4.22"} org.babashka/http-client {:mvn/version "0.4.22"}
org.flatland/ordered {:mvn/version "1.15.12"} 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 :aliases {:babashka/dev
{:main-opts ["-m" "babashka.main"]} {:main-opts ["-m" "babashka.main"]}
:profile :profile
@ -174,7 +174,7 @@
prismatic/plumbing {:git/url "https://github.com/plumatic/plumbing", prismatic/plumbing {:git/url "https://github.com/plumatic/plumbing",
:git/sha "424bc704f2db422de34269c139a5494314b3a43b"} :git/sha "424bc704f2db422de34269c139a5494314b3a43b"}
org.clj-commons/hickory {:git/url "https://github.com/clj-commons/hickory" org.clj-commons/hickory {:git/url "https://github.com/clj-commons/hickory"
:git/sha "27ee318928b6748075fa9954740afedf916ff795"}} :git/sha "9385b6708ef35f161732d8464b3a3aa57dd79f30"}}
:classpath-overrides {org.clojure/clojure nil :classpath-overrides {org.clojure/clojure nil
org.clojure/spec.alpha nil}} org.clojure/spec.alpha nil}}
:clj-nvd :clj-nvd

View file

@ -45,7 +45,6 @@
"appveyor.yml" "appveyor.yml"
"project.clj" "project.clj"
"script/bump_graal_version.clj" "script/bump_graal_version.clj"
".circleci/script/short_ci.clj"
".cirrus.yml" ".cirrus.yml"
"script/install-graalvm"]) "script/install-graalvm"])
@ -55,7 +54,7 @@
;; OR ;; OR
;; ;;
;; We could have them as environment variables ;; We could have them as environment variables
(def current-graal-version "23") (def current-graal-version "24")
(def cl-options (def cl-options
[["-g" "--graal VERSION" "graal version"] [["-g" "--graal VERSION" "graal version"]

View file

@ -4,7 +4,7 @@ set -euo pipefail
INSTALL_DIR="${1:-$HOME}" INSTALL_DIR="${1:-$HOME}"
GRAALVM_VERSION="${GRAALVM_VERSION:-23}" GRAALVM_VERSION="${GRAALVM_VERSION:-24}"
GRAALVM_PLATFORM=$BABASHKA_PLATFORM GRAALVM_PLATFORM=$BABASHKA_PLATFORM

View file

@ -75,6 +75,8 @@
(doseq [p test-paths] (doseq [p test-paths]
(add-classpath (str (fs/file git-dir p))))) (add-classpath (str (fs/file git-dir p)))))
(when-not (and skip-windows (windows?)) (when-not (and skip-windows (windows?))
(prn :branch (current-branch))
(prn (System/getenv))
(if (and flaky (#{"main" "master"} (current-branch))) (if (and flaky (#{"main" "master"} (current-branch)))
(println "Skipping" tns "for main branch because it's marked flaky") (println "Skipping" tns "for main branch because it's marked flaky")
(swap! test-nss into tns)))) (swap! test-nss into tns))))

View file

@ -193,7 +193,7 @@
:test-namespaces [plumbing.core-test], :test-namespaces [plumbing.core-test],
:test-paths ["test"]} :test-paths ["test"]}
org.clj-commons/hickory {:git-url "https://github.com/clj-commons/hickory" org.clj-commons/hickory {:git-url "https://github.com/clj-commons/hickory"
:git-sha "27ee318928b6748075fa9954740afedf916ff795" :git-sha "9385b6708ef35f161732d8464b3a3aa57dd79f30"
:test-paths ["test/cljc"] :test-paths ["test/cljc"]
:test-namespaces [hickory.test.core :test-namespaces [hickory.test.core
hickory.test.convert hickory.test.convert