Compare commits

..

1 Commits

Author SHA1 Message Date
Islon Scherer 2904b719bb Prepare 0.31.0 release 2026-02-26 18:13:41 +01:00
248 changed files with 8417 additions and 9539 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ amends "pkl:Project"
dependencies { dependencies {
["pkl.impl.ghactions"] { ["pkl.impl.ghactions"] {
uri = "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.5.0" uri = "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.3.5"
} }
["gha"] { ["gha"] {
uri = "package://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.2.0" uri = "package://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.2.0"
+2 -2
View File
@@ -10,9 +10,9 @@
}, },
"package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1": { "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1": {
"type": "remote", "type": "remote",
"uri": "projectpackage://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.5.0", "uri": "projectpackage://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.3.5",
"checksums": { "checksums": {
"sha256": "2c1e0d9efcd65b3c3207bf535c325ebc0ec2ab169187b324c4bb70821cac0e51" "sha256": "2b26d02c3b244a28e7913457ba195cbf767a1d1079ab2ed469074c4da870de12"
} }
}, },
"package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.deepToTyped@1": { "package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.deepToTyped@1": {
+2 -2
View File
@@ -12,7 +12,7 @@ project: String
extraGradleArgs { extraGradleArgs {
when (os == "macOS" && arch == "amd64") { when (os == "macOS" && arch == "amd64") {
"-Dpkl.targetArch=\(module.arch)" "-Dpkl.targetArch=\(module.arch)"
#""-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh""# "-Dpkl.native--native-compiler-path=\(context.github.workspace)/.github/scripts/cc_macos_amd64.sh"
} }
when (musl) { when (musl) {
"-Dpkl.musl=true" "-Dpkl.musl=true"
@@ -40,7 +40,7 @@ steps {
new { new {
name = "Fix git ownership" name = "Fix git ownership"
// language=bash // language=bash
run = #"git status || git config --system --add safe.directory "$GITHUB_WORKSPACE""# run = "git status || git config --system --add safe.directory $GITHUB_WORKSPACE"
} }
} }
new { new {
+2 -8
View File
@@ -81,7 +81,7 @@ fixed job {
} }
(catalog.`actions/setup-java@v5`) { (catalog.`actions/setup-java@v5`) {
with { with {
`java-version` = "25" `java-version` = "21"
distribution = "temurin" distribution = "temurin"
architecture = architecture =
if (arch == "amd64") if (arch == "amd64")
@@ -90,13 +90,7 @@ fixed job {
"aarch64" "aarch64"
} }
} }
(catalog.`gradle/actions/setup-gradle@v5`) { catalog.`gradle/actions/setup-gradle@v5`
when (isRelease) {
with {
`cache-disabled` = true
}
}
}
...module.steps ...module.steps
} }
} }
+2 -2
View File
@@ -21,7 +21,7 @@ jobs:
- name: actions/checkout@v6 - name: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: actions/create-github-app-token@v2 - name: actions/create-github-app-token@v2
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2 uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2
- name: actions/download-artifact@v6 - name: actions/download-artifact@v6
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6 uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
- name: actions/setup-java@v5 - name: actions/setup-java@v5
@@ -31,4 +31,4 @@ jobs:
- name: dawidd6/action-download-artifact@v11 - name: dawidd6/action-download-artifact@v11
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11 uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
- name: gradle/actions/setup-gradle@v5 - name: gradle/actions/setup-gradle@v5
uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
+40 -40
View File
@@ -25,10 +25,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -58,10 +58,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -89,10 +89,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: bench:jmh - name: bench:jmh
shell: bash shell: bash
@@ -108,10 +108,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases - name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
shell: bash shell: bash
@@ -140,10 +140,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
@@ -182,14 +182,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -220,13 +220,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
@@ -263,10 +263,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -301,13 +301,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
@@ -341,10 +341,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
@@ -451,10 +451,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -490,14 +490,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -528,13 +528,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
@@ -571,10 +571,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -609,13 +609,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
@@ -649,10 +649,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
@@ -759,10 +759,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
+44 -45
View File
@@ -23,10 +23,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -56,10 +56,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -87,10 +87,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: bench:jmh - name: bench:jmh
shell: bash shell: bash
@@ -106,10 +106,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases - name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
shell: bash shell: bash
@@ -138,10 +138,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
@@ -180,14 +180,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -218,13 +218,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
@@ -261,10 +261,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -299,13 +299,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
@@ -339,10 +339,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
@@ -449,10 +449,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -488,14 +488,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -526,13 +526,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
@@ -569,10 +569,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -607,13 +607,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
@@ -647,10 +647,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
@@ -757,10 +757,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -812,10 +812,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
@@ -896,7 +896,7 @@ jobs:
steps: steps:
- name: Create app token - name: Create app token
id: app-token id: app-token
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2 uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2
with: with:
app-id: ${{ secrets.PKL_CI_CLIENT_ID }} app-id: ${{ secrets.PKL_CI_CLIENT_ID }}
private-key: ${{ secrets.PKL_CI }} private-key: ${{ secrets.PKL_CI }}
@@ -904,10 +904,9 @@ jobs:
- name: Trigger pkl-lang.org build - name: Trigger pkl-lang.org build
env: env:
GH_TOKEN: ${{ steps.app-token.outputs.token }} GH_TOKEN: ${{ steps.app-token.outputs.token }}
SOURCE_RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: |- run: |-
gh workflow run \ gh workflow run \
--repo apple/pkl-lang.org \ --repo apple/pkl-lang.org \
--ref main \ --ref main \
--field source_run="${SOURCE_RUN}" \ --field source_run="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
main.yml main.yml
+34 -34
View File
@@ -19,10 +19,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -54,10 +54,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -89,14 +89,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -129,13 +129,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
@@ -173,10 +173,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -213,13 +213,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
@@ -255,10 +255,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
@@ -367,10 +367,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -407,14 +407,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -447,13 +447,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
@@ -491,10 +491,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -531,13 +531,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
@@ -573,10 +573,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
@@ -685,10 +685,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
+42 -43
View File
@@ -23,10 +23,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -56,10 +56,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -87,10 +87,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: bench:jmh - name: bench:jmh
shell: bash shell: bash
@@ -106,10 +106,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases - name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
shell: bash shell: bash
@@ -138,10 +138,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
@@ -180,14 +180,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -218,13 +218,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
@@ -261,10 +261,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -299,13 +299,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
@@ -339,10 +339,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
@@ -449,10 +449,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -488,14 +488,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -526,13 +526,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
@@ -569,10 +569,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -607,13 +607,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
@@ -647,10 +647,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
@@ -757,10 +757,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
@@ -847,7 +847,7 @@ jobs:
steps: steps:
- name: Create app token - name: Create app token
id: app-token id: app-token
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2 uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2
with: with:
app-id: ${{ secrets.PKL_CI_CLIENT_ID }} app-id: ${{ secrets.PKL_CI_CLIENT_ID }}
private-key: ${{ secrets.PKL_CI }} private-key: ${{ secrets.PKL_CI }}
@@ -855,10 +855,9 @@ jobs:
- name: Trigger pkl-lang.org build - name: Trigger pkl-lang.org build
env: env:
GH_TOKEN: ${{ steps.app-token.outputs.token }} GH_TOKEN: ${{ steps.app-token.outputs.token }}
SOURCE_RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: |- run: |-
gh workflow run \ gh workflow run \
--repo apple/pkl-lang.org \ --repo apple/pkl-lang.org \
--ref main \ --ref main \
--field source_run="${SOURCE_RUN}" \ --field source_run="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
main.yml main.yml
+58 -73
View File
@@ -23,10 +23,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -56,10 +56,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: check - name: check
shell: bash shell: bash
@@ -87,10 +87,10 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: bench:jmh - name: bench:jmh
shell: bash shell: bash
@@ -106,10 +106,10 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: {} with: {}
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases - name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
shell: bash shell: bash
@@ -138,12 +138,11 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
persist-credentials: false persist-credentials: false
@@ -181,15 +180,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -220,14 +218,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
@@ -264,12 +261,11 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
@@ -303,14 +299,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
@@ -344,12 +339,11 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
set -e set -e
@@ -455,12 +449,11 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
@@ -495,15 +488,14 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
- name: Upload executable artifacts - name: Upload executable artifacts
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with: with:
@@ -534,14 +526,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
@@ -578,12 +569,11 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
@@ -617,14 +607,13 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: aarch64 architecture: aarch64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: Fix git ownership - name: Fix git ownership
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE" run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
@@ -658,12 +647,11 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: Install musl and zlib - name: Install musl and zlib
run: | run: |
set -e set -e
@@ -769,12 +757,11 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- name: gradle buildNative - name: gradle buildNative
shell: bash shell: bash
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
@@ -825,12 +812,11 @@ jobs:
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with: with:
java-version: '25' java-version: '21'
distribution: temurin distribution: temurin
architecture: x64 architecture: x64
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 - uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5
with: with: {}
cache-disabled: true
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
persist-credentials: false persist-credentials: false
@@ -937,7 +923,7 @@ jobs:
steps: steps:
- name: Create app token - name: Create app token
id: app-token id: app-token
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2 uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2
with: with:
app-id: ${{ secrets.PKL_CI_CLIENT_ID }} app-id: ${{ secrets.PKL_CI_CLIENT_ID }}
private-key: ${{ secrets.PKL_CI }} private-key: ${{ secrets.PKL_CI }}
@@ -945,10 +931,9 @@ jobs:
- name: Trigger pkl-lang.org build - name: Trigger pkl-lang.org build
env: env:
GH_TOKEN: ${{ steps.app-token.outputs.token }} GH_TOKEN: ${{ steps.app-token.outputs.token }}
SOURCE_RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: |- run: |-
gh workflow run \ gh workflow run \
--repo apple/pkl-lang.org \ --repo apple/pkl-lang.org \
--ref main \ --ref main \
--field source_run="${SOURCE_RUN}" \ --field source_run="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
main.yml main.yml
-22
View File
@@ -12,27 +12,6 @@
<option name="REPORT_FIELDS" value="true" /> <option name="REPORT_FIELDS" value="true" />
</inspection_tool> </inspection_tool>
<inspection_tool class="ClassCanBeRecord" enabled="false" level="WEAK WARNING" enabled_by_default="false" /> <inspection_tool class="ClassCanBeRecord" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="CustomRegExpInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="myConfigurations">
<list>
<RegExpInspectionConfiguration>
<option name="name" value="PklCliDirectProjectEvaluatorSettingsAccess" />
<option name="suppressId" value="PklCliDirectProjectEvaluatorSettingsAccess" />
<option name="uuid" value="dd497f47-d38f-3fab-9ed7-eabe699620c8" />
<option name="patterns">
<list>
<InspectionPattern>
<option name="regExp" value="project\?\.evaluatorSettings" />
<option name="_fileType" value="Kotlin" />
<option name="searchContext" value="ANY" />
<option name="replacement" value="evaluatorSettings" />
</InspectionPattern>
</list>
</option>
</RegExpInspectionConfiguration>
</list>
</option>
</inspection_tool>
<inspection_tool class="FieldMayBeFinal" enabled="true" level="INFORMATION" enabled_by_default="true"> <inspection_tool class="FieldMayBeFinal" enabled="true" level="INFORMATION" enabled_by_default="true">
<scope name="AllExceptTruffleAst" level="WARNING" enabled="true" /> <scope name="AllExceptTruffleAst" level="WARNING" enabled="true" />
</inspection_tool> </inspection_tool>
@@ -94,6 +73,5 @@
<option name="processLiterals" value="true" /> <option name="processLiterals" value="true" />
<option name="processComments" value="true" /> <option name="processComments" value="true" />
</inspection_tool> </inspection_tool>
<inspection_tool class="dd497f47-d38f-3fab-9ed7-eabe699620c8" enabled="true" level="ERROR" enabled_by_default="true" editorAttributes="ERRORS_ATTRIBUTES" />
</profile> </profile>
</component> </component>
+11 -6
View File
@@ -13,11 +13,11 @@ To import the project into IntelliJ, go to File->Open and select the project's r
If the project is opened but not imported, look for a popup in the lower right corner If the project is opened but not imported, look for a popup in the lower right corner
and click its "Import Gradle Project" link. and click its "Import Gradle Project" link.
. (recommended) Install {uri-gng}[gng] + . (recommended) Install {uri-gng}[gng] +
_gng_ enables you to run Gradle commands with `gw` (instead of `./gradlew`) from any subdirectory. _gng_ enables to run Gradle commands with `gw` (instead of `./gradlew`) from any subdirectory.
. (recommended) Set up Git ignore-revs + . (recommended) Set up Git ignore-revs +
`git config blame.ignoreRevsFile .git-blame-ignore-revs` `git config blame.ignoreRevsFile .git-blame-ignore-revs`
. (recommended) Install {uri-jenv}[jenv] and plugins + . (recommended) Install {uri-jenv}[jenv] and plugins +
_jenv_ uses specific JDK versions in certain subdirectories. _Pkl_ comes with a `.java-version` file specifying JDK 21. + _jenv_ use specific JDK versions in certain subdirectories. _Pkl_ comes with a `.java-version` file specifying JDK 21. +
Enable _jenv_ plugins for better handling by `gradle`: Enable _jenv_ plugins for better handling by `gradle`:
+ +
[source,shell] [source,shell]
@@ -92,9 +92,14 @@ Example: `./gradlew test -Djvmdebug=true`
== Snippet Test Plugin == Snippet Test Plugin
There is an IntelliJ plugin meant for development on the Pkl project itself located in https://github.com/apple/pkl-project-commons[pkl-project-commons]. There is an IntelliJ plugin meant for development on the Pkl project itself.
This plugin provides a split pane window when viewing snippet tests such as LanguageSnippetTests and FormatterSnippetTests.
See https://github.com/apple/pkl-project-commons?tab=readme-ov-file#internal-intellij-plugin[its readme] for instructions on how to set it up. To install:
1. Run `./gradlew pkl-internal-intellij-plugin:buildPlugin`.
2. Within IntelliJ, run the action "Install Plugin From Disk...".
3. Select the zip file within `pkl-internal-intellij-plugin/build/distributions`.
== Resources == Resources
@@ -105,12 +110,12 @@ For automated build setup examples see our https://github.com/apple/pkl/blob/mai
* http://ssw.jku.at/Research/Projects/JVM/Truffle.html[Homepage] * http://ssw.jku.at/Research/Projects/JVM/Truffle.html[Homepage]
* https://github.com/graalvm/truffle[GitHub] * https://github.com/graalvm/truffle[GitHub]
* http://lafo.ssw.uni-linz.ac.at/javadoc/truffle/latest/[Javadoc] * http://lafo.ssw.uni-linz.ac.at/javadoc/truffle/latest/[Javadoc]
* https://mail.openjdk.org/pipermail/graal-dev/[Mailing List] * http://mail.openjdk.java.net/pipermail/graal-dev/[Mailing List]
* https://medium.com/@octskyward/graal-truffle-134d8f28fb69#.2db370y2g[Graal & Truffle (Article)] * https://medium.com/@octskyward/graal-truffle-134d8f28fb69#.2db370y2g[Graal & Truffle (Article)]
* https://comserv.cs.ut.ee/home/files/Pool_ComputerScience_2016.pdf?study=ATILoputoo&reference=6319668E7151D556131810BC3F4A627D7FEF5F3B[Truffle Overview (see chapter 1)] * https://comserv.cs.ut.ee/home/files/Pool_ComputerScience_2016.pdf?study=ATILoputoo&reference=6319668E7151D556131810BC3F4A627D7FEF5F3B[Truffle Overview (see chapter 1)]
* https://gist.github.com/smarr/d1f8f2101b5cc8e14e12[Truffle: Languages and Material] * https://gist.github.com/smarr/d1f8f2101b5cc8e14e12[Truffle: Languages and Material]
* https://github.com/smarr/truffle-notes[Truffle Notes] * https://github.com/smarr/truffle-notes[Truffle Notes]
* https://www.graalvm.org/latest/graalvm-as-a-platform/language-implementation-framework/[Truffle Language Implementation Framework] * https://wiki.openjdk.java.net/display/Graal/Truffle+FAQ+and+Guidelines[Truffle FAQ]
=== Other Config Languages === Other Config Languages
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright © 2024-2026 Apple Inc. and the Pkl project authors Copyright © 2024-2025 Apple Inc. and the Pkl project authors
Portions of this software were originally based on 'SnakeYAML' developed by Andrey Somov. Portions of this software were originally based on 'SnakeYAML' developed by Andrey Somov.
+49 -60
View File
@@ -6,75 +6,64 @@ com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolva
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=jmh,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=jmh,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
net.sf.jopt-simple:jopt-simple:5.0.4=jmh,jmhCompileClasspath,jmhRuntimeClasspath net.sf.jopt-simple:jopt-simple:5.0.4=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
org.apache.commons:commons-math3:3.6.1=jmh,jmhCompileClasspath,jmhRuntimeClasspath org.apache.commons:commons-math3:3.6.1=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=jmhCompileClasspath,testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=jmhCompileClasspath,jmhImplementationDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=jmh,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=jmh,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.graalvm.compiler:compiler:25.0.1=graal org.graalvm.compiler:compiler:25.0.0=graal
org.graalvm.polyglot:polyglot:25.0.1=jmh,jmhRuntimeClasspath,truffle org.graalvm.polyglot:polyglot:25.0.0=jmh,jmhRuntimeClasspath,truffle
org.graalvm.sdk:collections:25.0.1=graal,jmh,jmhRuntimeClasspath,truffle org.graalvm.sdk:collections:25.0.0=graal,jmh,jmhRuntimeClasspath,truffle
org.graalvm.sdk:graal-sdk:25.0.1=jmh,jmhRuntimeClasspath org.graalvm.sdk:graal-sdk:25.0.0=jmh,jmhRuntimeClasspath
org.graalvm.sdk:nativeimage:25.0.1=jmh,jmhRuntimeClasspath,truffle org.graalvm.sdk:nativeimage:25.0.0=jmh,jmhRuntimeClasspath,truffle
org.graalvm.sdk:word:25.0.1=graal,jmh,jmhRuntimeClasspath,truffle org.graalvm.sdk:word:25.0.0=graal,jmh,jmhRuntimeClasspath,truffle
org.graalvm.truffle:truffle-api:25.0.1=jmh,jmhRuntimeClasspath,truffle org.graalvm.truffle:truffle-api:25.0.0=jmh,jmhRuntimeClasspath,truffle
org.graalvm.truffle:truffle-compiler:25.0.1=graal org.graalvm.truffle:truffle-compiler:25.0.0=graal
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,jmh,jmhCompileClasspath,jmhRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=jmh,jmhCompileClasspath,jmhRuntimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=jmh,jmhCompileClasspath,jmhRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=jmh,jmhCompileClasspath,jmhRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=jmh,jmhRuntimeClasspath
org.msgpack:msgpack-core:0.9.11=jmh,jmhRuntimeClasspath org.openjdk.jmh:jmh-core:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
org.openjdk.jmh:jmh-core:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath org.openjdk.jmh:jmh-generator-asm:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
org.openjdk.jmh:jmh-generator-asm:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath org.openjdk.jmh:jmh-generator-bytecode:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
org.openjdk.jmh:jmh-generator-bytecode:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath org.openjdk.jmh:jmh-generator-reflection:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
org.openjdk.jmh:jmh-generator-reflection:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath org.opentest4j:opentest4j:1.3.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
org.organicdesign:Paguro:3.10.3=jmh,jmhRuntimeClasspath org.organicdesign:Paguro:3.10.3=jmh,jmhRuntimeClasspath
org.ow2.asm:asm:9.0=jmh,jmhCompileClasspath,jmhRuntimeClasspath org.ow2.asm:asm:9.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.10=jmh,jmhRuntimeClasspath org.snakeyaml:snakeyaml-engine:2.10=jmh,jmhRuntimeClasspath
empty=annotationProcessor,apiDependenciesMetadata,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,jmhAnnotationProcessor,jmhApiDependenciesMetadata,jmhCompileOnlyDependenciesMetadata,jmhImplementationDependenciesMetadata,jmhIntransitiveDependenciesMetadata,jmhKotlinScriptDefExtensions,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions empty=annotationProcessor,apiDependenciesMetadata,compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,jmhAnnotationProcessor,jmhApiDependenciesMetadata,jmhCompileOnlyDependenciesMetadata,jmhIntransitiveDependenciesMetadata,jmhKotlinScriptDefExtensions,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,runtimeClasspath,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
+3 -8
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -20,16 +20,11 @@ plugins {
`jvm-toolchains` `jvm-toolchains`
} }
/** // Keep this in sync with the constants in `BuildInfo.kt` (those are not addressable here).
* To avoid the provisioning of multiple JDKs and other build issues, keep this value in sync with val toolchainVersion = 21
* the JVM toolchain versions in `BuildInfo.kt` and `gradle-daemon-jvm.properties`.
*/
val toolchainVersion = 25
dependencies { dependencies {
implementation(libs.downloadTaskPlugin) implementation(libs.downloadTaskPlugin)
implementation(libs.errorPronePlugin)
implementation(libs.nullawayPlugin)
implementation(libs.spotlessPlugin) implementation(libs.spotlessPlugin)
implementation(libs.kotlinPlugin) { exclude(module = "kotlin-android-extensions") } implementation(libs.kotlinPlugin) { exclude(module = "kotlin-android-extensions") }
implementation(libs.shadowPlugin) implementation(libs.shadowPlugin)
+30 -39
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ import org.gradle.process.CommandLineArgumentProvider
/** /**
* JVM bytecode target; this is pinned at a reasonable version, because downstream JVM projects * JVM bytecode target; this is pinned at a reasonable version, because downstream JVM projects
* which consume Pkl will need a minimum bytecode level at or above this one. * which consume Pkl will need a minimum Bytecode level at or above this one.
* *
* Kotlin and Java need matching bytecode targets, so this is expressed as a build setting and * Kotlin and Java need matching bytecode targets, so this is expressed as a build setting and
* constant default. To override, pass `-DpklJdkToolchain=X` to the Gradle command line, where X is * constant default. To override, pass `-DpklJdkToolchain=X` to the Gradle command line, where X is
@@ -40,13 +40,10 @@ import org.gradle.process.CommandLineArgumentProvider
const val PKL_JVM_TARGET_DEFAULT_MAXIMUM = 17 const val PKL_JVM_TARGET_DEFAULT_MAXIMUM = 17
/** /**
* The Pkl build requires JDK 25+; otherwise, NullAway will not work correctly. * The Pkl build requires JDK 21+ to build, because JDK 17 is no longer within the default set of
* * supported JDKs for GraalVM. This is a build-time requirement, not a runtime requirement.
* This is a build-time requirement, not a runtime requirement. To avoid the provisioning of
* multiple JDKs and other build issues, keep this value in sync with the JVM toolchain versions in
* `buildSrc/build.gradle.kts` and `gradle-daemon-jvm.properties`.
*/ */
const val PKL_JDK_VERSION_MIN = 25 const val PKL_JDK_VERSION_MIN = 21
/** /**
* The JDK minimum is set to match the bytecode minimum, to guarantee that fat JARs work against the * The JDK minimum is set to match the bytecode minimum, to guarantee that fat JARs work against the
@@ -55,15 +52,14 @@ const val PKL_JDK_VERSION_MIN = 25
const val PKL_TEST_JDK_MINIMUM = PKL_JVM_TARGET_DEFAULT_MAXIMUM const val PKL_TEST_JDK_MINIMUM = PKL_JVM_TARGET_DEFAULT_MAXIMUM
/** /**
* Maximum JDK version which Pkl is tested with; this should be bumped when new JDK releases are * Maximum JDK version which Pkl is tested with; this should be bumped when new JDK stable releases
* issued. * are issued. At the time of this writing, JDK 23 is the latest available release.
*/ */
const val PKL_TEST_JDK_MAXIMUM = 26 const val PKL_TEST_JDK_MAXIMUM = 23
/** /**
* If `true`, all JDK releases between [PKL_TEST_JDK_MINIMUM] and [PKL_TEST_JDK_MAXIMUM] are tested. * Test the full suite of JDKs between [PKL_TEST_JDK_MINIMUM] and [PKL_TEST_JDK_MAXIMUM]; if this is
* If `false`, only LTS releases within that range are tested. To override, pass * set to `false` (or overridden on the command line), only LTS releases are tested by default.
* `-DpklTestAllJdks=true` on the Gradle command line.
*/ */
const val PKL_TEST_ALL_JDKS = false const val PKL_TEST_ALL_JDKS = false
@@ -201,8 +197,8 @@ open class BuildInfo(private val project: Project) {
} }
val testJdkVendors: Sequence<JvmVendorSpec> by lazy { val testJdkVendors: Sequence<JvmVendorSpec> by lazy {
// By default, only Adoptium is tested during multi-JDK testing. Flip `-DpklTestAllVendors=true` // By default, only OpenJDK is tested during multi-JDK testing. Flip `-DpklTestAllVendors=true`
// to additionally test against GraalVM and Oracle. // to additionally test against a suite of JDK vendors, including Azul, Oracle, and GraalVM.
when (System.getProperty("pklTestAllVendors")?.toBoolean()) { when (System.getProperty("pklTestAllVendors")?.toBoolean()) {
true -> sequenceOf(JvmVendorSpec.ADOPTIUM, JvmVendorSpec.GRAAL_VM, JvmVendorSpec.ORACLE) true -> sequenceOf(JvmVendorSpec.ADOPTIUM, JvmVendorSpec.GRAAL_VM, JvmVendorSpec.ORACLE)
else -> sequenceOf(JvmVendorSpec.ADOPTIUM) else -> sequenceOf(JvmVendorSpec.ADOPTIUM)
@@ -282,9 +278,8 @@ open class BuildInfo(private val project: Project) {
val namer = testNamer(baseNameProvider) val namer = testNamer(baseNameProvider)
val applyConfig: MultiJdkTestConfigurator = { (version, jdk) -> val applyConfig: MultiJdkTestConfigurator = { (version, jdk) ->
// 1) copy configurations from the template task // 1) copy configurations from the template task
dependsOn(templateTask)
templateTask.get().let { template -> templateTask.get().let { template ->
// copy explicit dependencies not inferred from task inputs
dependsOn(template.dependsOn)
classpath = template.classpath classpath = template.classpath
testClassesDirs = template.testClassesDirs testClassesDirs = template.testClassesDirs
jvmArgs.addAll(template.jvmArgs) jvmArgs.addAll(template.jvmArgs)
@@ -310,8 +305,8 @@ open class BuildInfo(private val project: Project) {
// multiply out by jdk vendor // multiply out by jdk vendor
testJdkVendors.map { vendor -> (targetVersion to vendor) } testJdkVendors.map { vendor -> (targetVersion to vendor) }
} }
.mapNotNull { (jdkTarget, vendor) -> .map { (jdkTarget, vendor) ->
if (jdkToolchainVersion == jdkTarget) { if (jdkToolchainVersion == jdkTarget)
tasks.register(namer(jdkTarget, vendor)) { tasks.register(namer(jdkTarget, vendor)) {
// alias to `test` // alias to `test`
dependsOn(templateTask) dependsOn(templateTask)
@@ -319,24 +314,20 @@ open class BuildInfo(private val project: Project) {
description = description =
"Alias for regular '${baseNameProvider()}' task, on JDK ${jdkTarget.asInt()}" "Alias for regular '${baseNameProvider()}' task, on JDK ${jdkTarget.asInt()}"
} }
} else { else
// Always register and enable the task so it can be run explicitly, tasks.register(namer(jdkTarget, vendor.takeIf { isMultiVendor }), Test::class) {
// but only return it if it should be included in "check". enabled = jdkTarget.isEnabled
val task = group = Category.VERIFICATION
tasks.register(namer(jdkTarget, vendor.takeIf { isMultiVendor }), Test::class) { description = "Run tests against JDK ${jdkTarget.asInt()}"
group = Category.VERIFICATION applyConfig(jdkTarget to toolchains.launcherFor { languageVersion = jdkTarget })
description = "Run tests against JDK ${jdkTarget.asInt()}" // fix: on jdk17, we must force the polyglot module on to the modulepath
applyConfig(jdkTarget to toolchains.launcherFor { languageVersion = jdkTarget }) if (jdkTarget.asInt() == 17)
// fix: on jdk17, we must force the polyglot module on to the modulepath jvmArgumentProviders.add(
if (jdkTarget.asInt() == 17) CommandLineArgumentProvider {
jvmArgumentProviders.add( buildList { listOf("--add-modules=org.graalvm.polyglot") }
CommandLineArgumentProvider { }
buildList { listOf("--add-modules=org.graalvm.polyglot") } )
} }
)
}
task.takeIf { jdkTarget.isEnabled }
}
} }
.toList() .toList()
} }
@@ -377,7 +368,7 @@ open class BuildInfo(private val project: Project) {
// allow -DcommitId=abc123 for build environments that don't have git. // allow -DcommitId=abc123 for build environments that don't have git.
System.getProperty("commitId").let { if (it != null) return@lazy it } System.getProperty("commitId").let { if (it != null) return@lazy it }
// only run command once per build invocation // only run command once per build invocation
if (project.path == project.rootProject.path) { if (project === project.rootProject) {
val process = val process =
ProcessBuilder() ProcessBuilder()
.command("git", "rev-parse", "--short", "HEAD") .command("git", "rev-parse", "--short", "HEAD")
+1 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -36,7 +36,6 @@ abstract class ExecutableJar : DefaultTask() {
@get:Input abstract val jvmArgs: ListProperty<String> @get:Input abstract val jvmArgs: ListProperty<String>
@TaskAction @TaskAction
@Suppress("unused")
fun buildJar() { fun buildJar() {
val inFile = inJar.get().asFile val inFile = inJar.get().asFile
val outFile = outJar.get().asFile val outFile = outJar.get().asFile
+1 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -27,7 +27,6 @@ private val ltsReleases =
JavaLanguageVersion.of(11), JavaLanguageVersion.of(11),
JavaLanguageVersion.of(17), JavaLanguageVersion.of(17),
JavaLanguageVersion.of(21), JavaLanguageVersion.of(21),
JavaLanguageVersion.of(25),
) )
/** Describes an inclusive range of JVM versions, based on the [JavaLanguageVersion] type. */ /** Describes an inclusive range of JVM versions, based on the [JavaLanguageVersion] type. */
+2 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -57,7 +57,7 @@ open class MergeSourcesJars : DefaultTask() {
// a word or a period character. should catch most cases. // a word or a period character. should catch most cases.
val importPattern = val importPattern =
Pattern.compile( Pattern.compile(
"(?<!([\\w.]))(" + relocatedPkgs.keys.joinToString("|") { it.replace(".", "\\.") } + ")" "(?<!(\\w|\\.))(" + relocatedPkgs.keys.joinToString("|") { it.replace(".", "\\.") } + ")"
) )
val sourceFileExts = sourceFileExtensions.get() val sourceFileExts = sourceFileExtensions.get()
+12 -13
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -55,12 +55,13 @@ abstract class NativeImageBuild : DefaultTask() {
@get:Inject protected abstract val execOperations: ExecOperations @get:Inject protected abstract val execOperations: ExecOperations
private val graalVm: Provider<BuildInfo.GraalVm> = arch.map { a -> private val graalVm: Provider<BuildInfo.GraalVm> =
when (a) { arch.map { a ->
Architecture.AMD64 -> buildInfo.graalVmAmd64 when (a) {
Architecture.AARCH64 -> buildInfo.graalVmAarch64 Architecture.AMD64 -> buildInfo.graalVmAmd64
Architecture.AARCH64 -> buildInfo.graalVmAarch64
}
} }
}
private val buildInfo: BuildInfo = project.extensions.getByType(BuildInfo::class.java) private val buildInfo: BuildInfo = project.extensions.getByType(BuildInfo::class.java)
@@ -101,7 +102,6 @@ abstract class NativeImageBuild : DefaultTask() {
} }
@TaskAction @TaskAction
@Suppress("unused")
protected fun run() { protected fun run() {
execOperations.exec { execOperations.exec {
val exclusions = val exclusions =
@@ -118,8 +118,6 @@ abstract class NativeImageBuild : DefaultTask() {
add("--initialize-at-build-time=") add("--initialize-at-build-time=")
// needed for messagepack-java (see https://github.com/msgpack/msgpack-java/issues/600) // needed for messagepack-java (see https://github.com/msgpack/msgpack-java/issues/600)
add("--initialize-at-run-time=org.msgpack.core.buffer.DirectBufferAccess") add("--initialize-at-run-time=org.msgpack.core.buffer.DirectBufferAccess")
// needed for jline-terminal-jni
add("--initialize-at-run-time=org.jline.nativ,org.jline.terminal.impl.jni")
add("--no-fallback") add("--no-fallback")
add("-H:IncludeResources=org/pkl/core/stdlib/.*\\.pkl") add("-H:IncludeResources=org/pkl/core/stdlib/.*\\.pkl")
add("-H:IncludeResources=org/jline/utils/.*") add("-H:IncludeResources=org/jline/utils/.*")
@@ -131,7 +129,7 @@ abstract class NativeImageBuild : DefaultTask() {
add(imageName.get()) add(imageName.get())
// the actual limit (currently) used by native-image is this number + 1400 (idea is to // the actual limit (currently) used by native-image is this number + 1400 (idea is to
// compensate for Truffle's own nodes) // compensate for Truffle's own nodes)
add("-H:MaxRuntimeCompileMethods=2000") add("-H:MaxRuntimeCompileMethods=1800")
add("-H:+EnforceMaxRuntimeCompileMethods") add("-H:+EnforceMaxRuntimeCompileMethods")
add("--enable-url-protocols=http,https") add("--enable-url-protocols=http,https")
add("-H:+ReportExceptionStackTraces") add("-H:+ReportExceptionStackTraces")
@@ -150,9 +148,10 @@ abstract class NativeImageBuild : DefaultTask() {
} }
// native-image rejects non-existing class path entries -> filter // native-image rejects non-existing class path entries -> filter
add("--class-path") add("--class-path")
val pathInput = classpath.filter { val pathInput =
it.exists() && !exclusions.any { exclude -> it.name.contains(exclude) } classpath.filter {
} it.exists() && !exclusions.any { exclude -> it.name.contains(exclude) }
}
add(pathInput.asPath) add(pathInput.asPath)
// make sure dev machine stays responsive (15% slowdown on my laptop) // make sure dev machine stays responsive (15% slowdown on my laptop)
val processors = val processors =
@@ -42,8 +42,7 @@ class PklFormatterFunc(@Transient private val configuration: Configuration) :
private val classLoader by lazy { private val classLoader by lazy {
val urls = configuration.files.map { it.toURI().toURL() } val urls = configuration.files.map { it.toURI().toURL() }
// Use the platform classloader as parent to isolate from Gradle's classloader URLClassLoader(urls.toTypedArray())
URLClassLoader(urls.toTypedArray(), ClassLoader.getPlatformClassLoader())
} }
private val formatterClass by lazy { classLoader.loadClass("org.pkl.formatter.Formatter") } private val formatterClass by lazy { classLoader.loadClass("org.pkl.formatter.Formatter") }
@@ -1,77 +0,0 @@
/*
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import com.diffplug.spotless.FormatterFunc
import com.diffplug.spotless.FormatterStep
import java.io.File
import java.io.Serial
import java.io.Serializable
/**
* A Spotless [FormatterStep] that suppresses formatting changes where the only difference between
* the formatted output and the file's content in the upstream base ref is the license header year.
*
* Avoids an issue where, in the process of working on the codebase:
* 1. A file is modified.
* 2. Spotless formats the file, and also updates the copyright year.
* 3. The original modification is reverted.
* 4. Spotless formats the file again, but now the copyright year is the updated year.
*/
class RevertYearOnlyChangesStep(private val repoRoot: File, private val ratchetFrom: String) :
Serializable {
companion object {
@Serial private const val serialVersionUID: Long = 1L
}
fun create(): FormatterStep =
FormatterStep.createLazy(
"revertYearOnlyChanges",
{ this },
{ RevertYearOnlyChangesFunc(repoRoot, ratchetFrom) },
)
}
class RevertYearOnlyChangesFunc(private val repoRoot: File, private val ratchetFrom: String) :
FormatterFunc.NeedsFile, Serializable {
companion object {
@Serial private const val serialVersionUID: Long = 1L
// Matches "Copyright © 2024" or "Copyright © 2024-2025"
private val YEAR_REGEX = Regex("""(Copyright © )\d{4}(-\d{4})?""")
}
override fun applyWithFile(unix: String, file: File): String {
val relativePath = repoRoot.toPath().relativize(file.toPath()).toString()
val upstreamContent = gitShow(ratchetFrom, relativePath) ?: return unix
val normalizedRaw = YEAR_REGEX.replace(unix, "\$1YEAR")
val normalizedUpstream = YEAR_REGEX.replace(upstreamContent, "\$1YEAR")
return if (normalizedRaw == normalizedUpstream) {
// Only the year changed — return the upstream content
upstreamContent
} else {
unix
}
}
private fun gitShow(ref: String, path: String): String? {
val process =
ProcessBuilder("git", "show", "$ref:$path")
.directory(repoRoot)
.redirectErrorStream(true)
.start()
val output = process.inputStream.readBytes().toString(Charsets.UTF_8)
return if (process.waitFor() == 0) output.replace("\r\n", "\n") else null
}
}
@@ -15,6 +15,8 @@
*/ */
import com.diffplug.gradle.spotless.KotlinGradleExtension import com.diffplug.gradle.spotless.KotlinGradleExtension
import org.gradle.accessors.dm.LibrariesForLibs import org.gradle.accessors.dm.LibrariesForLibs
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
plugins { id("com.diffplug.spotless") } plugins { id("com.diffplug.spotless") }
@@ -40,9 +42,25 @@ configurations {
} }
} }
tasks.withType<JavaCompile>().configureEach { configurations.all {
javaCompiler = buildInfo.javaCompiler resolutionStrategy.eachDependency {
options.release = buildInfo.jvmTarget if (requested.group == "org.jetbrains.kotlin") {
// prevent transitive deps from bumping Koltin version
useVersion(libs.versions.kotlin.get())
}
}
}
plugins.withType(JavaPlugin::class).configureEach {
tasks.withType<JavaCompile>().configureEach { options.release = 17 }
}
tasks.withType<KotlinJvmCompile>().configureEach {
compilerOptions {
jvmTarget = JvmTarget.JVM_17
freeCompilerArgs.addAll("-Xjsr305=strict", "-Xjvm-default=all")
freeCompilerArgs.add("-Xjdk-release=17")
}
} }
plugins.withType(IdeaPlugin::class).configureEach { plugins.withType(IdeaPlugin::class).configureEach {
@@ -79,9 +97,10 @@ plugins.withType(MavenPublishPlugin::class).configureEach {
// settings.gradle.kts sets `--write-locks` // settings.gradle.kts sets `--write-locks`
// if Gradle command line contains this task name // if Gradle command line contains this task name
val updateDependencyLocks by tasks.registering { val updateDependencyLocks by
doLast { configurations.filter { it.isCanBeResolved }.forEach { it.resolve() } } tasks.registering {
} doLast { configurations.filter { it.isCanBeResolved }.forEach { it.resolve() } }
}
val allDependencies by tasks.registering(DependencyReportTask::class) val allDependencies by tasks.registering(DependencyReportTask::class)
@@ -91,6 +110,7 @@ tasks.withType(Test::class).configureEach {
} }
debugOptions { debugOptions {
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
@Suppress("UnstableApiUsage")
host = "*" host = "*"
port = 5005 port = 5005
suspend = true suspend = true
@@ -101,6 +121,7 @@ tasks.withType(Test::class).configureEach {
tasks.withType(JavaExec::class).configureEach { tasks.withType(JavaExec::class).configureEach {
debugOptions { debugOptions {
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
@Suppress("UnstableApiUsage")
host = "*" host = "*"
port = 5005 port = 5005
suspend = true suspend = true
@@ -133,28 +154,22 @@ val ratchetBranchName =
spotless { spotless {
ratchetFrom = "$originalRemoteName/$ratchetBranchName" ratchetFrom = "$originalRemoteName/$ratchetBranchName"
val revertYearOnlyChangesStep =
RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
// When building root project, format buildSrc files too. // When building root project, format buildSrc files too.
// We need this because buildSrc is not a subproject of the root project, so a top-level // We need this because buildSrc is not a subproject of the root project, so a top-level
// `spotlessApply` will not trigger `buildSrc:spotlessApply`. // `spotlessApply` will not trigger `buildSrc:spotlessApply`.
if (project === rootProject) { if (project === rootProject) {
kotlinGradle { kotlinGradle {
configureFormatter() configureFormatter()
addStep(revertYearOnlyChangesStep)
target("*.kts", "buildSrc/*.kts", "buildSrc/src/*/kotlin/**/*.kts") target("*.kts", "buildSrc/*.kts", "buildSrc/src/*/kotlin/**/*.kts")
} }
kotlin { kotlin {
ktfmt(libs.versions.ktfmt.get()).googleStyle() ktfmt(libs.versions.ktfmt.get()).googleStyle()
target("buildSrc/src/*/kotlin/**/*.kt") target("buildSrc/src/*/kotlin/**/*.kt")
licenseHeaderFile(licenseHeaderFile) licenseHeaderFile(licenseHeaderFile)
addStep(revertYearOnlyChangesStep)
} }
} else { } else {
kotlinGradle { kotlinGradle {
configureFormatter() configureFormatter()
addStep(revertYearOnlyChangesStep)
target("*.kts") target("*.kts")
} }
} }
+29 -28
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -84,7 +84,7 @@ for ((key, value) in relocations) {
} }
} }
val nonRelocations = listOf("com/oracle/truffle/", "org/graalvm/", "org/jspecify") val nonRelocations = listOf("com/oracle/truffle/", "org/graalvm/")
tasks.shadowJar { tasks.shadowJar {
inputs.property("relocations", relocations) inputs.property("relocations", relocations)
@@ -148,36 +148,37 @@ val testFatJar by
tasks.check { dependsOn(testFatJar) } tasks.check { dependsOn(testFatJar) }
val validateFatJar by tasks.registering { val validateFatJar by
val outputFile = layout.buildDirectory.file("validateFatJar/result.txt") tasks.registering {
inputs.files(tasks.shadowJar) val outputFile = layout.buildDirectory.file("validateFatJar/result.txt")
inputs.property("nonRelocations", nonRelocations) inputs.files(tasks.shadowJar)
outputs.file(outputFile) inputs.property("nonRelocations", nonRelocations)
outputs.file(outputFile)
doLast { doLast {
val unshadowedFiles = mutableListOf<String>() val unshadowedFiles = mutableListOf<String>()
zipTree(tasks.shadowJar.get().outputs.files.singleFile).visit { zipTree(tasks.shadowJar.get().outputs.files.singleFile).visit {
val fileDetails = this val fileDetails = this
val path = fileDetails.relativePath.pathString val path = fileDetails.relativePath.pathString
if ( if (
!(fileDetails.isDirectory || !(fileDetails.isDirectory ||
path.startsWith("org/pkl/") || path.startsWith("org/pkl/") ||
path.startsWith("META-INF/") || path.startsWith("META-INF/") ||
nonRelocations.any { path.startsWith(it) }) nonRelocations.any { path.startsWith(it) })
) { ) {
// don't throw exception inside `visit` // don't throw exception inside `visit`
// as this gives a misleading "Could not expand ZIP" error message // as this gives a misleading "Could not expand ZIP" error message
unshadowedFiles.add(path) unshadowedFiles.add(path)
}
}
if (unshadowedFiles.isEmpty()) {
outputFile.get().asFile.writeText("SUCCESS")
} else {
outputFile.get().asFile.writeText("FAILURE")
throw GradleException("Found unshadowed files:\n" + unshadowedFiles.joinToString("\n"))
} }
} }
if (unshadowedFiles.isEmpty()) {
outputFile.get().asFile.writeText("SUCCESS")
} else {
outputFile.get().asFile.writeText("FAILURE")
throw GradleException("Found unshadowed files:\n" + unshadowedFiles.joinToString("\n"))
}
} }
}
tasks.check { dependsOn(validateFatJar) } tasks.check { dependsOn(validateFatJar) }
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -21,8 +21,6 @@ tasks.addRule("Pattern: compatibilityTest[All|Releases|Latest|Candidate|Nightly|
val taskName = this val taskName = this
val matchResult = Regex("compatibilityTest(.+)").matchEntire(taskName) ?: return@addRule val matchResult = Regex("compatibilityTest(.+)").matchEntire(taskName) ?: return@addRule
// https://github.com/gradle/gradle/issues/32599
@Suppress("DEPRECATION")
when (val taskNameSuffix = matchResult.groupValues[1]) { when (val taskNameSuffix = matchResult.groupValues[1]) {
"All" -> "All" ->
task("compatibilityTestAll") { task("compatibilityTestAll") {
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -23,27 +23,25 @@ val validatorConfiguration: Configuration =
configurations.create("validator") { configurations.create("validator") {
resolutionStrategy.eachDependency { resolutionStrategy.eachDependency {
if (requested.group == "log4j" && requested.name == "log4j") { if (requested.group == "log4j" && requested.name == "log4j") {
useTarget(buildInfo.libs.findLibrary("log4j12Api").get()) @Suppress("UnstableApiUsage") useTarget(buildInfo.libs.findLibrary("log4j12Api").get())
because("mitigate critical security vulnerabilities") because("mitigate critical security vulnerabilities")
} }
} }
} }
dependencies { dependencies {
@Suppress("UnstableApiUsage")
validatorConfiguration(buildInfo.libs.findLibrary("nuValidator").get()) { validatorConfiguration(buildInfo.libs.findLibrary("nuValidator").get()) {
// remove unnecessary dependencies // we only want jetty-util and jetty-util-ajax (with the right version)
// (some of the requested versions don't even exist on Maven Central) // couldn't find a more robust way to express this
exclude(group = "org.eclipse.jetty", module = "jetty-alpn-client")
exclude(group = "org.eclipse.jetty", module = "jetty-continuation") exclude(group = "org.eclipse.jetty", module = "jetty-continuation")
exclude(group = "org.eclipse.jetty", module = "jetty-http") exclude(group = "org.eclipse.jetty", module = "jetty-http")
exclude(group = "org.eclipse.jetty", module = "jetty-io")
exclude(group = "org.eclipse.jetty", module = "jetty-security") exclude(group = "org.eclipse.jetty", module = "jetty-security")
exclude(group = "org.eclipse.jetty", module = "jetty-server") exclude(group = "org.eclipse.jetty", module = "jetty-server")
exclude(group = "org.eclipse.jetty", module = "jetty-servlets") exclude(group = "org.eclipse.jetty", module = "jetty-servlets")
exclude(group = "org.eclipse.jetty", module = "jetty-jakarta-servlet-api")
exclude(group = "org.eclipse.jetty.toolchain")
exclude(group = "javax.servlet") exclude(group = "javax.servlet")
exclude(group = "org.apache.commons", module = "commons-fileupload2-core") exclude(group = "commons-fileupload")
exclude(group = "org.apache.commons", module = "commons-fileupload2-jakarta-servlet5")
} }
} }
@@ -1,46 +0,0 @@
/*
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import net.ltgt.gradle.errorprone.errorprone
import net.ltgt.gradle.nullaway.nullaway
import org.gradle.accessors.dm.LibrariesForLibs
import org.gradle.api.tasks.compile.JavaCompile
plugins {
`java-library`
id("net.ltgt.errorprone")
id("net.ltgt.nullaway")
}
val libs = the<LibrariesForLibs>()
dependencies {
api(libs.jspecify)
errorprone(libs.errorProne)
errorprone(libs.nullaway)
}
nullaway { onlyNullMarked = true }
tasks.withType<JavaCompile>().configureEach {
options.errorprone.disableAllChecks = true
options.errorprone.nullaway {
error()
onlyNullMarked = true
jspecifyMode = true
// honor assert x != null in addition to Objects.requireNonNull(x)
assertsEnabled = true
}
}
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -72,7 +72,7 @@ fun Task.setupTestStartJavaExecutable(launcher: Provider<JavaLauncher>? = null)
outputFile.get().asFile.toPath().apply { outputFile.get().asFile.toPath().apply {
try { try {
parent.createDirectories() parent.createDirectories()
} catch (_: java.nio.file.FileAlreadyExistsException) {} } catch (ignored: java.nio.file.FileAlreadyExistsException) {}
writeText("OK") writeText("OK")
} }
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -50,16 +50,20 @@ artifacts {
} }
spotless { spotless {
val revertYearOnlyChanges = RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
java { java {
addStep(revertYearOnlyChanges)
googleJavaFormat(libs.versions.googleJavaFormat.get()) googleJavaFormat(libs.versions.googleJavaFormat.get())
target("src/*/java/**/*.java") target("src/*/java/**/*.java")
licenseHeaderFile(rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt")) licenseHeaderFile(rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt"))
} }
kotlin {
ktfmt(libs.versions.ktfmt.get()).googleStyle()
target("src/*/kotlin/**/*.kt")
licenseHeaderFile(rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt"))
}
} }
tasks.compileKotlin { enabled = false }
tasks.jar { tasks.jar {
manifest { manifest {
attributes += attributes +=
@@ -77,6 +81,19 @@ tasks.javadoc {
(options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet") (options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet")
} }
val workAroundKotlinGradlePluginBug by
tasks.registering {
doLast {
// Works around this problem, which sporadically appears and disappears in different
// subprojects:
// A problem was found with the configuration of task ':pkl-executor:compileJava' (type
// 'JavaCompile').
// > Directory '[...]/pkl/pkl-executor/build/classes/kotlin/main'
// specified for property 'compileKotlinOutputClasses' does not exist.
layout.buildDirectory.dir("classes/kotlin/main").get().asFile.mkdirs()
}
}
val truffleJavacArgs = val truffleJavacArgs =
listOf( listOf(
// TODO: determine correct limits for Truffle specializations // TODO: determine correct limits for Truffle specializations
@@ -86,6 +103,7 @@ val truffleJavacArgs =
tasks.compileJava { tasks.compileJava {
javaCompiler = info.javaCompiler javaCompiler = info.javaCompiler
dependsOn(workAroundKotlinGradlePluginBug)
options.compilerArgs.addAll(truffleJavacArgs + info.jpmsAddModulesFlags) options.compilerArgs.addAll(truffleJavacArgs + info.jpmsAddModulesFlags)
} }
@@ -1,67 +0,0 @@
/*
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import org.gradle.accessors.dm.LibrariesForLibs
import org.gradle.kotlin.dsl.getByType
import org.gradle.kotlin.dsl.kotlin
import org.gradle.kotlin.dsl.the
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
plugins {
java
kotlin("jvm")
id("com.diffplug.spotless")
}
val buildInfo = project.extensions.getByType<BuildInfo>()
val libs = the<LibrariesForLibs>()
dependencies {
// Align versions of Kotlin modules during dependency resolution.
// Do NOT align "api", as this would affect consumers' builds.
implementation(platform(libs.kotlinBom))
testImplementation(platform(libs.kotlinBom))
}
kotlin {
compilerOptions {
val kotlinTarget = KotlinVersion.fromVersion(libs.versions.kotlinTarget.get())
languageVersion.set(kotlinTarget)
apiVersion.set(kotlinTarget)
jvmTarget = JvmTarget.fromTarget(buildInfo.jvmTarget.toString())
jvmToolchain {
languageVersion.set(buildInfo.jdkToolchainVersion)
vendor.set(buildInfo.jdkVendor)
}
freeCompilerArgs.addAll(
"-jvm-default=no-compatibility", // was: -Xjvm-default=all
"-Xjdk-release=${buildInfo.jvmTarget}",
"-Xjsr305=strict",
)
}
}
spotless {
val revertYearOnlyChanges = RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
kotlin {
addStep(revertYearOnlyChanges)
ktfmt(libs.versions.ktfmt.get()).googleStyle()
target("src/*/kotlin/**/*.kt")
licenseHeaderFile(rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt"))
}
}
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -14,16 +14,38 @@
* limitations under the License. * limitations under the License.
*/ */
import org.gradle.accessors.dm.LibrariesForLibs import org.gradle.accessors.dm.LibrariesForLibs
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
plugins { id("pklJavaLibrary") } plugins {
id("pklJavaLibrary")
kotlin("jvm")
}
// Build configuration.
val buildInfo = project.extensions.getByType<BuildInfo>() val buildInfo = project.extensions.getByType<BuildInfo>()
// Version Catalog library symbols.
val libs = the<LibrariesForLibs>() val libs = the<LibrariesForLibs>()
dependencies { dependencies {
// Kotlin libraries typically expose stdlib types in their public APIs. // At least some of our kotlin APIs contain Kotlin stdlib types
// Therefore, the stdlib must be available on the consumer's compile classpath, // that aren't compiled away by kotlinc (e.g., `kotlin.Function`).
// and "implementation" is not sufficient. // So let's be conservative and default to `api` for now.
api(libs.kotlinStdLib) // For Kotlin APIs that only target Kotlin users (e.g., pkl-config-kotlin),
// it won't make a difference.
api(buildInfo.libs.findLibrary("kotlinStdLib").get())
}
tasks.compileKotlin {
enabled = true // disabled by pklJavaLibrary
}
tasks.withType<KotlinJvmCompile>().configureEach {
compilerOptions {
languageVersion = KotlinVersion.KOTLIN_2_1
jvmTarget = JvmTarget.fromTarget(buildInfo.jvmTarget.toString())
freeCompilerArgs.addAll("-Xjdk-release=${buildInfo.jvmTarget}")
}
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat
plugins { plugins {
`jvm-test-suite` `jvm-test-suite`
id("pklKotlinBase") kotlin("jvm")
} }
val buildInfo = project.extensions.getByType<BuildInfo>() val buildInfo = project.extensions.getByType<BuildInfo>()
@@ -27,11 +27,10 @@ val buildInfo = project.extensions.getByType<BuildInfo>()
val libs = the<LibrariesForLibs>() val libs = the<LibrariesForLibs>()
dependencies { dependencies {
testImplementation(libs.kotlinStdLib)
testImplementation(libs.assertj) testImplementation(libs.assertj)
testImplementation(libs.junitApi) testImplementation(libs.junitApi)
testImplementation(libs.junitParams) testImplementation(libs.junitParams)
testImplementation(libs.kotlinStdLib)
testRuntimeOnly(libs.junitEngine) testRuntimeOnly(libs.junitEngine)
testRuntimeOnly(libs.junitLauncher) testRuntimeOnly(libs.junitLauncher)
@@ -45,7 +44,7 @@ tasks.withType<Test>().configureEach {
// enable checking of stdlib return types // enable checking of stdlib return types
systemProperty("org.pkl.testMode", "true") systemProperty("org.pkl.testMode", "true")
reports.named("html") { required = true } reports.named("html") { enabled = true }
testLogging { exceptionFormat = TestExceptionFormat.FULL } testLogging { exceptionFormat = TestExceptionFormat.FULL }
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -161,7 +161,7 @@ val testStartNativeExecutable by
outputFile.get().asFile.toPath().apply { outputFile.get().asFile.toPath().apply {
try { try {
parent.createDirectories() parent.createDirectories()
} catch (_: java.nio.file.FileAlreadyExistsException) {} } catch (ignored: java.nio.file.FileAlreadyExistsException) {}
writeText("OK") writeText("OK")
} }
} }
+2 -2
View File
@@ -1,6 +1,6 @@
name: main name: main
title: Main Project title: Main Project
version: 0.32.0-dev version: 0.31.0
prerelease: true prerelease: false
nav: nav:
- nav.adoc - nav.adoc
+40 -51
View File
@@ -7,66 +7,55 @@ io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.graalvm.polyglot:polyglot:25.0.1=testRuntimeClasspath org.graalvm.polyglot:polyglot:25.0.0=testRuntimeClasspath
org.graalvm.sdk:collections:25.0.1=testRuntimeClasspath org.graalvm.sdk:collections:25.0.0=testRuntimeClasspath
org.graalvm.sdk:graal-sdk:25.0.1=testRuntimeClasspath org.graalvm.sdk:graal-sdk:25.0.0=testRuntimeClasspath
org.graalvm.sdk:nativeimage:25.0.1=testRuntimeClasspath org.graalvm.sdk:nativeimage:25.0.0=testRuntimeClasspath
org.graalvm.sdk:word:25.0.1=testRuntimeClasspath org.graalvm.sdk:word:25.0.0=testRuntimeClasspath
org.graalvm.truffle:truffle-api:25.0.1=testRuntimeClasspath org.graalvm.truffle:truffle-api:25.0.0=testRuntimeClasspath
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable,testRuntimeClasspath org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=testRuntimeClasspath
org.msgpack:msgpack-core:0.9.11=testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
org.organicdesign:Paguro:3.10.3=testRuntimeClasspath org.organicdesign:Paguro:3.10.3=testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.10=testRuntimeClasspath org.snakeyaml:snakeyaml-engine:2.10=testRuntimeClasspath
empty=annotationProcessor,apiDependenciesMetadata,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions empty=annotationProcessor,apiDependenciesMetadata,compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,runtimeClasspath,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
@@ -3,10 +3,10 @@
// the following attributes must be updated immediately before a release // the following attributes must be updated immediately before a release
// pkl version corresponding to current git commit without -dev suffix or git hash // pkl version corresponding to current git commit without -dev suffix or git hash
:pkl-version-no-suffix: 0.32.0 :pkl-version-no-suffix: 0.31.0
// tells whether pkl version corresponding to current git commit // tells whether pkl version corresponding to current git commit
// is a release version (:is-release-version: '') or dev version (:!is-release-version:) // is a release version (:is-release-version: '') or dev version (:!is-release-version:)
:!is-release-version: :is-release-version: ''
// the remaining attributes do not need to be updated regularly // the remaining attributes do not need to be updated regularly
@@ -4922,7 +4922,7 @@ animals {
==== Receiver ==== Receiver
The receiver is the bottom-most object in the <<prototype-chain>>. The receiver is the bottom-most object in the <<prototype-chain>>.
That means that, within the context of an amending object, the receiver is the amending object. That means that, within the context of an amending object, the reciever is the amending object.
Example: Example:
[source,pkl] [source,pkl]
+1 -1
View File
@@ -266,7 +266,7 @@ Thanks to https://github.com/gordonbondon[@gordonbondon] for contributing to thi
=== `@Generated` annotation for Java/Kotlin codegen === `@Generated` annotation for Java/Kotlin codegen
Classes generated by the Java and Kotlin code generator can optionally receive new annotation called `Generated` (https://github.com/apple/pkl/pull/1075[#1075], https://github.com/apple/pkl/pull/1115[#1115]). Classes generated by the Java and Kotlin code generator can optionally recieve new annotation called `Generated` (https://github.com/apple/pkl/pull/1075[#1075], https://github.com/apple/pkl/pull/1115[#1115]).
This behavior is toggled with the `--generated-annotation` CLI flag, or the similarly named Gradle property. This behavior is toggled with the `--generated-annotation` CLI flag, or the similarly named Gradle property.
+2 -2
View File
@@ -1,6 +1,6 @@
= Pkl 0.31 Release Notes = Pkl 0.31 Release Notes
:version: 0.31 :version: 0.31
:version-minor: 0.31.1 :version-minor: 0.31.0
:release-date: February 26th, 2026 :release-date: February 26th, 2026
:version-next: 0.32 :version-next: 0.32
:version-next-date: July 2026 :version-next-date: July 2026
@@ -55,7 +55,7 @@ Value: new Person { name = "Bub Johnson" }
7 | passenger: Person(name.endsWith(lastName)) = new { name = "Bub Johnson" } 7 | passenger: Person(name.endsWith(lastName)) = new { name = "Bub Johnson" }
---- ----
Now, we know what the expectation is. Now, we know what the expecation actually is.
This type of diagram is also added to test facts. This type of diagram is also added to test facts.
When tests fail, Pkl emits a diagram of the expression, and the values produced. When tests fail, Pkl emits a diagram of the expression, and the values produced.
@@ -1,54 +0,0 @@
= Pkl 0.32.0 Release Notes
:version: 0.32
:version-minor: 0.32.0
:release-date: TBD
:version-next: 0.33
:version-next-date: TBD
include::partial$intro.adoc[]
== Highlights [small]#💖#
News you don't want to miss.
.XXX
[%collapsible]
====
XXX
====
== Noteworthy [small]#🎶#
Ready when you need them.
.XXX
[%collapsible]
====
XXX
====
== Breaking Changes [small]#💔#
Things to watch out for when upgrading.
.XXX
[%collapsible]
====
XXX
====
== Work In Progress [small]#🚆#
They missed the train but deserve a mention.
.XXX
[%collapsible]
====
XXX
====
== Contributors [small]#🙏#
We would like to thank the contributors to this release (in alphabetical order):
* XXX
@@ -1,41 +1,8 @@
= Changelog = Changelog
include::ROOT:partial$component-attributes.adoc[] include::ROOT:partial$component-attributes.adoc[]
[[release-0.32.0]]
== 0.32.0 (UNRELEASED)
[[release-0.31.1]]
== 0.31.1 (2026-03-26)
=== Breaking Changes [small]#💔#
* Allow nullable reads for custom/external resources (pr:https://github.com/apple/pkl/pull/1471[]).
This allows custom/external resources to produce `null` values for xref:language-reference:index.adoc#nullable-reads[nullable reads] (`read?`).
While this is a breaking change in behavior, it is currently not possible to exercise with versions of pkl-go or pkl-swift released prior to this change.
=== Fixes
* Fix typo in changelog and language reference (pr:https://github.com/apple/pkl/pull/1455[]).
* Fix bugs in `CommandSpecParser` (pr:https://github.com/apple/pkl/pull/1448[], pr:https://github.com/apple/pkl/pull/1449[]).
* Respect `--omit-project-settings` for all evaluator options (pr:https://github.com/apple/pkl/pull/1459[]).
* Fix SecurityManager check for HTTP(S) module URIs (pr:https://github.com/apple/pkl/pull/1463[]).
* Fix performance regression caused by activation of power assertion instrumentation during some union type checks (pr:https://github.com/apple/pkl/pull/1462[]).
* Fix module reflection when power assertion instrumentation is active (pr:https://github.com/apple/pkl/pull/1464[]).
* Prevent I/O when checking UNC paths against `--root-dir` (pr:https://github.com/apple/pkl/pull/1466[]).
* Prevent `--multiple-file-output-path` writes from following symlinks outside the target directory
(pr:https://github.com/apple/pkl/pull/1467[]).
=== Contributors ❤️
Thank you to all the contributors for this release!
* https://github.com/04cb[@04cb]
* https://github.com/HT154[@HT154]
* https://github.com/KushalP[@KushalP]
[[release-0.31.0]] [[release-0.31.0]]
== 0.31.0 (2026-02-26) == 0.31.0 (UNRELEASED)
xref:0.31.adoc[Release Notes] xref:0.31.adoc[Release Notes]
[[release-0.30.2]] [[release-0.30.2]]
@@ -2,7 +2,6 @@
The Pkl team aims to release a new version of Pkl in February, June, and October of each year. The Pkl team aims to release a new version of Pkl in February, June, and October of each year.
* xref:0.32.adoc[0.32 Release Notes]
* xref:0.31.adoc[0.31 Release Notes] * xref:0.31.adoc[0.31 Release Notes]
* xref:0.30.adoc[0.30 Release Notes] * xref:0.30.adoc[0.30 Release Notes]
* xref:0.29.adoc[0.29 Release Notes] * xref:0.29.adoc[0.29 Release Notes]
+7
View File
@@ -52,3 +52,10 @@ XXX
We would like to thank the contributors to this release (in alphabetical order): We would like to thank the contributors to this release (in alphabetical order):
* XXX * XXX
== Closed Radars [small]#🔒#
XXX Radars down, Inbox Zero in sight ...
[smaller]
. XXX (https://github.com/apple/pkl/issues/new[XXX])
-1
View File
@@ -41,7 +41,6 @@
* xref:ROOT:evolution-and-roadmap.adoc[Evolution and Roadmap] * xref:ROOT:evolution-and-roadmap.adoc[Evolution and Roadmap]
* xref:release-notes:index.adoc[Release Notes] * xref:release-notes:index.adoc[Release Notes]
** xref:release-notes:0.32.adoc[0.32 Release Notes]
** xref:release-notes:0.31.adoc[0.31 Release Notes] ** xref:release-notes:0.31.adoc[0.31 Release Notes]
** xref:release-notes:0.30.adoc[0.30 Release Notes] ** xref:release-notes:0.30.adoc[0.30 Release Notes]
** xref:release-notes:0.29.adoc[0.29 Release Notes] ** xref:release-notes:0.29.adoc[0.29 Release Notes]
+1 -1
View File
@@ -1,7 +1,7 @@
# suppress inspection "UnusedProperty" for whole file # suppress inspection "UnusedProperty" for whole file
group=org.pkl-lang group=org.pkl-lang
version=0.32.0 version=0.31.0
# google-java-format requires jdk.compiler exports # google-java-format requires jdk.compiler exports
org.gradle.jvmargs= \ org.gradle.jvmargs= \
-12
View File
@@ -1,12 +0,0 @@
#This file is generated by updateDaemonJvm
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/d4fd992c9557644e637ebe98263e0ae7/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/faa12903720d410b387cc69ccafb1a74/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/8e1d9ee5d0f13e442218f6884a306da1/redirect
toolchainVendor=ADOPTIUM
toolchainVersion=25
+40 -60
View File
@@ -3,67 +3,58 @@ assertj = "3.+"
checksumPlugin = "1.4.0" checksumPlugin = "1.4.0"
clikt = "5.+" clikt = "5.+"
commonMark = "0.+" commonMark = "0.+"
downloadTaskPlugin = "5.7.0" downloadTaskPlugin = "5.6.0"
errorProne = "2.48.0"
errorPronePlugin = "5.1.0"
geantyref = "1.+" geantyref = "1.+"
#noinspection UnusedVersionCatalogEntry googleJavaFormat = "1.25.2"
googleJavaFormat = "1.35.0"
# must not use `+` because used in download URL # must not use `+` because used in download URL
# 25.0.2 no longer supports macos-x64 # 23.1.x requires JDK 20+
graalVm = "25.0.1" graalVm = "25.0.0"
#noinspection UnusedVersionCatalogEntry #noinspection UnusedVersionCatalogEntry
graalVmJdkVersion = "25.0.1" graalVmJdkVersion = "25.0.0"
# slightly hacky but convenient place so we remember to update the checksum # slightly hacky but convenient place so we remember to update the checksum
#noinspection UnusedVersionCatalogEntry #noinspection UnusedVersionCatalogEntry
graalVmSha256-macos-x64 = "a3d895b4cd1c783badbd277ec70409806bd4102fca0d2a60dbaeb0bab41aec30" graalVmSha256-macos-x64 = "04278cf867d040e29dc71dd7727793f0ea67eb72adce8a35d04b87b57906778d"
#noinspection UnusedVersionCatalogEntry #noinspection UnusedVersionCatalogEntry
graalVmSha256-macos-aarch64 = "066339f24a8ab5c161548491a9400f7344e7761a1e46f8979e76c7ef11d5bc76" graalVmSha256-macos-aarch64 = "c446d5aaeda98660a4c14049d299e9fba72105a007df89f19d27cf3979d37158"
#noinspection UnusedVersionCatalogEntry #noinspection UnusedVersionCatalogEntry
graalVmSha256-linux-x64 = "01e39fe1a87f28b842a3e4e3b77be9b544dca3a58fa6e93b924a6106c8bac7fb" graalVmSha256-linux-x64 = "1862f2ce97387a303cae4c512cb21baf36fafd2457c3cbbc10d87db94b89d3dd"
#noinspection UnusedVersionCatalogEntry #noinspection UnusedVersionCatalogEntry
graalVmSha256-linux-aarch64 = "7aa0b9935a80e67f37c6025678393dbd123bb6f2226811decbc1a13093fc8ae2" graalVmSha256-linux-aarch64 = "6c3c8b7617006c5d174d9cf7d357ccfb4bae77a4df1294ee28084fcb6eea8921"
#noinspection UnusedVersionCatalogEntry #noinspection UnusedVersionCatalogEntry
graalVmSha256-windows-x64 = "fde83c5ceec2c75560c747ccd9f314f90e4cf5c5287416e67c4ce442e344ca27" graalVmSha256-windows-x64 = "33ef1d186b5c1e95465fcc97e637bc26e72d5f2250a8615b9c5d667ed5c17fd0"
# pklGraalVm.gradle.kts assumes this entry exists ideaExtPlugin = "1.1.9"
#noinspection UnusedVersionCatalogEntry intellijPlugin = "2.10.1"
graalVmSha256-windows-aarch64 = "unavailable" intellij = "2025.2.3"
ideaExtPlugin = "1.4.1"
javaPoet = "0.+" javaPoet = "0.+"
javaxInject = "1" javaxInject = "1"
jansi = "2.+"
jimfs = "1.+" jimfs = "1.+"
jline = "4.+" # later versions don't work with native image
# (at least not without additional configuration; tested with 3.25.1 and 3.27.1)
jline = "3.23.0"
jmh = "1.+" jmh = "1.+"
jmhPlugin = "0.7.3" jmhPlugin = "0.7.2"
jspecify = "1.0.0"
jsr305 = "3.+" jsr305 = "3.+"
junit = "6.+" junit = "5.+"
kotlinBom = "2.2.21" junitPlatform = "1.+"
#noinspection UnusedVersionCatalogEntry kotlin = "2.2.20"
kotlinTarget = "2.2"
kotlinToolchain = "2.3.20"
# 1.7+ generates much more verbose code # 1.7+ generates much more verbose code
kotlinPoet = "1.6.+" kotlinPoet = "1.6.+"
kotlinxHtml = "0.12.0" kotlinxHtml = "0.11.0"
# 1.8.1 is the last version that supports Kotlin 2.1, kotlinxSerialization = "1.8.0"
# which is the language level currently set in pklKotlinLibrary.
kotlinxSerialization = "1.8.1"
kotlinxCoroutines = "1.+" kotlinxCoroutines = "1.+"
#noinspection UnusedVersionCatalogEntry ktfmt = "0.53"
ktfmt = "0.62"
# replaces nuValidator's log4j dependency # replaces nuValidator's log4j dependency
# 2.17.1 is the last version compatible with nuValidator # something related to log4j-1.2-api is apparently broken in 2.17.2
log4j = "2.17.1" log4j = "2.17.1"
msgpack = "0.9.11" msgpack = "0.9.8"
nexusPublishPlugin = "2.0.0" nexusPublishPlugin = "2.0.0"
nullaway = "0.13.1" nuValidator = "20.+"
nullawayPlugin = "3.0.0"
nuValidator = "26.+"
paguro = "3.+" paguro = "3.+"
shadowPlugin = "9.+" shadowPlugin = "9.+"
slf4j = "2.+" slf4j = "1.+"
snakeYaml = "2.+" snakeYaml = "2.+"
spotlessPlugin = "8.4.0" spotlessPlugin = "6.25.0"
wiremock = "3.+" wiremock = "3.+"
[libraries] # ordered alphabetically [libraries] # ordered alphabetically
@@ -73,34 +64,29 @@ cliktMarkdown = { group = "com.github.ajalt.clikt", name = "clikt-markdown", ver
commonMark = { group = "org.commonmark", name = "commonmark", version.ref = "commonMark" } commonMark = { group = "org.commonmark", name = "commonmark", version.ref = "commonMark" }
commonMarkTables = { group = "org.commonmark", name = "commonmark-ext-gfm-tables", version.ref = "commonMark" } commonMarkTables = { group = "org.commonmark", name = "commonmark-ext-gfm-tables", version.ref = "commonMark" }
downloadTaskPlugin = { group = "de.undercouch", name = "gradle-download-task", version.ref = "downloadTaskPlugin" } downloadTaskPlugin = { group = "de.undercouch", name = "gradle-download-task", version.ref = "downloadTaskPlugin" }
#noinspection UnusedVersionCatalogEntry
errorProne = { group = "com.google.errorprone", name = "error_prone_core", version.ref = "errorProne" }
errorPronePlugin = { group = "net.ltgt.gradle", name = "gradle-errorprone-plugin", version.ref = "errorPronePlugin" }
geantyref = { group = "io.leangen.geantyref", name = "geantyref", version.ref = "geantyref" } geantyref = { group = "io.leangen.geantyref", name = "geantyref", version.ref = "geantyref" }
graalCompiler = { group = "org.graalvm.compiler", name = "compiler", version.ref = "graalVm" } graalCompiler = { group = "org.graalvm.compiler", name = "compiler", version.ref = "graalVm" }
graalSdk = { group = "org.graalvm.sdk", name = "graal-sdk", version.ref = "graalVm" } graalSdk = { group = "org.graalvm.sdk", name = "graal-sdk", version.ref = "graalVm" }
graalJs = { group = "org.graalvm.js", name = "js", version.ref = "graalVm" } graalJs = { group = "org.graalvm.js", name = "js", version.ref = "graalVm" }
#noinspection UnusedVersionCatalogEntry
intellij = { group = "com.jetbrains.intellij.idea", name = "ideaIC", version.ref = "intellij" }
javaPoet = { group = "com.palantir.javapoet", name = "javapoet", version.ref = "javaPoet" } javaPoet = { group = "com.palantir.javapoet", name = "javapoet", version.ref = "javaPoet" }
javaxInject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" } javaxInject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" }
jansi = { group = "org.fusesource.jansi", name = "jansi", version.ref = "jansi" }
jimfs = { group = "com.google.jimfs", name = "jimfs", version.ref = "jimfs" } jimfs = { group = "com.google.jimfs", name = "jimfs", version.ref = "jimfs" }
jlineReader = { group = "org.jline", name = "jline-reader", version.ref = "jline" } jlineReader = { group = "org.jline", name = "jline-reader", version.ref = "jline" }
jlineTerminal = { group = "org.jline", name = "jline-terminal", version.ref = "jline" } jlineTerminal = { group = "org.jline", name = "jline-terminal", version.ref = "jline" }
jlineTerminalJni = { group = "org.jline", name = "jline-terminal-jni", version.ref = "jline" } jlineTerminalJansi = { group = "org.jline", name = "jline-terminal-jansi", version.ref = "jline" }
#noinspection UnusedVersionCatalogEntry
jspecify = { group = "org.jspecify", name = "jspecify", version.ref = "jspecify" }
jsr305 = { group = "com.google.code.findbugs", name = "jsr305", version.ref = "jsr305" } jsr305 = { group = "com.google.code.findbugs", name = "jsr305", version.ref = "jsr305" }
junitApi = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" } junitApi = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" }
junitEngine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" } junitEngine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" }
junitParams = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" } junitParams = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" }
#noinspection UnusedVersionCatalogEntry junitLauncher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junitPlatform" }
junitLauncher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junit" } kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
#noinspection UnusedVersionCatalogEntry
kotlinBom = { group = "org.jetbrains.kotlin", name = "kotlin-bom", version.ref = "kotlinBom" }
kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlinToolchain" }
kotlinPoet = { group = "com.squareup", name = "kotlinpoet", version.ref = "kotlinPoet" } kotlinPoet = { group = "com.squareup", name = "kotlinpoet", version.ref = "kotlinPoet" }
kotlinReflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlinBom" } kotlinReflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
kotlinScripting = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlinBom" } kotlinScripting = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlin" }
kotlinStdLib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlinBom" } kotlinStdLib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" }
kotlinxHtml = { group = "org.jetbrains.kotlinx", name = "kotlinx-html-jvm", version.ref = "kotlinxHtml" } kotlinxHtml = { group = "org.jetbrains.kotlinx", name = "kotlinx-html-jvm", version.ref = "kotlinxHtml" }
kotlinxSerializationJson = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" } kotlinxSerializationJson = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
kotlinxCoroutinesCore = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } kotlinxCoroutinesCore = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
@@ -109,9 +95,6 @@ log4j12Api = { group = "org.apache.logging.log4j", name = "log4j-1.2-api", versi
msgpack = { group = "org.msgpack", name = "msgpack-core", version.ref = "msgpack" } msgpack = { group = "org.msgpack", name = "msgpack-core", version.ref = "msgpack" }
#noinspection UnusedVersionCatalogEntry #noinspection UnusedVersionCatalogEntry
nuValidator = { group = "nu.validator", name = "validator", version.ref = "nuValidator" } nuValidator = { group = "nu.validator", name = "validator", version.ref = "nuValidator" }
#noinspection UnusedVersionCatalogEntry
nullaway = { group = "com.uber.nullaway", name = "nullaway", version.ref = "nullaway" }
nullawayPlugin = { group = "net.ltgt.gradle", name = "gradle-nullaway-plugin", version.ref = "nullawayPlugin" }
# to be replaced with https://github.com/usethesource/capsule or https://github.com/lacuna/bifurcan # to be replaced with https://github.com/usethesource/capsule or https://github.com/lacuna/bifurcan
paguro = { group = "org.organicdesign", name = "Paguro", version.ref = "paguro" } paguro = { group = "org.organicdesign", name = "Paguro", version.ref = "paguro" }
pklConfigJavaAll025 = { group = "org.pkl-lang", name = "pkl-config-java-all", version = "0.25.0" } pklConfigJavaAll025 = { group = "org.pkl-lang", name = "pkl-config-java-all", version = "0.25.0" }
@@ -129,12 +112,9 @@ wiremock = { group = "org.wiremock", name = "wiremock", version.ref = "wiremock"
[plugins] # ordered alphabetically [plugins] # ordered alphabetically
checksum = { id = "org.gradle.crypto.checksum", version.ref = "checksumPlugin" } checksum = { id = "org.gradle.crypto.checksum", version.ref = "checksumPlugin" }
#noinspection UnusedVersionCatalogEntry
errorProne = { id = "net.ltgt.errorprone", version.ref = "errorPronePlugin" }
ideaExt = { id = "org.jetbrains.gradle.plugin.idea-ext", version.ref = "ideaExtPlugin" } ideaExt = { id = "org.jetbrains.gradle.plugin.idea-ext", version.ref = "ideaExtPlugin" }
jmh = { id = "me.champeau.jmh", version.ref = "jmhPlugin" } jmh = { id = "me.champeau.jmh", version.ref = "jmhPlugin" }
kotlinxSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinToolchain" } kotlinxSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublishPlugin" } nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublishPlugin" }
#noinspection UnusedVersionCatalogEntry
nullaway = { id = "net.ltgt.nullaway", version.ref = "nullawayPlugin" }
shadow = { id = "com.gradleup.shadow", version.ref = "shadowPlugin" } shadow = { id = "com.gradleup.shadow", version.ref = "shadowPlugin" }
intellij = { id = "org.jetbrains.intellij.platform", version.ref = "intellijPlugin" }
Binary file not shown.
+2 -2
View File
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionSha256Sum=2ab2958f2a1e51120c326cad6f385153bb11ee93b3c216c5fccebfdfbb7ec6cb distributionSha256Sum=a17ddd85a26b6a7f5ddb71ff8b05fc5104c0202c6e64782429790c933686c806
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
Vendored
+5 -2
View File
@@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# #
# Copyright © 2015 the original authors. # Copyright © 2015-2021 the original authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -57,7 +57,7 @@
# Darwin, MinGW, and NonStop. # Darwin, MinGW, and NonStop.
# #
# (3) This script is generated from the Groovy template # (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project. # within the Gradle project.
# #
# You can find Gradle at https://github.com/gradle/gradle/. # You can find Gradle at https://github.com/gradle/gradle/.
@@ -114,6 +114,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;; NONSTOP* ) nonstop=true ;;
esac esac
CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM. # Determine the Java command to use to start the JVM.
@@ -171,6 +172,7 @@ fi
# For Cygwin or MSYS, switch paths to Windows format before running java # For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" ) JAVACMD=$( cygpath --unix "$JAVACMD" )
@@ -210,6 +212,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \ set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \ "-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@" "$@"
Vendored
+2 -1
View File
@@ -70,10 +70,11 @@ goto fail
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell
+3 -3
View File
@@ -2,15 +2,15 @@
"catalogs": {}, "catalogs": {},
"aliases": { "aliases": {
"pkl": { "pkl": {
"script-ref": "org.pkl-lang:pkl-cli-java:0.31.1", "script-ref": "org.pkl-lang:pkl-cli-java:0.31.0",
"java-agents": [] "java-agents": []
}, },
"pkl-codegen-java": { "pkl-codegen-java": {
"script-ref": "org.pkl-lang:pkl-codegen-java:0.31.1", "script-ref": "org.pkl-lang:pkl-codegen-java:0.31.0",
"java-agents": [] "java-agents": []
}, },
"pkl-codegen-kotlin": { "pkl-codegen-kotlin": {
"script-ref": "org.pkl-lang:pkl-codegen-kotlin:0.31.1", "script-ref": "org.pkl-lang:pkl-codegen-kotlin:0.31.0",
"java-agents": [] "java-agents": []
} }
}, },
-4
View File
@@ -1,4 +0,0 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
empty=classpath
+121 -131
View File
@@ -1,155 +1,145 @@
# This is a Gradle generated file for dependency locking. # This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised. # Manual edits can break the build and are not advised.
# This file is expected to be part of source control. # This file is expected to be part of source control.
com.ethlo.time:itu:1.14.0=testCompileClasspath,testRuntimeClasspath com.ethlo.time:itu:1.10.3=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.fasterxml.jackson.core:jackson-annotations:2.20=testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-annotations:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.fasterxml.jackson.core:jackson-core:2.20.1=testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-core:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.fasterxml.jackson.core:jackson-databind:2.20.1=testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.core:jackson-databind:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.20.1=testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.20.1=testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.fasterxml.jackson:jackson-bom:2.20.1=testCompileClasspath,testRuntimeClasspath com.fasterxml.jackson:jackson-bom:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.clikt:clikt-core-jvm:5.1.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-core:5.1.0=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-core:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.clikt:clikt-jvm:5.1.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-markdown-jvm:5.1.0=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-markdown:5.1.0=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-markdown:5.0.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt:5.1.0=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.mordant:mordant-core-jvm:3.0.2=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-core-jvm:3.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-core:3.0.2=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-core:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.2=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.2=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-jna:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm:3.0.2=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.2=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-markdown:3.0.2=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-markdown:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant:3.0.2=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
com.github.jknack:handlebars-helpers:4.3.1=testCompileClasspath,testRuntimeClasspath com.github.jknack:handlebars-helpers:4.3.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.jknack:handlebars:4.3.1=testCompileClasspath,testRuntimeClasspath com.github.jknack:handlebars:4.3.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
com.google.errorprone:error_prone_annotations:2.41.0=testCompileClasspath,testRuntimeClasspath com.google.errorprone:error_prone_annotations:2.36.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.google.guava:failureaccess:1.0.3=testCompileClasspath,testRuntimeClasspath com.google.guava:failureaccess:1.0.3=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.google.guava:guava:33.5.0-jre=testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.4.8-jre=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.google.j2objc:j2objc-annotations:3.1=testCompileClasspath,testRuntimeClasspath com.google.j2objc:j2objc-annotations:3.0.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.jayway.jsonpath:json-path:2.10.0=testCompileClasspath,testRuntimeClasspath com.jayway.jsonpath:json-path:2.9.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.networknt:json-schema-validator:1.5.9=testCompileClasspath,testRuntimeClasspath com.networknt:json-schema-validator:1.5.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
commons-fileupload:commons-fileupload:1.6.0=testCompileClasspath,testRuntimeClasspath commons-fileupload:commons-fileupload:1.6.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
commons-io:commons-io:2.19.0=testCompileClasspath,testRuntimeClasspath commons-io:commons-io:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
net.javacrumbs.json-unit:json-unit-core:2.40.1=testCompileClasspath,testRuntimeClasspath net.javacrumbs.json-unit:json-unit-core:2.40.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
net.minidev:accessors-smart:2.6.0=testRuntimeClasspath net.minidev:accessors-smart:2.5.0=testRuntimeClasspath
net.minidev:json-smart:2.6.0=testRuntimeClasspath net.minidev:json-smart:2.5.0=testRuntimeClasspath
net.sf.jopt-simple:jopt-simple:5.0.4=testCompileClasspath,testRuntimeClasspath net.sf.jopt-simple:jopt-simple:5.0.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.apache.httpcomponents.client5:httpclient5:5.5.1=testCompileClasspath,testRuntimeClasspath org.apache.httpcomponents.client5:httpclient5:5.5=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.apache.httpcomponents.core5:httpcore5-h2:5.3.6=testCompileClasspath,testRuntimeClasspath org.apache.httpcomponents.core5:httpcore5-h2:5.3.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.apache.httpcomponents.core5:httpcore5:5.3.6=testCompileClasspath,testRuntimeClasspath org.apache.httpcomponents.core5:httpcore5:5.3.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.eclipse.jetty.http2:http2-common:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:http2-common:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty.http2:http2-hpack:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:http2-hpack:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty.http2:http2-server:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:http2-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-client:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-client:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-java-client:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-java-server:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-server:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-bom:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-bom:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-client:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-client:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-http:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-http:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-io:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-io:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-proxy:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-proxy:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-security:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-security:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-server:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-servlet:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-servlet:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-servlets:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-servlets:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-util:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-util:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-webapp:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-webapp:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.eclipse.jetty:jetty-xml:11.0.26=testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-xml:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.polyglot:polyglot:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.fusesource.jansi:jansi:2.4.2=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.sdk:collections:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.polyglot:polyglot:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.sdk:graal-sdk:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:collections:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.sdk:jniutils:25.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.sdk:graal-sdk:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:nativeimage:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.sdk:jniutils:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.sdk:word:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.sdk:nativeimage:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.truffle:truffle-api:25.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.sdk:word:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.truffle:truffle-compiler:25.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.truffle:truffle-api:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.truffle:truffle-runtime:25.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.truffle:truffle-compiler:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.hamcrest:hamcrest-core:2.2=testCompileClasspath,testRuntimeClasspath org.graalvm.truffle:truffle-runtime:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.hamcrest:hamcrest:2.2=testCompileClasspath,testRuntimeClasspath org.hamcrest:hamcrest-core:2.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.hamcrest:hamcrest:2.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,nativeImageClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=apiDependenciesMetadata,swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,nativeImageClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,nativeImageClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jetbrains:markdown-jvm:0.7.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath org.jetbrains:markdown-jvm:0.7.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
org.jetbrains:markdown:0.7.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath org.jetbrains:markdown:0.7.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
org.jline:jline-native:4.0.12=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jline:jline-native:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jline:jline-reader:4.0.12=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jline:jline-reader:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jline:jline-terminal-jni:4.0.12=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jline:jline-terminal-jansi:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jline:jline-terminal:4.0.12=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jline:jline-terminal:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jspecify:jspecify:1.0.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.msgpack:msgpack-core:0.9.11=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.organicdesign:Paguro:3.10.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath org.organicdesign:Paguro:3.10.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.17=testCompileClasspath,testRuntimeClasspath org.slf4j:slf4j-api:2.0.17=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.10=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath org.snakeyaml:snakeyaml-engine:2.10=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
org.wiremock:wiremock:3.13.2=testCompileClasspath,testRuntimeClasspath org.wiremock:wiremock:3.13.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.xmlunit:xmlunit-core:2.11.0=testCompileClasspath,testRuntimeClasspath org.xmlunit:xmlunit-core:2.10.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.xmlunit:xmlunit-legacy:2.11.0=testCompileClasspath,testRuntimeClasspath org.xmlunit:xmlunit-legacy:2.10.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.xmlunit:xmlunit-placeholders:2.11.0=testCompileClasspath,testRuntimeClasspath org.xmlunit:xmlunit-placeholders:2.10.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.yaml:snakeyaml:2.4=testCompileClasspath,testRuntimeClasspath org.yaml:snakeyaml:2.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
empty=annotationProcessor,implementationDependenciesMetadata,intransitiveDependenciesMetadata,javaExecutable,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,stagedAlpineLinuxAmd64Executable,stagedLinuxAarch64Executable,stagedLinuxAmd64Executable,stagedMacAarch64Executable,stagedMacAmd64Executable,stagedWindowsAmd64Executable,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions empty=annotationProcessor,intransitiveDependenciesMetadata,javaExecutable,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,stagedAlpineLinuxAmd64Executable,stagedLinuxAarch64Executable,stagedLinuxAmd64Executable,stagedMacAarch64Executable,stagedMacAmd64Executable,stagedWindowsAmd64Executable,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
+3 -2
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -56,9 +56,10 @@ dependencies {
api(projects.pklCommonsCli) api(projects.pklCommonsCli)
implementation(projects.pklCommons) implementation(projects.pklCommons)
implementation(libs.jansi)
implementation(libs.jlineReader) implementation(libs.jlineReader)
implementation(libs.jlineTerminal) implementation(libs.jlineTerminal)
implementation(libs.jlineTerminalJni) implementation(libs.jlineTerminalJansi)
implementation(projects.pklServer) implementation(projects.pklServer)
implementation(projects.pklFormatter) implementation(projects.pklFormatter)
implementation(libs.clikt) implementation(libs.clikt)
@@ -240,7 +240,8 @@ constructor(
for ((pathSpec, fileOutput) in output) { for ((pathSpec, fileOutput) in output) {
checkPathSpec(pathSpec) checkPathSpec(pathSpec)
val (realPath, resolvedPath) = realOutputDir.resolveRealPath(Path.of(pathSpec)) val resolvedPath = realOutputDir.resolve(pathSpec).normalize()
val realPath = if (resolvedPath.exists()) resolvedPath.toRealPath() else resolvedPath
if (!realPath.startsWith(realOutputDir)) { if (!realPath.startsWith(realOutputDir)) {
throw CliException( throw CliException(
"Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is outside output directory `$realOutputDir`." "Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is outside output directory `$realOutputDir`."
@@ -268,22 +269,4 @@ constructor(
} }
} }
} }
/**
* Resolves [rel] against this Path name-by-name. At each step, the real path is resolved if the
* file exists. The normalized real path and normalized resolved path are returned. This has a
* similar effect to `this.resolve(rel).toRealPath().normalize()`, but the real paths account for
* symlinks in the middle of the relative path so the full path need not exist.
*/
private fun Path.resolveRealPath(rel: Path): Pair<Path, Path> {
assert(!rel.isAbsolute)
var resolved = this
var real = this
for (name in rel) {
resolved = resolved.resolve(name)
real = real.resolve(name)
if (real.exists()) real = real.toRealPath()
}
return real.normalize() to resolved.normalize()
}
} }
@@ -47,7 +47,7 @@ constructor(
private val errWriter: Writer = System.err.writer(), private val errWriter: Writer = System.err.writer(),
) : CliCommand(CliBaseOptions()) { ) : CliCommand(CliBaseOptions()) {
private fun format(contents: String): String { private fun format(contents: String): String {
return Formatter(grammarVersion).format(contents) return Formatter().format(contents, grammarVersion)
} }
private fun writeErrLine(error: String) { private fun writeErrLine(error: String) {
@@ -20,6 +20,7 @@ import java.net.URI
import java.nio.file.Path import java.nio.file.Path
import java.util.regex.Pattern import java.util.regex.Pattern
import kotlin.io.path.deleteIfExists import kotlin.io.path.deleteIfExists
import org.fusesource.jansi.Ansi
import org.jline.reader.EndOfFileException import org.jline.reader.EndOfFileException
import org.jline.reader.Highlighter import org.jline.reader.Highlighter
import org.jline.reader.LineReader import org.jline.reader.LineReader
@@ -51,7 +52,7 @@ class PklHighlighter : Highlighter {
} }
internal class Repl(workingDir: Path, private val server: ReplServer, private val color: Boolean) { internal class Repl(workingDir: Path, private val server: ReplServer, private val color: Boolean) {
private val terminal = TerminalBuilder.builder().apply { jni(true) }.build() private val terminal = TerminalBuilder.builder().apply { jansi(true) }.build()
private val history = DefaultHistory() private val history = DefaultHistory()
private val reader = private val reader =
LineReaderBuilder.builder() LineReaderBuilder.builder()
@@ -248,20 +249,14 @@ internal class Repl(workingDir: Path, private val server: ReplServer, private va
} }
private fun highlight(str: String): String { private fun highlight(str: String): String {
// Inserting ANSI codes into a string that may already contain ANSI codes is problematic. val ansi = Ansi.ansi()
// This code preserves existing behavior but should eventually be removed. var normal = true
val builder = StringBuilder()
var bold = false
for (part in str.split("`", "```")) { for (part in str.split("`", "```")) {
if (bold) { ansi.a(part)
builder.append("\u001B[1m") normal = !normal
builder.append(part) if (!normal) ansi.bold() else ansi.boldOff()
builder.append("\u001B[22m")
} else {
builder.append(part)
}
bold = !bold
} }
return builder.toString() ansi.reset()
return ansi.toString()
} }
} }
@@ -931,37 +931,6 @@ result = someLib.x
.hasMessageContaining("which is outside output directory") .hasMessageContaining("which is outside output directory")
} }
@Test
@DisabledOnOs(OS.WINDOWS)
fun `multiple file output throws if files are written outside the base path via symlink`() {
val output = tempDir.resolve(".output").createDirectories()
val outside = tempDir.resolve("outside").createDirectories()
output.resolve("outside").createSymbolicLinkPointingTo(outside)
val moduleUri =
writePklFile(
"test.pkl",
"""
output {
files {
["outside/foo.txt"] {
text = "bar"
}
}
}
"""
.trimIndent(),
)
val options =
CliEvaluatorOptions(
CliBaseOptions(sourceModules = listOf(moduleUri), workingDir = tempDir),
multipleFileOutputPath = ".output",
)
assertThatCode { evalToConsole(options) }
.hasMessageStartingWith("Output file conflict:")
.hasMessageContaining("which is outside output directory")
}
@Test @Test
fun `multiple file output throws if file path is a directory`() { fun `multiple file output throws if file path is a directory`() {
tempDir.resolve(".output/myDir").createDirectories() tempDir.resolve(".output/myDir").createDirectories()
+60 -72
View File
@@ -1,97 +1,85 @@
# This is a Gradle generated file for dependency locking. # This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised. # Manual edits can break the build and are not advised.
# This file is expected to be part of source control. # This file is expected to be part of source control.
com.github.ajalt.clikt:clikt-core-jvm:5.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-core:5.1.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-core:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.clikt:clikt-jvm:5.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-markdown-jvm:5.1.0=runtimeClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-markdown:5.1.0=runtimeClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-markdown:5.0.3=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt:5.1.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.mordant:mordant-core-jvm:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-core-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-core:3.0.2=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-core:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-jna:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-markdown:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-markdown:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant:3.0.2=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
com.palantir.javapoet:javapoet:0.14.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.palantir.javapoet:javapoet:0.7.0=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.graalvm.polyglot:polyglot:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.polyglot:polyglot:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:collections:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:collections:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:graal-sdk:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:graal-sdk:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:nativeimage:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:nativeimage:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:word:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:word:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.truffle:truffle-api:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.truffle:truffle-api:25.0.0=runtimeClasspath,testRuntimeClasspath
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=apiDependenciesMetadata,swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath,testRuntimeClasspath org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath,testRuntimeClasspath
org.jetbrains:markdown:0.7.3=runtimeClasspath,testRuntimeClasspath org.jetbrains:markdown:0.7.3=runtimeClasspath,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath
org.msgpack:msgpack-core:0.9.11=runtimeClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.10=runtimeClasspath,testRuntimeClasspath org.snakeyaml:snakeyaml-engine:2.10=runtimeClasspath,testRuntimeClasspath
empty=annotationProcessor,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
@@ -82,7 +82,7 @@ data class JavaCodeGeneratorOptions(
* *
* The specified annotation type must have a [java.lang.annotation.Target] of * The specified annotation type must have a [java.lang.annotation.Target] of
* [java.lang.annotation.ElementType.TYPE_USE] or the generated code may not compile. If set to * [java.lang.annotation.ElementType.TYPE_USE] or the generated code may not compile. If set to
* `null`, `org.pkl.config.java.mapper.NonNull` will be used. * `null`, [org.pkl.config.java.mapper.NonNull] will be used.
*/ */
val nonNullAnnotation: String? = null, val nonNullAnnotation: String? = null,
@@ -105,7 +105,7 @@ class JavaCodeGenerator(
) { ) {
companion object { companion object {
private val OBJECT = ClassName.get(Any::class.java) private val OBJECT = ClassName.get(Object::class.java)
private val STRING = ClassName.get(String::class.java) private val STRING = ClassName.get(String::class.java)
private val DURATION = ClassName.get(Duration::class.java) private val DURATION = ClassName.get(Duration::class.java)
private val DURATION_UNIT = ClassName.get(DurationUnit::class.java) private val DURATION_UNIT = ClassName.get(DurationUnit::class.java)
@@ -295,7 +295,7 @@ class JavaCodeGenerator(
MethodSpec.methodBuilder("equals") MethodSpec.methodBuilder("equals")
.addModifiers(Modifier.PUBLIC) .addModifiers(Modifier.PUBLIC)
.addAnnotation(Override::class.java) .addAnnotation(Override::class.java)
.addParameter(Any::class.java, "obj") .addParameter(Object::class.java, "obj")
.returns(Boolean::class.java) .returns(Boolean::class.java)
.addStatement("if (this == obj) return true") .addStatement("if (this == obj) return true")
.addStatement("if (obj == null) return false") .addStatement("if (obj == null) return false")
@@ -418,7 +418,7 @@ class JavaCodeGenerator(
val hasJavadoc = val hasJavadoc =
docComment != null && codegenOptions.generateJavadoc && !codegenOptions.generateGetters docComment != null && codegenOptions.generateJavadoc && !codegenOptions.generateGetters
if (hasJavadoc) { if (hasJavadoc) {
builder.addJavadoc(renderAsJavadoc(docComment)) builder.addJavadoc(renderAsJavadoc(docComment!!))
} }
if (codegenOptions.generateGetters) { if (codegenOptions.generateGetters) {
@@ -466,7 +466,7 @@ class JavaCodeGenerator(
val docComment = property.docComment val docComment = property.docComment
val hasJavadoc = docComment != null && codegenOptions.generateJavadoc val hasJavadoc = docComment != null && codegenOptions.generateJavadoc
if (hasJavadoc) { if (hasJavadoc) {
builder.addJavadoc(renderAsJavadoc(docComment)) builder.addJavadoc(renderAsJavadoc(docComment!!))
} }
generateDeprecation( generateDeprecation(
@@ -583,7 +583,7 @@ class JavaCodeGenerator(
val docComment = pClass.docComment val docComment = pClass.docComment
val hasJavadoc = docComment != null && codegenOptions.generateJavadoc val hasJavadoc = docComment != null && codegenOptions.generateJavadoc
if (hasJavadoc) { if (hasJavadoc) {
builder.addJavadoc(renderAsJavadoc(docComment)) builder.addJavadoc(renderAsJavadoc(docComment!!))
} }
generateDeprecation( generateDeprecation(
@@ -707,7 +707,7 @@ class JavaCodeGenerator(
.addModifiers(Modifier.STATIC) .addModifiers(Modifier.STATIC)
.addParameter(StringBuilder::class.java, "builder") .addParameter(StringBuilder::class.java, "builder")
.addParameter(String::class.java, "name") .addParameter(String::class.java, "name")
.addParameter(Any::class.java, "value") .addParameter(Object::class.java, "value")
.addStatement("builder.append(\"\\n \").append(name).append(\" = \")") .addStatement("builder.append(\"\\n \").append(name).append(\" = \")")
.addStatement( .addStatement(
"\$T lines = \$T.toString(value).split(\"\\n\")", "\$T lines = \$T.toString(value).split(\"\\n\")",
+62 -78
View File
@@ -1,102 +1,86 @@
# This is a Gradle generated file for dependency locking. # This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised. # Manual edits can break the build and are not advised.
# This file is expected to be part of source control. # This file is expected to be part of source control.
com.github.ajalt.clikt:clikt-core-jvm:5.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-core:5.1.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-core:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.clikt:clikt-jvm:5.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-markdown-jvm:5.1.0=runtimeClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-markdown:5.1.0=runtimeClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-markdown:5.0.3=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt:5.1.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.mordant:mordant-core-jvm:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-core-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-core:3.0.2=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-core:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-jna:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-markdown:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-markdown:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant:3.0.2=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
com.squareup:kotlinpoet:1.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.squareup:kotlinpoet:1.6.0=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.graalvm.polyglot:polyglot:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.polyglot:polyglot:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:collections:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:collections:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:graal-sdk:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:graal-sdk:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:nativeimage:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:nativeimage:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:word:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:word:25.0.0=runtimeClasspath,testRuntimeClasspath
org.graalvm.truffle:truffle-api:25.0.1=runtimeClasspath,testRuntimeClasspath org.graalvm.truffle:truffle-api:25.0.0=runtimeClasspath,testRuntimeClasspath
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable,testRuntimeClasspath org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-reflect:2.2.21=compileClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable,testRuntimeClasspath org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-common:2.2.21=testRuntimeClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jsr223:2.2.20=testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.21=testRuntimeClasspath org.jetbrains.kotlin:kotlin-scripting-jvm-host:2.2.20=testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.21=testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jsr223:2.2.21=testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm-host:2.2.21=testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.21=testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=apiDependenciesMetadata,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath,testRuntimeClasspath org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath,testRuntimeClasspath
org.jetbrains:markdown:0.7.3=runtimeClasspath,testRuntimeClasspath org.jetbrains:markdown:0.7.3=runtimeClasspath,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath
org.msgpack:msgpack-core:0.9.11=runtimeClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.10=runtimeClasspath,testRuntimeClasspath org.snakeyaml:snakeyaml-engine:2.10=runtimeClasspath,testRuntimeClasspath
empty=annotationProcessor,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
+73 -85
View File
@@ -1,108 +1,96 @@
# This is a Gradle generated file for dependency locking. # This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised. # Manual edits can break the build and are not advised.
# This file is expected to be part of source control. # This file is expected to be part of source control.
com.github.ajalt.clikt:clikt-core-jvm:5.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-core:5.1.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-core:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.clikt:clikt-jvm:5.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-markdown-jvm:5.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.clikt:clikt-markdown:5.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt-markdown:5.0.3=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.clikt:clikt:5.1.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.clikt:clikt:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.mordant:mordant-core-jvm:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-core-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-core:3.0.2=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-core:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm-jna:3.0.2=runtimeClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-jvm:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
com.github.ajalt.mordant:mordant-markdown:3.0.2=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant-markdown:3.0.1=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ajalt.mordant:mordant:3.0.2=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath com.github.ajalt.mordant:mordant:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.graalvm.compiler:compiler:25.0.1=svmClasspath org.graalvm.compiler:compiler:25.0.0=svmClasspath
org.graalvm.espresso:espresso-svm:25.0.1=svmClasspath org.graalvm.espresso:espresso-svm:25.0.0=svmClasspath
org.graalvm.nativeimage:native-image-base:25.0.1=svmClasspath org.graalvm.nativeimage:native-image-base:25.0.0=svmClasspath
org.graalvm.nativeimage:objectfile:25.0.1=svmClasspath org.graalvm.nativeimage:objectfile:25.0.0=svmClasspath
org.graalvm.nativeimage:pointsto:25.0.1=svmClasspath org.graalvm.nativeimage:pointsto:25.0.0=svmClasspath
org.graalvm.nativeimage:svm-capnproto-runtime:25.0.1=svmClasspath org.graalvm.nativeimage:svm-capnproto-runtime:25.0.0=svmClasspath
org.graalvm.nativeimage:svm-configure:25.0.1=svmClasspath org.graalvm.nativeimage:svm-configure:25.0.0=svmClasspath
org.graalvm.nativeimage:svm:25.0.1=svmClasspath org.graalvm.nativeimage:svm:25.0.0=svmClasspath
org.graalvm.nativeimage:truffle-runtime-svm:25.0.1=svmClasspath org.graalvm.nativeimage:truffle-runtime-svm:25.0.0=svmClasspath
org.graalvm.polyglot:polyglot:25.0.1=runtimeClasspath,svmClasspath,testRuntimeClasspath org.graalvm.polyglot:polyglot:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
org.graalvm.sdk:collections:25.0.1=runtimeClasspath,svmClasspath,testRuntimeClasspath org.graalvm.sdk:collections:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
org.graalvm.sdk:graal-sdk:25.0.1=runtimeClasspath,svmClasspath,testRuntimeClasspath org.graalvm.sdk:graal-sdk:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
org.graalvm.sdk:jniutils:25.0.1=svmClasspath org.graalvm.sdk:jniutils:25.0.0=svmClasspath
org.graalvm.sdk:nativeimage-libgraal:25.0.1=svmClasspath org.graalvm.sdk:nativeimage-libgraal:25.0.0=svmClasspath
org.graalvm.sdk:nativeimage:25.0.1=runtimeClasspath,svmClasspath,testRuntimeClasspath org.graalvm.sdk:nativeimage:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
org.graalvm.sdk:word:25.0.1=runtimeClasspath,svmClasspath,testRuntimeClasspath org.graalvm.sdk:word:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
org.graalvm.truffle:truffle-api:25.0.1=runtimeClasspath,svmClasspath,testRuntimeClasspath org.graalvm.truffle:truffle-api:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
org.graalvm.truffle:truffle-compiler:25.0.1=svmClasspath org.graalvm.truffle:truffle-compiler:25.0.0=svmClasspath
org.graalvm.truffle:truffle-runtime:25.0.1=svmClasspath org.graalvm.truffle:truffle-runtime:25.0.0=svmClasspath
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,runtimeClasspath,svmClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=apiDependenciesMetadata,swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath,testRuntimeClasspath org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath,testRuntimeClasspath
org.jetbrains:markdown:0.7.3=runtimeClasspath,testRuntimeClasspath org.jetbrains:markdown:0.7.3=implementationDependenciesMetadata,runtimeClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=runtimeClasspath,svmClasspath,testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=runtimeClasspath,svmClasspath,testRuntimeClasspath
org.msgpack:msgpack-core:0.9.11=runtimeClasspath,svmClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
org.organicdesign:Paguro:3.10.3=runtimeClasspath,svmClasspath,testRuntimeClasspath org.organicdesign:Paguro:3.10.3=runtimeClasspath,svmClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.10=runtimeClasspath,svmClasspath,testRuntimeClasspath org.snakeyaml:snakeyaml-engine:2.10=runtimeClasspath,svmClasspath,testRuntimeClasspath
empty=annotationProcessor,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,signatures,sourcesJar,svmAnnotationProcessor,svmApiDependenciesMetadata,svmCompileClasspath,svmCompileOnlyDependenciesMetadata,svmImplementationDependenciesMetadata,svmIntransitiveDependenciesMetadata,svmKotlinScriptDefExtensions,svmRuntimeClasspath,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,signatures,sourcesJar,svmAnnotationProcessor,svmApiDependenciesMetadata,svmCompileClasspath,svmCompileOnlyDependenciesMetadata,svmImplementationDependenciesMetadata,svmIntransitiveDependenciesMetadata,svmKotlinScriptDefExtensions,svmRuntimeClasspath,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
@@ -139,7 +139,6 @@ abstract class CliCommand(protected val cliOptions: CliBaseOptions) {
} }
private val evaluatorSettings: PklEvaluatorSettings? by lazy { private val evaluatorSettings: PklEvaluatorSettings? by lazy {
@Suppress("PklCliDirectProjectEvaluatorSettingsAccess")
if (cliOptions.omitProjectSettings) null else project?.evaluatorSettings if (cliOptions.omitProjectSettings) null else project?.evaluatorSettings
} }
@@ -200,30 +199,34 @@ abstract class CliCommand(protected val cliOptions: CliBaseOptions) {
) )
} }
protected val useColor: Boolean by lazy { protected val useColor: Boolean by lazy { cliOptions.color?.hasColor() ?: false }
cliOptions.color?.hasColor() ?: evaluatorSettings?.color?.hasColor() ?: false
private val proxyAddress: URI? by lazy {
cliOptions.httpProxy
?: project?.evaluatorSettings?.http?.proxy?.address
?: settings.http?.proxy?.address
} }
protected val proxyAddress: URI? by lazy { private val noProxy: List<String>? by lazy {
cliOptions.httpProxy ?: evaluatorSettings?.http?.proxy?.address ?: settings.http?.proxy?.address
}
protected val noProxy: List<String>? by lazy {
cliOptions.httpNoProxy cliOptions.httpNoProxy
?: evaluatorSettings?.http?.proxy?.noProxy ?: project?.evaluatorSettings?.http?.proxy?.noProxy
?: settings.http?.proxy?.noProxy ?: settings.http?.proxy?.noProxy
} }
protected val httpRewrites: Map<URI, URI>? by lazy { private val httpRewrites: Map<URI, URI>? by lazy {
cliOptions.httpRewrites ?: evaluatorSettings?.http?.rewrites ?: settings.http?.rewrites() cliOptions.httpRewrites
?: project?.evaluatorSettings?.http?.rewrites
?: settings.http?.rewrites()
} }
protected val externalModuleReaders: Map<String, PklEvaluatorSettings.ExternalReader> by lazy { private val externalModuleReaders: Map<String, PklEvaluatorSettings.ExternalReader> by lazy {
(evaluatorSettings?.externalModuleReaders ?: emptyMap()) + cliOptions.externalModuleReaders (project?.evaluatorSettings?.externalModuleReaders ?: emptyMap()) +
cliOptions.externalModuleReaders
} }
protected val externalResourceReaders: Map<String, PklEvaluatorSettings.ExternalReader> by lazy { private val externalResourceReaders: Map<String, PklEvaluatorSettings.ExternalReader> by lazy {
(evaluatorSettings?.externalResourceReaders ?: emptyMap()) + cliOptions.externalResourceReaders (project?.evaluatorSettings?.externalResourceReaders ?: emptyMap()) +
cliOptions.externalResourceReaders
} }
private val externalProcesses: private val externalProcesses:
@@ -237,7 +240,7 @@ abstract class CliCommand(protected val cliOptions: CliBaseOptions) {
} }
private val traceMode: TraceMode by lazy { private val traceMode: TraceMode by lazy {
cliOptions.traceMode ?: evaluatorSettings?.traceMode ?: TraceMode.COMPACT cliOptions.traceMode ?: project?.evaluatorSettings?.traceMode ?: TraceMode.COMPACT
} }
private fun HttpClient.Builder.addDefaultCliCertificates() { private fun HttpClient.Builder.addDefaultCliCertificates() {
@@ -16,7 +16,6 @@
package org.pkl.commons.cli package org.pkl.commons.cli
import com.github.ajalt.clikt.core.parse import com.github.ajalt.clikt.core.parse
import com.github.ajalt.clikt.parameters.groups.provideDelegate
import java.net.URI import java.net.URI
import java.nio.file.Path import java.nio.file.Path
import kotlin.io.path.ExperimentalPathApi import kotlin.io.path.ExperimentalPathApi
@@ -24,48 +23,28 @@ import kotlin.io.path.writeText
import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows import org.junit.jupiter.api.assertThrows
import org.junit.jupiter.api.condition.DisabledOnJre
import org.junit.jupiter.api.condition.JRE
import org.junit.jupiter.api.io.TempDir import org.junit.jupiter.api.io.TempDir
import org.pkl.commons.cli.commands.BaseCommand import org.pkl.commons.cli.commands.BaseCommand
import org.pkl.commons.cli.commands.ProjectOptions
import org.pkl.commons.writeString
import org.pkl.core.SecurityManagers import org.pkl.core.SecurityManagers
import org.pkl.core.evaluatorSettings.TraceMode
import org.pkl.core.util.IoUtils
@OptIn(ExperimentalPathApi::class) @OptIn(ExperimentalPathApi::class)
class CliCommandTest { class CliCommandTest {
class CliTest(options: CliBaseOptions) : CliCommand(options) {
override fun doRun() = Unit
val myAllowedResources = allowedResources
val myAllowedModules = allowedModules
val myResolvedSourceModules = resolvedSourceModules
}
private val cmd = private val cmd =
object : BaseCommand("test", "") { object : BaseCommand("test", "") {
val projectOptions: ProjectOptions by ProjectOptions()
override fun run() = Unit override fun run() = Unit
override val helpString: String = "" override val helpString: String = ""
} }
class CliTest(options: CliBaseOptions) : CliCommand(options) {
override fun doRun() = Unit
val myResolvedSourceModules = resolvedSourceModules
val myAllowedModules = allowedModules
val myAllowedResources = allowedResources
val myRootDir = rootDir
val myModulePath = modulePath
val myProxyAddress = proxyAddress
val myNoProxy = noProxy
val myHttpRewrites = httpRewrites
val myExternalModuleReaders = externalModuleReaders
val myExternalResourceReaders = externalResourceReaders
fun myEvaluatorBuilder() = evaluatorBuilder()
@Suppress("PklCliDirectProjectEvaluatorSettingsAccess")
val myProjectEvaluatorSettings = project?.evaluatorSettings
}
@Test @Test
fun `--external-resource-reader and --external-module-reader populate allowed modules and resources`() { fun `--external-resource-reader and --external-module-reader populate allowed modules and resources`() {
cmd.parse( cmd.parse(
@@ -115,8 +94,8 @@ class CliCommandTest {
.resolve("PklProject") .resolve("PklProject")
.writeText( .writeText(
""" """
amends "pkl:Project" amends "pkl:Project"
""" """
.trimIndent() .trimIndent()
) )
cmd.parse(arrayOf("--working-dir=$tempDir")) cmd.parse(arrayOf("--working-dir=$tempDir"))
@@ -131,8 +110,8 @@ class CliCommandTest {
.resolve("PklProject") .resolve("PklProject")
.writeText( .writeText(
""" """
amends "pkl:Project" amends "pkl:Project"
""" """
.trimIndent() .trimIndent()
) )
cmd.parse(arrayOf("--working-dir=$tempDir")) cmd.parse(arrayOf("--working-dir=$tempDir"))
@@ -150,15 +129,15 @@ class CliCommandTest {
.resolve("PklProject") .resolve("PklProject")
.writeText( .writeText(
""" """
amends "pkl:Project" amends "pkl:Project"
package { package {
name = "foo" name = "foo"
baseUri = "package://example.com/foo" baseUri = "package://example.com/foo"
version = "0.0.1" version = "0.0.1"
packageZipUrl = "https://example.com/foo@\(version).zip" packageZipUrl = "https://example.com/foo@\(version).zip"
} }
""" """
.trimIndent() .trimIndent()
) )
@@ -189,14 +168,14 @@ class CliCommandTest {
.resolve("PklProject") .resolve("PklProject")
.writeText( .writeText(
""" """
amends "pkl:Project" amends "pkl:Project"
dependencies { dependencies {
["foo"] { ["foo"] {
uri = "package://example.com/foo@1.2.3" uri = "package://example.com/foo@1.2.3"
}
} }
""" }
"""
.trimIndent() .trimIndent()
) )
cmd.parse(arrayOf("--working-dir=$tempDir")) cmd.parse(arrayOf("--working-dir=$tempDir"))
@@ -205,83 +184,4 @@ class CliCommandTest {
assertThat(cliTest.myResolvedSourceModules) assertThat(cliTest.myResolvedSourceModules)
.isEqualTo(listOf(tempDir.toUri().resolve("package://example.com/foo@1.2.3#/bar.pkl"))) .isEqualTo(listOf(tempDir.toUri().resolve("package://example.com/foo@1.2.3#/bar.pkl")))
} }
val projectWithAllEvaluatorSettings =
"""
amends "pkl:Project"
evaluatorSettings {
externalProperties { ["foo"] = "bar" }
env { ["foo"] = "bar" }
allowedModules { "file:" }
allowedResources { "file:" }
color = "always"
noCache = true
modulePath { "/tmp/modulepath" }
timeout = 30.s
moduleCacheDir = "/tmp/cache"
rootDir = "/tmp/root"
http {
proxy {
address = "http://example.com:80"
noProxy { "example.com" }
}
rewrites {
["https://example.com/foo/"] = "https://example.com/bar/"
}
}
externalModuleReaders {
["foo"] { executable = "foo" }
}
externalResourceReaders {
["foo"] { executable = "foo" }
}
traceMode = "pretty"
}
"""
.trimIndent()
@Test
// TODO: why does assertThat(builder.color).isFalse fail on these JDKs?
@DisabledOnJre(JRE.JAVA_22, JRE.JAVA_23, JRE.JAVA_24)
fun `test that --omit-project-settings actually omits project settings`(@TempDir tempDir: Path) {
val project = tempDir.resolve("PklProject").writeString(projectWithAllEvaluatorSettings)
cmd.parse(arrayOf("--working-dir=$tempDir", "--omit-project-settings"))
val opts =
cmd.baseOptions.baseOptions(listOf(project.toUri()), cmd.projectOptions, testMode = true)
val cliTest = CliTest(opts)
val builder = cliTest.myEvaluatorBuilder()
assertThat(cliTest.myAllowedModules).isEqualTo(SecurityManagers.defaultAllowedModules)
assertThat(cliTest.myAllowedResources).isEqualTo(SecurityManagers.defaultAllowedResources)
assertThat(cliTest.myRootDir).isNull()
assertThat(builder.environmentVariables).isEqualTo(System.getenv())
assertThat(builder.externalProperties).isEmpty()
assertThat(builder.moduleCacheDir).isEqualTo(IoUtils.getDefaultModuleCacheDir())
assertThat(cliTest.myModulePath).isEmpty()
assertThat(builder.color).isFalse
assertThat(cliTest.myProxyAddress).isNull()
assertThat(cliTest.myNoProxy).isNull()
assertThat(cliTest.myHttpRewrites).isNull()
assertThat(cliTest.myExternalModuleReaders).isEmpty()
assertThat(cliTest.myExternalResourceReaders).isEmpty()
assertThat(builder.traceMode).isEqualTo(TraceMode.COMPACT)
}
// hygiene test to ensure new evaluator settings get covered by the above test
@Test
fun `test project sets all evaluator settings`(@TempDir tempDir: Path) {
val project = tempDir.resolve("PklProject").writeString(projectWithAllEvaluatorSettings)
cmd.parse(arrayOf("--working-dir=$tempDir"))
val opts = cmd.baseOptions.baseOptions(listOf(project.toUri()), testMode = true)
val cliTest = CliTest(opts)
cliTest.myProjectEvaluatorSettings
?.javaClass
?.declaredMethods
?.filter { it.parameterCount == 0 }
?.forEach {
assertThat(it.invoke(cliTest.myProjectEvaluatorSettings))
.overridingErrorMessage("project evaluator settings returned null for ${it.name}")
.isNotNull
}
}
} }
+34 -45
View File
@@ -6,58 +6,47 @@ com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolva
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=apiDependenciesMetadata,compileClasspath,testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=apiDependenciesMetadata,compileClasspath,testCompileClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=compileClasspath
org.msgpack:msgpack-core:0.9.11=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
empty=annotationProcessor,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
+33 -44
View File
@@ -6,57 +6,46 @@ com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolva
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=testCompileClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
empty=annotationProcessor,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@ fun <This, Return> lazyWithReceiver(
class LazyWithReceiver<This, out Return>(val initializer: This.() -> Return) { class LazyWithReceiver<This, out Return>(val initializer: This.() -> Return) {
private val values = WeakHashMap<This, Return>() private val values = WeakHashMap<This, Return>()
private val lock = Any() private val lock = Object()
operator fun getValue(thisValue: This, property: KProperty<*>): Return = operator fun getValue(thisValue: This, property: KProperty<*>): Return =
synchronized(lock) { values.getOrPut(thisValue) { thisValue.initializer() } } synchronized(lock) { values.getOrPut(thisValue) { thisValue.initializer() } }
+61 -73
View File
@@ -1,98 +1,86 @@
# This is a Gradle generated file for dependency locking. # This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised. # Manual edits can break the build and are not advised.
# This file is expected to be part of source control. # This file is expected to be part of source control.
com.github.ajalt.clikt:clikt-core-jvm:5.1.0=pklCodegenJava com.github.ajalt.clikt:clikt-core-jvm:5.0.3=pklCodegenJava
com.github.ajalt.clikt:clikt-core:5.1.0=pklCodegenJava com.github.ajalt.clikt:clikt-core:5.0.3=pklCodegenJava
com.github.ajalt.clikt:clikt-jvm:5.1.0=pklCodegenJava com.github.ajalt.clikt:clikt-jvm:5.0.3=pklCodegenJava
com.github.ajalt.clikt:clikt-markdown-jvm:5.1.0=pklCodegenJava com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=pklCodegenJava
com.github.ajalt.clikt:clikt-markdown:5.1.0=pklCodegenJava com.github.ajalt.clikt:clikt-markdown:5.0.3=pklCodegenJava
com.github.ajalt.clikt:clikt:5.1.0=pklCodegenJava com.github.ajalt.clikt:clikt:5.0.3=pklCodegenJava
com.github.ajalt.colormath:colormath-jvm:3.6.0=pklCodegenJava com.github.ajalt.colormath:colormath-jvm:3.6.0=pklCodegenJava
com.github.ajalt.colormath:colormath:3.6.0=pklCodegenJava com.github.ajalt.colormath:colormath:3.6.0=pklCodegenJava
com.github.ajalt.mordant:mordant-core-jvm:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-core-jvm:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-core:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-core:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-jvm-jna:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-jvm:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-jvm:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant-markdown:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant-markdown:3.0.1=pklCodegenJava
com.github.ajalt.mordant:mordant:3.0.2=pklCodegenJava com.github.ajalt.mordant:mordant:3.0.1=pklCodegenJava
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
com.palantir.javapoet:javapoet:0.14.0=pklCodegenJava com.palantir.javapoet:javapoet:0.7.0=pklCodegenJava
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.leangen.geantyref:geantyref:1.3.16=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath io.leangen.geantyref:geantyref:1.3.16=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
javax.inject:javax.inject:1=testCompileClasspath,testRuntimeClasspath javax.inject:javax.inject:1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
net.java.dev.jna:jna:5.14.0=pklCodegenJava net.java.dev.jna:jna:5.14.0=pklCodegenJava
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.graalvm.polyglot:polyglot:25.0.1=pklCodegenJava,runtimeClasspath,testRuntimeClasspath org.graalvm.polyglot:polyglot:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:collections:25.0.1=pklCodegenJava,runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:collections:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:graal-sdk:25.0.1=pklCodegenJava,runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:graal-sdk:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:nativeimage:25.0.1=pklCodegenJava,runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:nativeimage:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
org.graalvm.sdk:word:25.0.1=pklCodegenJava,runtimeClasspath,testRuntimeClasspath org.graalvm.sdk:word:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
org.graalvm.truffle:truffle-api:25.0.1=pklCodegenJava,runtimeClasspath,testRuntimeClasspath org.graalvm.truffle:truffle-api:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,pklCodegenJava,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=pklCodegenJava,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=pklCodegenJava,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=pklCodegenJava,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,pklCodegenJava,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=pklCodegenJava,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.0=pklCodegenJava
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,pklCodegenJava,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,pklCodegenJava,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jetbrains:markdown-jvm:0.7.3=pklCodegenJava org.jetbrains:markdown-jvm:0.7.3=pklCodegenJava
org.jetbrains:markdown:0.7.3=pklCodegenJava org.jetbrains:markdown:0.7.3=pklCodegenJava
org.jspecify:jspecify:1.0.0=pklCodegenJava,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=compileClasspath,pklCodegenJava,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.msgpack:msgpack-core:0.9.11=compileClasspath,pklCodegenJava,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
org.organicdesign:Paguro:3.10.3=pklCodegenJava,runtimeClasspath,testRuntimeClasspath org.organicdesign:Paguro:3.10.3=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.10=pklCodegenJava,runtimeClasspath,testRuntimeClasspath org.snakeyaml:snakeyaml-engine:2.10=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
empty=annotationProcessor,apiDependenciesMetadata,compileOnlyDependenciesMetadata,fatJar,firstPartySourcesJars,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions empty=annotationProcessor,apiDependenciesMetadata,compileOnlyDependenciesMetadata,fatJar,firstPartySourcesJars,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
+59 -71
View File
@@ -1,97 +1,85 @@
# This is a Gradle generated file for dependency locking. # This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised. # Manual edits can break the build and are not advised.
# This file is expected to be part of source control. # This file is expected to be part of source control.
com.github.ajalt.clikt:clikt-core-jvm:5.1.0=pklCodegenKotlin com.github.ajalt.clikt:clikt-core-jvm:5.0.3=pklCodegenKotlin
com.github.ajalt.clikt:clikt-core:5.1.0=pklCodegenKotlin com.github.ajalt.clikt:clikt-core:5.0.3=pklCodegenKotlin
com.github.ajalt.clikt:clikt-jvm:5.1.0=pklCodegenKotlin com.github.ajalt.clikt:clikt-jvm:5.0.3=pklCodegenKotlin
com.github.ajalt.clikt:clikt-markdown-jvm:5.1.0=pklCodegenKotlin com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=pklCodegenKotlin
com.github.ajalt.clikt:clikt-markdown:5.1.0=pklCodegenKotlin com.github.ajalt.clikt:clikt-markdown:5.0.3=pklCodegenKotlin
com.github.ajalt.clikt:clikt:5.1.0=pklCodegenKotlin com.github.ajalt.clikt:clikt:5.0.3=pklCodegenKotlin
com.github.ajalt.colormath:colormath-jvm:3.6.0=pklCodegenKotlin com.github.ajalt.colormath:colormath-jvm:3.6.0=pklCodegenKotlin
com.github.ajalt.colormath:colormath:3.6.0=pklCodegenKotlin com.github.ajalt.colormath:colormath:3.6.0=pklCodegenKotlin
com.github.ajalt.mordant:mordant-core-jvm:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-core-jvm:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-core:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-core:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-jvm-jna:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-jvm:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-jvm:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant-markdown:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant-markdown:3.0.1=pklCodegenKotlin
com.github.ajalt.mordant:mordant:3.0.2=pklCodegenKotlin com.github.ajalt.mordant:mordant:3.0.1=pklCodegenKotlin
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
com.squareup:kotlinpoet:1.6.0=pklCodegenKotlin com.squareup:kotlinpoet:1.6.0=pklCodegenKotlin
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.leangen.geantyref:geantyref:1.3.16=testCompileClasspath,testRuntimeClasspath io.leangen.geantyref:geantyref:1.3.16=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
net.java.dev.jna:jna:5.14.0=pklCodegenKotlin net.java.dev.jna:jna:5.14.0=pklCodegenKotlin
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.graalvm.polyglot:polyglot:25.0.1=pklCodegenKotlin,testRuntimeClasspath org.graalvm.polyglot:polyglot:25.0.0=pklCodegenKotlin,testRuntimeClasspath
org.graalvm.sdk:collections:25.0.1=pklCodegenKotlin,testRuntimeClasspath org.graalvm.sdk:collections:25.0.0=pklCodegenKotlin,testRuntimeClasspath
org.graalvm.sdk:graal-sdk:25.0.1=pklCodegenKotlin,testRuntimeClasspath org.graalvm.sdk:graal-sdk:25.0.0=pklCodegenKotlin,testRuntimeClasspath
org.graalvm.sdk:nativeimage:25.0.1=pklCodegenKotlin,testRuntimeClasspath org.graalvm.sdk:nativeimage:25.0.0=pklCodegenKotlin,testRuntimeClasspath
org.graalvm.sdk:word:25.0.1=pklCodegenKotlin,testRuntimeClasspath org.graalvm.sdk:word:25.0.0=pklCodegenKotlin,testRuntimeClasspath
org.graalvm.truffle:truffle-api:25.0.1=pklCodegenKotlin,testRuntimeClasspath org.graalvm.truffle:truffle-api:25.0.0=pklCodegenKotlin,testRuntimeClasspath
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,pklCodegenKotlin,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,pklCodegenKotlin,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-reflect:2.2.21=compileClasspath,pklCodegenKotlin,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,pklCodegenKotlin,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,pklCodegenKotlin,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=apiDependenciesMetadata,compileClasspath,pklCodegenKotlin,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,pklCodegenKotlin,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=apiDependenciesMetadata,compileClasspath,pklCodegenKotlin,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=apiDependenciesMetadata,compileClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.0=pklCodegenKotlin
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,pklCodegenKotlin,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,pklCodegenKotlin,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jetbrains:markdown-jvm:0.7.3=pklCodegenKotlin org.jetbrains:markdown-jvm:0.7.3=pklCodegenKotlin
org.jetbrains:markdown:0.7.3=pklCodegenKotlin org.jetbrains:markdown:0.7.3=pklCodegenKotlin
org.jspecify:jspecify:1.0.0=pklCodegenKotlin,testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=compileClasspath,pklCodegenKotlin,pklConfigJava,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.msgpack:msgpack-core:0.9.11=compileClasspath,pklCodegenKotlin,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
org.organicdesign:Paguro:3.10.3=pklCodegenKotlin,testRuntimeClasspath org.organicdesign:Paguro:3.10.3=pklCodegenKotlin,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.10=pklCodegenKotlin,testRuntimeClasspath org.snakeyaml:snakeyaml-engine:2.10=pklCodegenKotlin,testRuntimeClasspath
empty=annotationProcessor,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,pklConfigJava,pklConfigJavaAll,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,pklConfigJava,pklConfigJavaAll,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -46,7 +46,6 @@ class PPairToKotlinPairTest {
@Test @Test
fun ex1() { fun ex1() {
val ex1 = module.getProperty("ex1") val ex1 = module.getProperty("ex1")
@Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN")
val mapped: Pair<Int, Duration> = val mapped: Pair<Int, Duration> =
mapper.map( mapper.map(
ex1, ex1,
+44 -55
View File
@@ -4,71 +4,60 @@
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
com.google.code.findbugs:jsr305:3.0.2=compileClasspath,compileOnlyDependenciesMetadata com.google.code.findbugs:jsr305:3.0.2=compileClasspath,compileOnlyDependenciesMetadata
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
com.palantir.javapoet:javapoet:0.14.0=generatorCompileClasspath,generatorRuntimeClasspath com.palantir.javapoet:javapoet:0.7.0=generatorCompileClasspath,generatorImplementationDependenciesMetadata,generatorRuntimeClasspath
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
org.graalvm.polyglot:polyglot:25.0.1=compileClasspath,generatorCompileClasspath,generatorRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.polyglot:polyglot:25.0.0=compileClasspath,generatorCompileClasspath,generatorImplementationDependenciesMetadata,generatorRuntimeClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.sdk:collections:25.0.1=compileClasspath,generatorCompileClasspath,generatorRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.sdk:collections:25.0.0=compileClasspath,generatorCompileClasspath,generatorImplementationDependenciesMetadata,generatorRuntimeClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.sdk:graal-sdk:25.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.sdk:graal-sdk:25.0.0=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.sdk:nativeimage:25.0.1=compileClasspath,generatorCompileClasspath,generatorRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.sdk:nativeimage:25.0.0=compileClasspath,generatorCompileClasspath,generatorImplementationDependenciesMetadata,generatorRuntimeClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.sdk:word:25.0.1=compileClasspath,generatorCompileClasspath,generatorRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.sdk:word:25.0.0=compileClasspath,generatorCompileClasspath,generatorImplementationDependenciesMetadata,generatorRuntimeClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.truffle:truffle-api:25.0.1=compileClasspath,generatorCompileClasspath,generatorRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.graalvm.truffle:truffle-api:25.0.0=compileClasspath,generatorCompileClasspath,generatorImplementationDependenciesMetadata,generatorRuntimeClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.graalvm.truffle:truffle-dsl-processor:25.0.1=annotationProcessor org.graalvm.truffle:truffle-dsl-processor:25.0.0=annotationProcessor
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-daemon-client:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-klib-abi-reader:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.3.20=kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20=kotlinInternalAbiValidation
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=generatorCompileClasspath,generatorImplementationDependenciesMetadata,generatorRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=generatorCompileClasspath,generatorImplementationDependenciesMetadata,generatorRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=generatorCompileClasspath,generatorRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:kotlin-stdlib:2.2.20=generatorCompileClasspath,generatorImplementationDependenciesMetadata,generatorRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=generatorCompileClasspath,generatorRuntimeClasspath,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=generatorCompileClasspath,generatorRuntimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlin:kotlin-stdlib:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath
org.jetbrains.kotlin:kotlin-tooling-core:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
org.jetbrains.kotlin:swift-export-embeddable:2.2.21=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
org.jetbrains:annotations:13.0=generatorCompileClasspath,generatorRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath org.jetbrains:annotations:13.0=generatorCompileClasspath,generatorRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathGenerator,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit.platform:junit-platform-engine:6.0.3=testCompileClasspath,testRuntimeClasspath org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath org.msgpack:msgpack-core:0.9.8=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.msgpack:msgpack-core:0.9.11=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath org.organicdesign:Paguro:3.10.3=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.organicdesign:Paguro:3.10.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.snakeyaml:snakeyaml-engine:2.10=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
org.snakeyaml:snakeyaml-engine:2.10=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath empty=apiDependenciesMetadata,generatorAnnotationProcessor,generatorApiDependenciesMetadata,generatorCompileOnlyDependenciesMetadata,generatorIntransitiveDependenciesMetadata,generatorKotlinScriptDefExtensions,intransitiveDependenciesMetadata,javaExecutable,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
empty=apiDependenciesMetadata,generatorAnnotationProcessor,generatorApiDependenciesMetadata,generatorCompileOnlyDependenciesMetadata,generatorImplementationDependenciesMetadata,generatorIntransitiveDependenciesMetadata,generatorKotlinScriptDefExtensions,implementationDependenciesMetadata,intransitiveDependenciesMetadata,javaExecutable,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
@@ -336,16 +336,6 @@ public final class EvaluatorImpl implements Evaluator {
} }
} }
// for use in tests to determine whether an evaluator ever triggered instrumentation
boolean isInstrumentationEverUsed() {
polyglotContext.enter();
try {
return VmLanguage.get(null).localContext.get().isInstrumentationEverUsed();
} finally {
polyglotContext.leave();
}
}
String evaluateOutputText(VmTyped fileOutput) { String evaluateOutputText(VmTyped fileOutput) {
return doEvaluate(() -> VmUtils.readTextProperty(fileOutput)); return doEvaluate(() -> VmUtils.readTextProperty(fileOutput));
} }
@@ -44,24 +44,6 @@ public interface SecurityManager {
*/ */
void checkResolveResource(URI resource) throws SecurityManagerException; void checkResolveResource(URI resource) throws SecurityManagerException;
/**
* Resolves the given {@code file:} URI to a secure, symlink-free path that has been verified to
* be within the root directory (if one is configured). The returned path can be opened with
* {@link java.nio.file.LinkOption#NOFOLLOW_LINKS}.
*
* <p>Returns {@code null} for non-{@code file:} URIs or if no root directory is configured.
*
* @param uri the URI to resolve
* @param isResource denotes if uri belongs to a resource (otherwise, a module)
* @return the resolved, symlink-free path under root directory, or {@code null}
* @throws SecurityManagerException if the resolved path is not within the root directory
* @throws IOException if the path cannot be resolved
*/
default @Nullable Path resolveSecurePath(URI uri, boolean isResource)
throws SecurityManagerException, IOException {
return null;
}
/** /**
* Resolves the given {@code file:} URI to a secure, symlink-free path that has been verified to * Resolves the given {@code file:} URI to a secure, symlink-free path that has been verified to
* be within the root directory (if one is configured). The returned path can be opened with * be within the root directory (if one is configured). The returned path can be opened with
@@ -75,6 +57,6 @@ public interface SecurityManager {
* @throws IOException if the path cannot be resolved * @throws IOException if the path cannot be resolved
*/ */
default @Nullable Path resolveSecurePath(URI uri) throws SecurityManagerException, IOException { default @Nullable Path resolveSecurePath(URI uri) throws SecurityManagerException, IOException {
return resolveSecurePath(uri, false); return null;
} }
} }
@@ -173,20 +173,14 @@ public final class SecurityManagers {
} }
@Override @Override
public @Nullable Path resolveSecurePath(URI uri, boolean isResource) public @Nullable Path resolveSecurePath(URI uri) throws SecurityManagerException, IOException {
throws SecurityManagerException, IOException { if (rootDir == null || !uri.isAbsolute() || !uri.getScheme().equals("file")) {
if (rootDir == null
|| !uri.isAbsolute()
|| !uri.getScheme().equals("file")
|| (uri.getAuthority() != null && !uri.getAuthority().isEmpty())) {
return null; return null;
} }
var path = Path.of(uri); var path = Path.of(uri);
var realPath = path.toRealPath(); var realPath = path.toRealPath();
if (!realPath.startsWith(rootDir)) { if (!realPath.startsWith(rootDir)) {
var errorMessageKey = isResource ? "resourcePastRootDir" : "modulePastRootDir"; throw new SecurityManagerException(ErrorMessages.create("modulePastRootDir", uri, rootDir));
var message = ErrorMessages.create(errorMessageKey, uri, rootDir);
throw new SecurityManagerException(message);
} }
return realPath; return realPath;
} }
@@ -231,16 +225,6 @@ public final class SecurityManagers {
if (rootDir == null || !checkUri.getScheme().equals("file")) return; if (rootDir == null || !checkUri.getScheme().equals("file")) return;
var path = Path.of(checkUri); var path = Path.of(checkUri);
// uri represents a UNC path if authority is non-null
// so treat this like a potentially redirected HTTP read:
// check if both the given and real paths are under rootDir
if (checkUri.getAuthority() != null && !checkUri.getAuthority().isEmpty()) {
doCheckIsUnderRootDir(path.normalize(), uri, isResource);
}
// if given path is under rootDir, do I/O to determine if the real path is under the root dir
// this can result in a nasty timeout (~20s) in Files.exists if the server doesn't respond :(
if (Files.exists(path)) { if (Files.exists(path)) {
try { try {
path = path.toRealPath(); path = path.toRealPath();
@@ -253,12 +237,6 @@ public final class SecurityManagers {
path = path.normalize(); path = path.normalize();
} }
doCheckIsUnderRootDir(path, uri, isResource);
}
private void doCheckIsUnderRootDir(Path path, URI uri, boolean isResource)
throws SecurityManagerException {
assert rootDir != null;
if (!path.startsWith(rootDir)) { if (!path.startsWith(rootDir)) {
var errorMessageKey = isResource ? "resourcePastRootDir" : "modulePastRootDir"; var errorMessageKey = isResource ? "resourcePastRootDir" : "modulePastRootDir";
var message = ErrorMessages.create(errorMessageKey, uri, rootDir); var message = ErrorMessages.create(errorMessageKey, uri, rootDir);
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -52,7 +52,7 @@ import org.pkl.parser.syntax.StringPart.StringChars;
* <li>read expressions * <li>read expressions
* </ul> * </ul>
*/ */
public class ImportsAndReadsParser extends AbstractAstBuilder<List<Entry>> { public class ImportsAndReadsParser extends AbstractAstBuilder<@Nullable List<Entry>> {
public record Entry( public record Entry(
boolean isModule, boolean isModule,
@@ -141,11 +141,12 @@ public class ImportsAndReadsParser extends AbstractAstBuilder<List<Entry>> {
} }
@Override @Override
protected List<Entry> aggregateResult(List<Entry> aggregate, List<Entry> nextResult) { protected @Nullable List<Entry> aggregateResult(
if (aggregate.isEmpty()) { @Nullable List<Entry> aggregate, @Nullable List<Entry> nextResult) {
if (aggregate == null || aggregate.isEmpty()) {
return nextResult; return nextResult;
} }
if (nextResult.isEmpty()) { if (nextResult == null || nextResult.isEmpty()) {
return aggregate; return aggregate;
} }
var ret = new ArrayList<Entry>(aggregate.size() + nextResult.size()); var ret = new ArrayList<Entry>(aggregate.size() + nextResult.size());
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -22,20 +22,10 @@ import com.oracle.truffle.api.nodes.ExplodeLoop;
import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.api.source.SourceSection;
import org.pkl.core.ast.ExpressionNode; import org.pkl.core.ast.ExpressionNode;
import org.pkl.core.ast.member.ObjectMember; import org.pkl.core.ast.member.ObjectMember;
import org.pkl.core.runtime.VmObject; import org.pkl.core.runtime.VmObjectLike;
import org.pkl.core.runtime.VmUtils; import org.pkl.core.runtime.VmUtils;
/** /** Reads a local non-constant property that is known to exist in the lexical scope of this node. */
* Reads a local non-constant property that is known to exist in the lexical scope of this node.
*
* <p>Local property values are cached using the ObjectMember as the key (identity-based) rather
* than the property name. This is necessary because the same property name can exist at different
* declaration sites in an amends chain, and we need to distinguish between them for correct
* late-binding semantics.
*
* <p>The cache is stored in a separate IdentityHashMap in VmObject (not in the DynamicObject
* storage) to avoid shape transitions that would destroy cache locality.
*/
public final class ReadLocalPropertyNode extends ExpressionNode { public final class ReadLocalPropertyNode extends ExpressionNode {
private final ObjectMember property; private final ObjectMember property;
private final int levelsUp; private final int levelsUp;
@@ -73,17 +63,15 @@ public final class ReadLocalPropertyNode extends ExpressionNode {
owner = owner.getEnclosingOwner(); owner = owner.getEnclosingOwner();
} }
assert receiver instanceof VmObject assert receiver instanceof VmObjectLike
: "Assumption: This node isn't used in Truffle ASTs of `external` pkl.base classes whose values aren't VmObject's."; : "Assumption: This node isn't used in Truffle ASTs of `external` pkl.base classes whose values aren't VmObject's.";
// Use the local property cache instead of DynamicObject storage var objReceiver = (VmObjectLike) receiver;
// to avoid shape transitions from ObjectMember keys var result = objReceiver.getCachedValue(property);
var objReceiver = (VmObject) receiver;
var result = objReceiver.getLocalCachedValue(property);
if (result == null) { if (result == null) {
result = callNode.call(objReceiver, owner, property.getName()); result = callNode.call(objReceiver, owner, property.getName());
objReceiver.setLocalCachedValue(property, result); objReceiver.setCachedValue(property, result);
} }
return result; return result;
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -19,12 +19,9 @@ import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.dsl.*;
import com.oracle.truffle.api.dsl.Cached.Shared;
import com.oracle.truffle.api.library.CachedLibrary;
import com.oracle.truffle.api.nodes.DirectCallNode; import com.oracle.truffle.api.nodes.DirectCallNode;
import com.oracle.truffle.api.nodes.IndirectCallNode; import com.oracle.truffle.api.nodes.IndirectCallNode;
import com.oracle.truffle.api.nodes.NodeInfo; import com.oracle.truffle.api.nodes.NodeInfo;
import com.oracle.truffle.api.object.DynamicObjectLibrary;
import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.api.source.SourceSection;
import org.pkl.core.ast.ExpressionNode; import org.pkl.core.ast.ExpressionNode;
import org.pkl.core.ast.MemberLookupMode; import org.pkl.core.ast.MemberLookupMode;
@@ -64,27 +61,6 @@ public abstract class ReadPropertyNode extends ExpressionNode {
this(sourceSection, propertyName, MemberLookupMode.EXPLICIT_RECEIVER, false); this(sourceSection, propertyName, MemberLookupMode.EXPLICIT_RECEIVER, false);
} }
// Optimized specialization for VmTyped using DynamicObjectLibrary
@Specialization
protected Object evalTyped(
VmTyped receiver,
@CachedLibrary(limit = "3") DynamicObjectLibrary objectLibrary,
@Cached("create()") @Shared("callNode") IndirectCallNode callNode) {
checkConst(receiver);
// fast path: check cache using optimized library access
var result = receiver.getCachedValue(propertyName, objectLibrary);
if (result != null) return result;
// slow path: look up member in prototype chain and compute value
result = VmUtils.readMemberOrNull(receiver, propertyName, true, callNode);
if (result != null) return result;
CompilerDirectives.transferToInterpreter();
throw cannotFindProperty(receiver);
}
// This method effectively covers `VmObject receiver` but is implemented in a more // This method effectively covers `VmObject receiver` but is implemented in a more
// efficient way. See: // efficient way. See:
// https://www.graalvm.org/22.0/graalvm-as-a-platform/language-implementation-framework/TruffleLibraries/#strategy-2-java-interfaces // https://www.graalvm.org/22.0/graalvm-as-a-platform/language-implementation-framework/TruffleLibraries/#strategy-2-java-interfaces
@@ -92,7 +68,7 @@ public abstract class ReadPropertyNode extends ExpressionNode {
protected Object evalObject( protected Object evalObject(
Object receiver, Object receiver,
@Cached("getVmObjectSubclassOrNull(receiver)") Class<? extends VmObjectLike> cachedClass, @Cached("getVmObjectSubclassOrNull(receiver)") Class<? extends VmObjectLike> cachedClass,
@Cached("create()") @Shared("callNode") IndirectCallNode callNode) { @Cached("create()") IndirectCallNode callNode) {
var object = cachedClass.cast(receiver); var object = cachedClass.cast(receiver);
checkConst(object); checkConst(object);
@@ -985,11 +985,6 @@ public abstract class TypeNode extends PklNode {
// escape analysis should remove this allocation in compiled code // escape analysis should remove this allocation in compiled code
var typeMismatches = new VmTypeMismatchException[elementTypeNodes.length]; var typeMismatches = new VmTypeMismatchException[elementTypeNodes.length];
// disallow power assertions from triggering in case one union member checks successfully
var localContext = VmLanguage.get(this).localContext.get();
var wasInTypeTest = localContext.isInTypeTest();
localContext.setInTypeTest(true);
// Do eager checks (shallow-force) if there are two listings or two mappings represented. // Do eager checks (shallow-force) if there are two listings or two mappings represented.
// (we can't know that `new Listing { 0; "hi" }[0]` fails for `Listing<Int>|Listing<String>` // (we can't know that `new Listing { 0; "hi" }[0]` fails for `Listing<Int>|Listing<String>`
// without checking both index 0 and index 1). // without checking both index 0 and index 1).
@@ -997,36 +992,15 @@ public abstract class TypeNode extends PklNode {
for (var i = 0; i < elementTypeNodes.length; i++) { for (var i = 0; i < elementTypeNodes.length; i++) {
var elementTypeNode = elementTypeNodes[i]; var elementTypeNode = elementTypeNodes[i];
try { try {
var result = if (shouldEagerCheck) {
shouldEagerCheck return elementTypeNode.executeEagerly(frame, value);
? elementTypeNode.executeEagerly(frame, value) } else {
: elementTypeNode.executeLazily(frame, value); return elementTypeNode.executeLazily(frame, value);
localContext.setInTypeTest(wasInTypeTest); }
return result;
} catch (VmTypeMismatchException e) { } catch (VmTypeMismatchException e) {
typeMismatches[i] = e; typeMismatches[i] = e;
} }
} }
// all members failed to type check
// if enabled, re-execute type checks to generate power assertions
localContext.setInTypeTest(wasInTypeTest);
if (VmContext.get(this).getPowerAssertionsEnabled()
&& (!wasInTypeTest || localContext.hasActiveTracker())) {
for (var i = 0; i < elementTypeNodes.length; i++) {
var elementTypeNode = elementTypeNodes[i];
try {
if (shouldEagerCheck) {
elementTypeNode.executeEagerly(frame, value);
} else {
elementTypeNode.executeLazily(frame, value);
}
} catch (VmTypeMismatchException e) {
typeMismatches[i] = e;
}
}
}
throw new VmTypeMismatchException.Union(sourceSection, value, this, typeMismatches); throw new VmTypeMismatchException.Union(sourceSection, value, this, typeMismatches);
} }
@@ -1037,36 +1011,14 @@ public abstract class TypeNode extends PklNode {
// escape analysis should remove this allocation in compiled code // escape analysis should remove this allocation in compiled code
var typeMismatches = new VmTypeMismatchException[elementTypeNodes.length]; var typeMismatches = new VmTypeMismatchException[elementTypeNodes.length];
// disallow power assertions from triggering in case one union member checks successfully
var localContext = VmLanguage.get(this).localContext.get();
var wasInTypeTest = localContext.isInTypeTest();
localContext.setInTypeTest(true);
for (var i = 0; i < elementTypeNodes.length; i++) { for (var i = 0; i < elementTypeNodes.length; i++) {
// eager checks // eager checks
try { try {
var result = elementTypeNodes[i].executeEagerly(frame, value); return elementTypeNodes[i].executeEagerly(frame, value);
localContext.setInTypeTest(wasInTypeTest);
return result;
} catch (VmTypeMismatchException e) { } catch (VmTypeMismatchException e) {
typeMismatches[i] = e; typeMismatches[i] = e;
} }
} }
// all members failed to type check
// if enabled, re-execute type checks to generate power assertions
localContext.setInTypeTest(wasInTypeTest);
if (VmContext.get(this).getPowerAssertionsEnabled()
&& (!wasInTypeTest || localContext.hasActiveTracker())) {
for (var i = 0; i < elementTypeNodes.length; i++) {
try {
elementTypeNodes[i].executeEagerly(frame, value);
} catch (VmTypeMismatchException e) {
typeMismatches[i] = e;
}
}
}
throw new VmTypeMismatchException.Union(sourceSection, value, this, typeMismatches); throw new VmTypeMismatchException.Union(sourceSection, value, this, typeMismatches);
} }
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -71,9 +71,9 @@ public interface ExternalReaderProcess extends AutoCloseable {
* *
* <p>This method can be safely called multiple times. Subsequent calls have no effect. * <p>This method can be safely called multiple times. Subsequent calls have no effect.
* *
* <p><b>Implementation Note:</b> Implementers should request a graceful termination by sending a * @implNote Implementers should request a graceful termination by sending a {@link
* {@link ExternalReaderMessages.CloseExternalProcess CloseExternalProcess} message to the process * ExternalReaderMessages.CloseExternalProcess CloseExternalProcess} message to the process
* before terminating it forcibly. * before terminating it forcibly.
*/ */
@Override @Override
void close(); void close();
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -220,6 +220,7 @@ final class ExternalReaderProcessImpl implements ExternalReaderProcess {
.send( .send(
request, request,
(response) -> { (response) -> {
log(response.toString());
if (response instanceof InitializeResourceReaderResponse resp) { if (response instanceof InitializeResourceReaderResponse resp) {
var spec = var spec =
resp.spec() == null resp.spec() == null
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -33,7 +33,6 @@ import org.pkl.core.messaging.Messages.*;
import org.pkl.core.messaging.ProtocolException; import org.pkl.core.messaging.ProtocolException;
import org.pkl.core.module.PathElement; import org.pkl.core.module.PathElement;
import org.pkl.core.resource.Resource; import org.pkl.core.resource.Resource;
import org.pkl.core.util.Nullable;
final class ExternalResourceResolverImpl implements ExternalResourceResolver { final class ExternalResourceResolverImpl implements ExternalResourceResolver {
private final MessageTransport transport; private final MessageTransport transport;
@@ -49,14 +48,15 @@ final class ExternalResourceResolverImpl implements ExternalResourceResolver {
public Optional<Object> read(URI uri) throws IOException { public Optional<Object> read(URI uri) throws IOException {
var result = doRead(uri); var result = doRead(uri);
return result == null ? Optional.empty() : Optional.of(new Resource(uri, result)); return Optional.of(new Resource(uri, result));
} }
public boolean hasElement(SecurityManager securityManager, URI elementUri) public boolean hasElement(SecurityManager securityManager, URI elementUri)
throws SecurityManagerException { throws SecurityManagerException {
securityManager.checkResolveResource(elementUri); securityManager.checkResolveResource(elementUri);
try { try {
return doRead(elementUri) != null; doRead(elementUri);
return true;
} catch (IOException e) { } catch (IOException e) {
return false; return false;
} }
@@ -98,7 +98,7 @@ final class ExternalResourceResolverImpl implements ExternalResourceResolver {
})); }));
} }
public byte @Nullable [] doRead(URI baseUri) throws IOException { public byte[] doRead(URI baseUri) throws IOException {
return MessageTransports.resolveFuture( return MessageTransports.resolveFuture(
readResponses.computeIfAbsent( readResponses.computeIfAbsent(
baseUri, baseUri,
@@ -113,8 +113,10 @@ final class ExternalResourceResolverImpl implements ExternalResourceResolver {
if (response instanceof ReadResourceResponse resp) { if (response instanceof ReadResourceResponse resp) {
if (resp.error() != null) { if (resp.error() != null) {
future.completeExceptionally(new IOException(resp.error())); future.completeExceptionally(new IOException(resp.error()));
} else { } else if (resp.contents() != null) {
future.complete(resp.contents()); future.complete(resp.contents());
} else {
future.complete(new byte[0]);
} }
} else { } else {
future.completeExceptionally(new ProtocolException("unexpected response")); future.completeExceptionally(new ProtocolException("unexpected response"));
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -41,17 +41,10 @@ public abstract class AbstractMessagePackEncoder implements MessageEncoder {
@Override @Override
public final void encode(Message msg) throws IOException, ProtocolException { public final void encode(Message msg) throws IOException, ProtocolException {
// Serialize access to the packer. In pkl server mode the main thread packer.packArrayHeader(2);
// (handling CreateEvaluatorRequest) and the executor thread (sending packer.packInt(msg.type().getCode());
// EvaluateResponse / ReadModuleRequest) call encode() concurrently. encodeMessage(msg);
// Without this lock their writes interleave, corrupting the MessagePack packer.flush();
// stream. See JvmServerTest "concurrent encoding" for a regression test.
synchronized (packer) {
packer.packArrayHeader(2);
packer.packInt(msg.type().getCode());
encodeMessage(msg);
packer.flush();
}
} }
protected void packMapHeader(int size, @Nullable Object value1) throws IOException { protected void packMapHeader(int size, @Nullable Object value1) throws IOException {
@@ -519,7 +519,6 @@ public final class ModuleKeys {
@Override @Override
public ResolvedModuleKey resolve(SecurityManager securityManager) public ResolvedModuleKey resolve(SecurityManager securityManager)
throws IOException, SecurityManagerException { throws IOException, SecurityManagerException {
securityManager.checkResolveModule(uri);
var httpClient = VmContext.get(null).getHttpClient(); var httpClient = VmContext.get(null).getHttpClient();
var request = HttpRequest.newBuilder(uri).build(); var request = HttpRequest.newBuilder(uri).build();
var response = httpClient.send(request, BodyHandlers.ofInputStream()); var response = httpClient.send(request, BodyHandlers.ofInputStream());
@@ -262,7 +262,7 @@ public final class ResourceReaders {
// Use resolveSecurePath to get a symlink-free path verified under rootDir. // Use resolveSecurePath to get a symlink-free path verified under rootDir.
var securityManager = VmContext.get(null).getSecurityManager(); var securityManager = VmContext.get(null).getSecurityManager();
try { try {
var securePath = securityManager.resolveSecurePath(uri, true); var securePath = securityManager.resolveSecurePath(uri);
if (securePath != null) { if (securePath != null) {
try (var in = Files.newInputStream(securePath, LinkOption.NOFOLLOW_LINKS)) { try (var in = Files.newInputStream(securePath, LinkOption.NOFOLLOW_LINKS)) {
var content = in.readAllBytes(); var content = in.readAllBytes();
@@ -32,6 +32,7 @@ import java.util.Set;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.Supplier; import java.util.function.Supplier;
import java.util.stream.Collectors;
import org.graalvm.collections.EconomicMap; import org.graalvm.collections.EconomicMap;
import org.pkl.core.CommandSpec; import org.pkl.core.CommandSpec;
import org.pkl.core.CommandSpec.Argument; import org.pkl.core.CommandSpec.Argument;
@@ -407,6 +408,7 @@ public final class CommandSpecParser {
} else if (typeNode instanceof TypeNode.TypeAliasTypeNode typeAliasTypeNode) { } else if (typeNode instanceof TypeNode.TypeAliasTypeNode typeAliasTypeNode) {
if (typeAliasTypeNode.getVmTypeAlias() == BaseModule.getCharTypeAlias()) break; if (typeAliasTypeNode.getVmTypeAlias() == BaseModule.getCharTypeAlias()) break;
typeNode = typeAliasTypeNode.getAliasedTypeNode(); typeNode = typeAliasTypeNode.getAliasedTypeNode();
break;
} else { } else {
break; break;
} }
@@ -769,18 +771,18 @@ public final class CommandSpecParser {
return true; return true;
} else if (typeNode } else if (typeNode
instanceof TypeNode.UnionOfStringLiteralsTypeNode unionOfStringLiteralsTypeNode) { instanceof TypeNode.UnionOfStringLiteralsTypeNode unionOfStringLiteralsTypeNode) {
var choices = unionOfStringLiteralsTypeNode.getStringLiterals().stream().sorted().toList(); var choices = unionOfStringLiteralsTypeNode.getStringLiterals().stream().sorted();
if (each == null) if (each == null)
each = each =
(rawValue, workingDirUri) -> { (rawValue, workingDirUri) -> {
if (!unionOfStringLiteralsTypeNode.getStringLiterals().contains(rawValue)) { if (!unionOfStringLiteralsTypeNode.getStringLiterals().contains(rawValue)) {
throw BadValue.invalidChoice(rawValue, choices); throw BadValue.invalidChoice(rawValue, choices.toList());
} }
return rawValue; return rawValue;
}; };
if (all == null) all = this::allChooseLast; if (all == null) all = this::allChooseLast;
if (multiple == null) multiple = false; if (multiple == null) multiple = false;
if (metavar == null) metavar = "[" + String.join(", ", choices) + "]"; if (metavar == null) metavar = "[" + choices.collect(Collectors.joining(", ")) + "]";
if (completionCandidates == null) if (completionCandidates == null)
completionCandidates = new Fixed(unionOfStringLiteralsTypeNode.getStringLiterals()); completionCandidates = new Fixed(unionOfStringLiteralsTypeNode.getStringLiterals());
return true; return true;
@@ -1,38 +0,0 @@
/*
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.pkl.core.runtime;
import com.oracle.truffle.api.object.Shape;
/** Factory for Truffle {@link Shape} instances used by Pkl objects. */
public final class PklShape {
/** The root shape for all Pkl object instances. */
private static final Shape ROOT_SHAPE = Shape.newBuilder().build();
private PklShape() {}
/**
* Returns the root shape for Pkl objects.
*
* <p>This is the base shape from which all instance shapes derive. Properties are added
* dynamically as values are cached via {@link
* com.oracle.truffle.api.object.DynamicObjectLibrary#put}.
*/
public static Shape getRootShape() {
return ROOT_SHAPE;
}
}
@@ -219,6 +219,9 @@ public class PowerAssertions {
return parserNode; return parserNode;
} }
var children = parserNode.children(); var children = parserNode.children();
if (children == null) {
return null;
}
for (var child : children) { for (var child : children) {
var found = findParserNode(node, child, offset); var found = findParserNode(node, child, offset);
if (found != null) { if (found != null) {
@@ -104,7 +104,7 @@ public final class TestRunner {
if (factValue == Boolean.FALSE) { if (factValue == Boolean.FALSE) {
if (PowerAssertions.isEnabled()) { if (PowerAssertions.isEnabled()) {
try (var valueTracker = valueTrackerFactory.create()) { try (var valueTracker = valueTrackerFactory.create()) {
listing.cleanAllCachedValues(); listing.cachedValues.clear();
VmUtils.readMember(listing, idx); VmUtils.readMember(listing, idx);
var failure = var failure =
factFailure( factFailure(
@@ -29,7 +29,7 @@ import org.pkl.core.util.ByteArrayUtils;
import org.pkl.core.util.Nullable; import org.pkl.core.util.Nullable;
@ValueType @ValueType
public final class VmBytes implements VmValue, Iterable<Long> { public final class VmBytes extends VmValue implements Iterable<Long> {
private @Nullable VmList vmList; private @Nullable VmList vmList;
private @Nullable String base64; private @Nullable String base64;
@@ -19,8 +19,6 @@ import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.dsl.Idempotent; import com.oracle.truffle.api.dsl.Idempotent;
import com.oracle.truffle.api.frame.FrameDescriptor; import com.oracle.truffle.api.frame.FrameDescriptor;
import com.oracle.truffle.api.nodes.IndirectCallNode;
import com.oracle.truffle.api.object.Shape;
import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.api.source.SourceSection;
import java.util.*; import java.util.*;
import java.util.function.*; import java.util.function.*;
@@ -45,7 +43,7 @@ import org.pkl.core.util.Nullable;
// The currently implemented (and likely insufficient) solution is to // The currently implemented (and likely insufficient) solution is to
// * deeply force standard library modules at initialization time. // * deeply force standard library modules at initialization time.
// * ensure that any further mutation (e.g., lazy initialization in VmClass) is thread-safe. // * ensure that any further mutation (e.g., lazy initialization in VmClass) is thread-safe.
public final class VmClass implements VmValue { public final class VmClass extends VmValue {
private final SourceSection sourceSection; private final SourceSection sourceSection;
private final SourceSection headerSection; private final SourceSection headerSection;
private final SourceSection @Nullable [] docComment; private final SourceSection @Nullable [] docComment;
@@ -125,16 +123,6 @@ public final class VmClass implements VmValue {
private final Object mapToTypedMembersLock = new Object(); private final Object mapToTypedMembersLock = new Object();
// Shape for instances of this class - used for Truffle's Dynamic Object Model
@LateInit
@GuardedBy("instanceShapeLock")
private Shape __instanceShape;
private final Object instanceShapeLock = new Object();
/** Cached IndirectCallNode for force() operations. */
private final IndirectCallNode cachedCallNode = IndirectCallNode.create();
public VmClass( public VmClass(
SourceSection sourceSection, SourceSection sourceSection,
SourceSection headerSection, SourceSection headerSection,
@@ -709,41 +697,6 @@ public final class VmClass implements VmValue {
} }
} }
/**
* Returns the Truffle Shape for instances of this class.
*
* <p>The shape is lazily initialized from the root shape. Instance shapes are used by the Dynamic
* Object Model to provide optimized property storage and inline caching for cached property
* values.
*/
public Shape getInstanceShape() {
synchronized (instanceShapeLock) {
if (__instanceShape == null) {
__instanceShape = buildInstanceShape();
}
return __instanceShape;
}
}
@TruffleBoundary
private Shape buildInstanceShape() {
// start with the superclass shape if available, otherwise use root shape
if (superclass != null) {
return superclass.getInstanceShape();
}
return PklShape.getRootShape();
}
/**
* Returns the cached IndirectCallNode for force() operations.
*
* <p>This node is shared by all instances of this class and avoids the overhead of {@code
* IndirectCallNode.getUncached()} which performs a lookup on every call.
*/
public IndirectCallNode getCachedCallNode() {
return cachedCallNode;
}
/** /**
* Tells if the given property defines a member of this class. Requires a fully initialized * Tells if the given property defines a member of this class. Requires a fully initialized
* inheritance hierarchy. * inheritance hierarchy.
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -20,7 +20,7 @@ import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import java.util.Iterator; import java.util.Iterator;
import org.organicdesign.fp.xform.Xform; import org.organicdesign.fp.xform.Xform;
public abstract class VmCollection implements VmValue, Iterable<Object> { public abstract class VmCollection extends VmValue implements Iterable<Object> {
public interface Builder<T extends VmCollection> { public interface Builder<T extends VmCollection> {
void add(Object element); void add(Object element);
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@ import org.pkl.core.util.MathUtils;
import org.pkl.core.util.Nullable; import org.pkl.core.util.Nullable;
@ValueType @ValueType
public final class VmDataSize implements VmValue, Comparable<VmDataSize> { public final class VmDataSize extends VmValue implements Comparable<VmDataSize> {
private static final Map<Identifier, DataSizeUnit> UNITS = private static final Map<Identifier, DataSizeUnit> UNITS =
Map.ofEntries( Map.ofEntries(
entry(Identifier.B, DataSizeUnit.BYTES), entry(Identifier.B, DataSizeUnit.BYTES),
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -22,7 +22,7 @@ import org.pkl.core.util.DurationUtils;
import org.pkl.core.util.Nullable; import org.pkl.core.util.Nullable;
@ValueType @ValueType
public final class VmDuration implements VmValue, Comparable<VmDuration> { public final class VmDuration extends VmValue implements Comparable<VmDuration> {
private static final Map<Identifier, DurationUnit> UNITS = private static final Map<Identifier, DurationUnit> UNITS =
Map.of( Map.of(
Identifier.NS, DurationUnit.NANOS, Identifier.NS, DurationUnit.NANOS,
@@ -28,8 +28,6 @@ import org.pkl.core.util.EconomicMaps;
public final class VmDynamic extends VmObject { public final class VmDynamic extends VmObject {
private int cachedRegularMemberCount = -1; private int cachedRegularMemberCount = -1;
private final int length;
private static final class EmptyHolder { private static final class EmptyHolder {
private static final VmDynamic EMPTY = private static final VmDynamic EMPTY =
new VmDynamic( new VmDynamic(
@@ -39,6 +37,8 @@ public final class VmDynamic extends VmObject {
0); 0);
} }
private final int length;
public static VmDynamic empty() { public static VmDynamic empty() {
return EmptyHolder.EMPTY; return EmptyHolder.EMPTY;
} }
@@ -48,7 +48,7 @@ public final class VmDynamic extends VmObject {
VmObject parent, VmObject parent,
UnmodifiableEconomicMap<Object, ObjectMember> members, UnmodifiableEconomicMap<Object, ObjectMember> members,
int length) { int length) {
super(PklShape.getRootShape(), enclosingFrame, Objects.requireNonNull(parent), members); super(enclosingFrame, Objects.requireNonNull(parent), members);
this.length = length; this.length = length;
} }
@@ -75,7 +75,8 @@ public final class VmDynamic extends VmObject {
@Override @Override
@TruffleBoundary @TruffleBoundary
public PObject export() { public PObject export() {
var properties = CollectionUtils.<String, Object>newLinkedHashMap(getCachedValueCount()); var properties =
CollectionUtils.<String, Object>newLinkedHashMap(EconomicMaps.size(cachedValues));
iterateMemberValues( iterateMemberValues(
(key, member, value) -> { (key, member, value) -> {
@@ -108,7 +109,7 @@ public final class VmDynamic extends VmObject {
other.force(false); other.force(false);
if (getRegularMemberCount() != other.getRegularMemberCount()) return false; if (getRegularMemberCount() != other.getRegularMemberCount()) return false;
var cursor = getCachedValueEntries(); var cursor = cachedValues.getEntries();
while (cursor.advance()) { while (cursor.advance()) {
Object key = cursor.getKey(); Object key = cursor.getKey();
if (isHiddenOrLocalProperty(key)) continue; if (isHiddenOrLocalProperty(key)) continue;
@@ -129,7 +130,7 @@ public final class VmDynamic extends VmObject {
force(false); force(false);
var result = 0; var result = 0;
var cursor = getCachedValueEntries(); var cursor = cachedValues.getEntries();
while (cursor.advance()) { while (cursor.advance()) {
var key = cursor.getKey(); var key = cursor.getKey();
@@ -149,9 +150,8 @@ public final class VmDynamic extends VmObject {
if (cachedRegularMemberCount != -1) return cachedRegularMemberCount; if (cachedRegularMemberCount != -1) return cachedRegularMemberCount;
var result = 0; var result = 0;
var cursor = getCachedValueEntries(); for (var key : cachedValues.getKeys()) {
while (cursor.advance()) { if (!isHiddenOrLocalProperty(key)) result += 1;
if (!isHiddenOrLocalProperty(cursor.getKey())) result += 1;
} }
cachedRegularMemberCount = result; cachedRegularMemberCount = result;
return result; return result;
@@ -23,14 +23,9 @@ import org.graalvm.collections.UnmodifiableEconomicMap;
import org.pkl.core.ast.PklRootNode; import org.pkl.core.ast.PklRootNode;
import org.pkl.core.ast.member.ObjectMember; import org.pkl.core.ast.member.ObjectMember;
import org.pkl.core.util.EconomicMaps; import org.pkl.core.util.EconomicMaps;
import org.pkl.core.util.EmptyMapCursor;
import org.pkl.core.util.MapCursor;
import org.pkl.core.util.Nullable; import org.pkl.core.util.Nullable;
public final class VmFunction implements VmObjectLike { public final class VmFunction extends VmObjectLike {
// Own fields (VmFunction does not extend DynamicObject, so it has its own storage)
private final MaterializedFrame enclosingFrame;
private @Nullable Object extraStorage;
private final Object thisValue; private final Object thisValue;
private final int paramCount; private final int paramCount;
@@ -42,28 +37,13 @@ public final class VmFunction implements VmObjectLike {
int paramCount, int paramCount,
PklRootNode rootNode, PklRootNode rootNode,
@Nullable Object extraStorage) { @Nullable Object extraStorage) {
this.enclosingFrame = enclosingFrame; super(enclosingFrame);
this.thisValue = thisValue; this.thisValue = thisValue;
this.paramCount = paramCount; this.paramCount = paramCount;
this.rootNode = rootNode; this.rootNode = rootNode;
this.extraStorage = extraStorage; this.extraStorage = extraStorage;
} }
@Override
public MaterializedFrame getEnclosingFrame() {
return enclosingFrame;
}
@Override
public @Nullable Object getExtraStorage() {
return extraStorage;
}
@Override
public void setExtraStorage(@Nullable Object extraStorage) {
this.extraStorage = extraStorage;
}
public RootCallTarget getCallTarget() { public RootCallTarget getCallTarget() {
return rootNode.getCallTarget(); return rootNode.getCallTarget();
} }
@@ -143,27 +123,17 @@ public final class VmFunction implements VmObjectLike {
} }
@Override @Override
public MapCursor<Object, Object> getCachedValueEntries() { public boolean iterateMemberValues(MemberValueConsumer consumer) {
return EmptyMapCursor.instance();
}
@Override
public int getCachedValueCount() {
return 0;
}
@Override
public boolean iterateMemberValues(VmObjectLike.MemberValueConsumer consumer) {
return true; return true;
} }
@Override @Override
public boolean forceAndIterateMemberValues(VmObjectLike.ForcedMemberValueConsumer consumer) { public boolean forceAndIterateMemberValues(ForcedMemberValueConsumer consumer) {
return true; return true;
} }
@Override @Override
public boolean iterateAlreadyForcedMemberValues(VmObjectLike.ForcedMemberValueConsumer consumer) { public boolean iterateAlreadyForcedMemberValues(ForcedMemberValueConsumer consumer) {
return true; return true;
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -25,7 +25,7 @@ import org.pkl.core.util.Nullable;
// Some code copied from kotlin.ranges.Progressions, kotlin.ranges.ProgressionIterators, // Some code copied from kotlin.ranges.Progressions, kotlin.ranges.ProgressionIterators,
// kotlin.internal.ProgressionUtil (Apache 2). // kotlin.internal.ProgressionUtil (Apache 2).
@ValueType @ValueType
public final class VmIntSeq implements VmValue, Iterable<Long> { public final class VmIntSeq extends VmValue implements Iterable<Long> {
public final long start; public final long start;
public final long end; public final long end;
public final long step; public final long step;
@@ -34,7 +34,7 @@ import org.pkl.parser.syntax.Module;
@TruffleLanguage.Registration( @TruffleLanguage.Registration(
id = "pkl", id = "pkl",
name = "Pkl", name = "Pkl",
version = "0.32.0-dev", version = "0.31.0",
characterMimeTypes = VmLanguage.MIME_TYPE, characterMimeTypes = VmLanguage.MIME_TYPE,
contextPolicy = ContextPolicy.SHARED) contextPolicy = ContextPolicy.SHARED)
@ProvidedTags(PklTags.Expression.class) @ProvidedTags(PklTags.Expression.class)
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -87,7 +87,7 @@ public final class VmListing extends VmListingOrMapping {
@Override @Override
@TruffleBoundary @TruffleBoundary
public List<Object> export() { public List<Object> export() {
var properties = new ArrayList<>(getCachedValueCount()); var properties = new ArrayList<>(EconomicMaps.size(cachedValues));
iterateMemberValues( iterateMemberValues(
(key, prop, value) -> { (key, prop, value) -> {
@@ -121,7 +121,7 @@ public final class VmListing extends VmListingOrMapping {
force(false); force(false);
other.force(false); other.force(false);
var cursor = getCachedValueEntries(); var cursor = cachedValues.getEntries();
while (cursor.advance()) { while (cursor.advance()) {
var key = cursor.getKey(); var key = cursor.getKey();
if (key instanceof Identifier) continue; if (key instanceof Identifier) continue;
@@ -142,7 +142,7 @@ public final class VmListing extends VmListingOrMapping {
force(false); force(false);
var result = 0; var result = 0;
var cursor = getCachedValueEntries(); var cursor = cachedValues.getEntries();
while (cursor.advance()) { while (cursor.advance()) {
var key = cursor.getKey(); var key = cursor.getKey();
@@ -1,5 +1,5 @@
/* /*
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@ import org.graalvm.collections.UnmodifiableEconomicMap;
import org.pkl.core.ast.member.ListingOrMappingTypeCastNode; import org.pkl.core.ast.member.ListingOrMappingTypeCastNode;
import org.pkl.core.ast.member.ObjectMember; import org.pkl.core.ast.member.ObjectMember;
import org.pkl.core.ast.type.TypeNode; import org.pkl.core.ast.type.TypeNode;
import org.pkl.core.util.EconomicMaps;
import org.pkl.core.util.Nullable; import org.pkl.core.util.Nullable;
public abstract class VmListingOrMapping extends VmObject { public abstract class VmListingOrMapping extends VmObject {
@@ -31,24 +32,24 @@ public abstract class VmListingOrMapping extends VmObject {
private final @Nullable Object typeCheckReceiver; private final @Nullable Object typeCheckReceiver;
private final @Nullable VmObjectLike typeCheckOwner; private final @Nullable VmObjectLike typeCheckOwner;
protected VmListingOrMapping( public VmListingOrMapping(
MaterializedFrame enclosingFrame, MaterializedFrame enclosingFrame,
@Nullable VmObject parent, @Nullable VmObject parent,
UnmodifiableEconomicMap<Object, ObjectMember> members) { UnmodifiableEconomicMap<Object, ObjectMember> members) {
super(PklShape.getRootShape(), enclosingFrame, parent, members); super(enclosingFrame, parent, members);
typeCastNode = null; typeCastNode = null;
typeCheckReceiver = null; typeCheckReceiver = null;
typeCheckOwner = null; typeCheckOwner = null;
} }
protected VmListingOrMapping( public VmListingOrMapping(
MaterializedFrame enclosingFrame, MaterializedFrame enclosingFrame,
@Nullable VmObject parent, @Nullable VmObject parent,
UnmodifiableEconomicMap<Object, ObjectMember> members, UnmodifiableEconomicMap<Object, ObjectMember> members,
ListingOrMappingTypeCastNode typeCastNode, ListingOrMappingTypeCastNode typeCastNode,
Object typeCheckReceiver, Object typeCheckReceiver,
VmObjectLike typeCheckOwner) { VmObjectLike typeCheckOwner) {
super(PklShape.getRootShape(), enclosingFrame, parent, members); super(enclosingFrame, parent, members);
this.typeCastNode = typeCastNode; this.typeCastNode = typeCastNode;
this.typeCheckReceiver = typeCheckReceiver; this.typeCheckReceiver = typeCheckReceiver;
this.typeCheckOwner = typeCheckOwner; this.typeCheckOwner = typeCheckOwner;
@@ -87,7 +88,7 @@ public abstract class VmListingOrMapping extends VmObject {
@Override @Override
@TruffleBoundary @TruffleBoundary
public final @Nullable Object getCachedValue(Object key) { public final @Nullable Object getCachedValue(Object key) {
var result = super.getCachedValue(key); var result = EconomicMaps.get(cachedValues, key);
// if this object has members, `this[key]` may differ from `parent[key]`, so stop the search // if this object has members, `this[key]` may differ from `parent[key]`, so stop the search
if (result != null || !members.isEmpty()) return result; if (result != null || !members.isEmpty()) return result;

Some files were not shown because too many files have changed in this diff Show More