mirror of
https://github.com/apple/pkl.git
synced 2026-07-10 15:12:43 +02:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 750e983366 |
@@ -1,4 +1,2 @@
|
||||
# Auto-format Kotlin code
|
||||
816cd483c8adf4c04e14236c173a1dc6bd2579ea
|
||||
# Format Kotlin code again
|
||||
2b3603b544bae2ad87374b65afaf8ac018216261
|
||||
|
||||
+2
-2
@@ -2,9 +2,9 @@ amends "pkl:Project"
|
||||
|
||||
dependencies {
|
||||
["pkl.impl.ghactions"] {
|
||||
uri = "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.8.2"
|
||||
uri = "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.5.0"
|
||||
}
|
||||
["gha"] {
|
||||
uri = "package://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.4.0"
|
||||
uri = "package://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.2.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,37 +3,37 @@
|
||||
"resolvedDependencies": {
|
||||
"package://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1": {
|
||||
"type": "remote",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.9.0",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.3.1",
|
||||
"checksums": {
|
||||
"sha256": "5947924cf94fae9d8cdca42ade3f86db2675842cab7254214e7c0e281ddb6908"
|
||||
"sha256": "fd515da685ea126678c3ec684e84a4f992d43481cc1d75cb866cd55775f675f9"
|
||||
}
|
||||
},
|
||||
"package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1": {
|
||||
"type": "remote",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.8.2",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.5.0",
|
||||
"checksums": {
|
||||
"sha256": "12cca6326806ec37abc790a6707b6d907b4f8ba97628f2bc7fb327b5a6f68b49"
|
||||
"sha256": "2c1e0d9efcd65b3c3207bf535c325ebc0ec2ab169187b324c4bb70821cac0e51"
|
||||
}
|
||||
},
|
||||
"package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.deepToTyped@1": {
|
||||
"type": "remote",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.deepToTyped@1.2.1",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.deepToTyped@1.2.0",
|
||||
"checksums": {
|
||||
"sha256": "6e752d1e84aff24c3a1801658f27f12af70840c39b3fe7bac509c8178d566d25"
|
||||
"sha256": "84c7feb391f4ac273a99dc89b8fd51dbcd21dbda4ce640f6908527f83acdd4d6"
|
||||
}
|
||||
},
|
||||
"package://pkg.pkl-lang.org/pkl-pantry/pkl.github.dependabotManagedActions@1": {
|
||||
"type": "remote",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.github.dependabotManagedActions@1.1.9",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.github.dependabotManagedActions@1.0.3",
|
||||
"checksums": {
|
||||
"sha256": "467b91559f31ad7401c78d3df9569b5ec7aa4e1b49209f9f22d02bd72971e0bd"
|
||||
"sha256": "d368900942efb88ed51a98f9614748b06c74ba43423f045fcd6dedb5dbdc0bea"
|
||||
}
|
||||
},
|
||||
"package://pkg.pkl-lang.org/pkl-pantry/com.github.dependabot@1": {
|
||||
"type": "remote",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.dependabot@1.0.4",
|
||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.dependabot@1.0.0",
|
||||
"checksums": {
|
||||
"sha256": "c7391119f946d7761d0ca0cc358ed8fe2bdfc691411087ccac89637bd96fec4a"
|
||||
"sha256": "02ef6f25bfca5b1d095db73ea15de79d2d2c6832ebcab61e6aba90554382abcb"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-16
@@ -1,25 +1,10 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: gradle
|
||||
cooldown:
|
||||
default-days: 7
|
||||
directory: /
|
||||
schedule:
|
||||
interval: weekly
|
||||
- package-ecosystem: github-actions
|
||||
cooldown:
|
||||
default-days: 7
|
||||
directory: /
|
||||
groups:
|
||||
first-party:
|
||||
patterns:
|
||||
- actions/*
|
||||
codeql:
|
||||
patterns:
|
||||
- github/codeql-action/*
|
||||
ignore:
|
||||
- dependency-name: '*'
|
||||
update-types:
|
||||
- version-update:semver-major
|
||||
schedule:
|
||||
interval: quarterly
|
||||
interval: weekly
|
||||
|
||||
+2
-58
@@ -22,8 +22,6 @@ testReports {
|
||||
excludeJobs {
|
||||
"bench"
|
||||
"github-release"
|
||||
"dependency-submission"
|
||||
"dependency-review"
|
||||
Regex("deploy-.*")
|
||||
}
|
||||
}
|
||||
@@ -42,15 +40,11 @@ local gradleCheckWindows = (baseGradleCheck) {
|
||||
os = "windows"
|
||||
}
|
||||
|
||||
local typealias PklJobs = Mapping<String, PklJob | *Workflow.Job>
|
||||
local typealias PklJobs = Mapping<String, PklJob>
|
||||
|
||||
local toWorkflowJobs: (PklJobs) -> Workflow.Jobs = (it) -> new Workflow.Jobs {
|
||||
for (k, v in it) {
|
||||
when (v is PklJob) {
|
||||
[k] = v.job
|
||||
} else {
|
||||
[k] = v
|
||||
}
|
||||
[k] = v.job
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,28 +173,6 @@ main {
|
||||
) {
|
||||
needs = buildAndTestJobs.keys.toListing()
|
||||
}
|
||||
["dependency-submission"] {
|
||||
`runs-on` = "ubuntu-latest"
|
||||
permissions {
|
||||
contents = "write"
|
||||
}
|
||||
steps {
|
||||
module.catalog.`actions/checkout@v6`
|
||||
(module.catalog.`actions/setup-java@v5`) {
|
||||
with {
|
||||
`java-version` = "25"
|
||||
distribution = "temurin"
|
||||
}
|
||||
}
|
||||
(module.catalog.`gradle/actions/dependency-submission@v6`) {
|
||||
with {
|
||||
// language=regexp
|
||||
`dependency-graph-include-configurations` =
|
||||
".*[rR]untimeClasspath|.*[cC]ompileClasspath"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} |> toWorkflowJobs
|
||||
}
|
||||
|
||||
@@ -224,31 +196,3 @@ release {
|
||||
}
|
||||
} |> toWorkflowJobs
|
||||
}
|
||||
|
||||
dependabot {
|
||||
updates {
|
||||
new {
|
||||
`package-ecosystem` = "gradle"
|
||||
schedule {
|
||||
interval = "weekly"
|
||||
}
|
||||
cooldown {
|
||||
`default-days` = 7
|
||||
}
|
||||
directory = "/"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
codeql {
|
||||
scans {
|
||||
new {
|
||||
language = "java-kotlin"
|
||||
buildMode = "autobuild"
|
||||
}
|
||||
new {
|
||||
language = "javascript-typescript"
|
||||
buildMode = "none"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,8 +23,7 @@ preSteps {
|
||||
when (os == "linux" && !musl) {
|
||||
new {
|
||||
name = "Install deps"
|
||||
run =
|
||||
"dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en"
|
||||
run = "dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ abstract module GradleJob
|
||||
extends "PklJob.pkl"
|
||||
|
||||
import "@gha/Workflow.pkl"
|
||||
import "@gha/context.pkl"
|
||||
import "@pkl.impl.ghactions/catalog.pkl"
|
||||
|
||||
/// Whether this is a release build or not.
|
||||
@@ -30,7 +29,8 @@ fetchDepth: Int?
|
||||
|
||||
fixed gradleArgs =
|
||||
new Listing {
|
||||
"$DEBUG_ARGS"
|
||||
"--info"
|
||||
"--stacktrace"
|
||||
"--no-daemon"
|
||||
"-DpklMultiJdkTesting=true"
|
||||
when (isRelease) {
|
||||
@@ -97,20 +97,6 @@ fixed job {
|
||||
}
|
||||
}
|
||||
}
|
||||
new {
|
||||
name = "Set DEBUG_ARGS env var"
|
||||
env {
|
||||
["RUNNER_DEBUG"] = context.runner.debug
|
||||
}
|
||||
shell = "bash"
|
||||
// language=bash
|
||||
run =
|
||||
"""
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
"""
|
||||
}
|
||||
...module.steps
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+3
-9
@@ -17,24 +17,18 @@ jobs:
|
||||
runs-on: nothing
|
||||
steps:
|
||||
- name: EnricoMi/publish-unit-test-result-action@v2
|
||||
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2
|
||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
||||
- name: actions/checkout@v6
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
- name: actions/create-github-app-token@v2
|
||||
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2
|
||||
- name: actions/download-artifact@v6
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
||||
- name: actions/setup-java@v5
|
||||
uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
- name: actions/upload-artifact@v5
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
- name: dawidd6/action-download-artifact@v11
|
||||
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
|
||||
- name: github/codeql-action/analyze@v4
|
||||
uses: github/codeql-action/analyze@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
|
||||
- name: github/codeql-action/init@v4
|
||||
uses: github/codeql-action/init@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
|
||||
- name: gradle/actions/dependency-submission@v6
|
||||
uses: gradle/actions/dependency-submission@3f131e8634966bd73d06cc69884922b02e6faf92 # v6
|
||||
- name: gradle/actions/setup-gradle@v5
|
||||
uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
|
||||
Generated
+53
-189
@@ -19,28 +19,20 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -60,28 +52,20 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -100,54 +84,38 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: bench:jmh
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||
gradle-compatibility:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -166,31 +134,23 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: gradle build java executables
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -217,27 +177,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -263,29 +215,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -314,27 +258,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -360,29 +296,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -408,24 +336,16 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -501,7 +421,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -526,27 +446,19 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -573,27 +485,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -619,29 +523,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -670,27 +566,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -716,29 +604,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -764,24 +644,16 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -857,7 +729,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -882,27 +754,19 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -949,7 +813,7 @@ jobs:
|
||||
pattern: test-results-xml-*
|
||||
- name: Publish test results
|
||||
if: '!cancelled()'
|
||||
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2
|
||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
||||
with:
|
||||
comment_mode: 'off'
|
||||
files: test-results-xml-*/**/*.xml
|
||||
|
||||
Generated
-62
@@ -1,62 +0,0 @@
|
||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
||||
'on':
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
schedule:
|
||||
- cron: 29 17 * * 4
|
||||
jobs:
|
||||
analyze-actions:
|
||||
name: Analyze (actions)
|
||||
permissions:
|
||||
security-events: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: github/codeql-action/init@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
|
||||
with:
|
||||
languages: actions
|
||||
build-mode: none
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
|
||||
with:
|
||||
category: /language:actions
|
||||
analyze-java-kotlin:
|
||||
name: Analyze (java-kotlin)
|
||||
permissions:
|
||||
security-events: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: github/codeql-action/init@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
|
||||
with:
|
||||
languages: java-kotlin
|
||||
build-mode: autobuild
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
|
||||
with:
|
||||
category: /language:java-kotlin
|
||||
analyze-javascript-typescript:
|
||||
name: Analyze (javascript-typescript)
|
||||
permissions:
|
||||
security-events: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: github/codeql-action/init@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
|
||||
with:
|
||||
languages: javascript-typescript
|
||||
build-mode: none
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v4
|
||||
with:
|
||||
category: /language:javascript-typescript
|
||||
Generated
+57
-217
@@ -17,28 +17,20 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -58,28 +50,20 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -98,54 +82,38 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: bench:jmh
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||
gradle-compatibility:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -164,31 +132,23 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: gradle build java executables
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -215,27 +175,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -261,29 +213,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -312,27 +256,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -358,29 +294,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -406,24 +334,16 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -499,7 +419,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -524,27 +444,19 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -571,27 +483,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -617,29 +521,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -668,27 +564,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -714,29 +602,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -762,24 +642,16 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -855,7 +727,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -880,27 +752,19 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -943,25 +807,17 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
environment: maven-release
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
||||
@@ -974,22 +830,7 @@ jobs:
|
||||
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }}
|
||||
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEPASSWORD }}
|
||||
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEUSERNAME }}
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true --no-parallel publishToSonatype
|
||||
dependency-submission:
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
- uses: gradle/actions/dependency-submission@3f131e8634966bd73d06cc69884922b02e6faf92 # v6
|
||||
with:
|
||||
dependency-graph-include-configurations: .*[rR]untimeClasspath|.*[cC]ompileClasspath
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true --no-parallel publishToSonatype
|
||||
publish-test-results:
|
||||
if: '!cancelled()'
|
||||
needs:
|
||||
@@ -1018,7 +859,7 @@ jobs:
|
||||
pattern: test-results-xml-*
|
||||
- name: Publish test results
|
||||
if: '!cancelled()'
|
||||
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2
|
||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
||||
with:
|
||||
comment_mode: 'off'
|
||||
files: test-results-xml-*/**/*.xml
|
||||
@@ -1050,7 +891,6 @@ jobs:
|
||||
- pkl-doc-alpine-linux-amd64-snapshot
|
||||
- pkl-doc-windows-amd64-snapshot
|
||||
- deploy-snapshot
|
||||
- dependency-submission
|
||||
- publish-test-results
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
Generated
+43
-180
@@ -13,28 +13,20 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -56,28 +48,20 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -100,27 +84,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -148,29 +124,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -200,27 +168,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -248,29 +208,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -298,24 +250,16 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -391,7 +335,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -418,27 +362,19 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -466,27 +402,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -514,29 +442,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -566,27 +486,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -614,29 +526,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -664,24 +568,16 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -757,7 +653,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -784,27 +680,19 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -824,31 +712,6 @@ jobs:
|
||||
name: test-results-html-pkl-doc-windows-amd64-snapshot
|
||||
path: '**/build/reports/tests/**/*'
|
||||
if-no-files-found: ignore
|
||||
verdict:
|
||||
if: always()
|
||||
needs:
|
||||
- check-pkl-github-actions
|
||||
- gradle-check
|
||||
- gradle-check-windows
|
||||
- pkl-cli-macOS-amd64-snapshot
|
||||
- pkl-cli-linux-amd64-snapshot
|
||||
- pkl-cli-macOS-aarch64-snapshot
|
||||
- pkl-cli-linux-aarch64-snapshot
|
||||
- pkl-cli-alpine-linux-amd64-snapshot
|
||||
- pkl-cli-windows-amd64-snapshot
|
||||
- pkl-doc-macOS-amd64-snapshot
|
||||
- pkl-doc-linux-amd64-snapshot
|
||||
- pkl-doc-macOS-aarch64-snapshot
|
||||
- pkl-doc-linux-aarch64-snapshot
|
||||
- pkl-doc-alpine-linux-amd64-snapshot
|
||||
- pkl-doc-windows-amd64-snapshot
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Failure verdict
|
||||
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
|
||||
run: |-
|
||||
echo "Some of the required jobs are either failing or were cancelled"
|
||||
exit 1
|
||||
upload-event-file:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -861,7 +724,7 @@ jobs:
|
||||
check-pkl-github-actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup Pkl
|
||||
|
||||
Generated
+53
-189
@@ -17,28 +17,20 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -58,28 +50,20 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -98,54 +82,38 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: bench:jmh
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||
gradle-compatibility:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -164,31 +132,23 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: gradle build java executables
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -215,27 +175,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -261,29 +213,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -312,27 +256,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -358,29 +294,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -406,24 +334,16 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -499,7 +419,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -524,27 +444,19 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -571,27 +483,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -617,29 +521,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -668,27 +564,19 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -714,29 +602,21 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: aarch64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -762,24 +642,16 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -855,7 +727,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -880,27 +752,19 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -947,7 +811,7 @@ jobs:
|
||||
pattern: test-results-xml-*
|
||||
- name: Publish test results
|
||||
if: '!cancelled()'
|
||||
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2
|
||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
||||
with:
|
||||
comment_mode: 'off'
|
||||
files: test-results-xml-*/**/*.xml
|
||||
|
||||
Generated
+57
-201
@@ -17,28 +17,20 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -58,28 +50,20 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: check
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -98,54 +82,38 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: bench:jmh
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||
gradle-compatibility:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
architecture: x64
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with: {}
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||
- name: Upload Test Result XML
|
||||
if: '!cancelled()'
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
@@ -164,11 +132,11 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -176,20 +144,12 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: gradle build java executables
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -216,10 +176,10 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -227,17 +187,9 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -263,10 +215,10 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -274,19 +226,11 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -315,10 +259,10 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -326,17 +270,9 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -362,10 +298,10 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -373,19 +309,11 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -411,10 +339,10 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -422,14 +350,6 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -505,7 +425,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.musl=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -530,10 +450,10 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -541,17 +461,9 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -578,10 +490,10 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -589,17 +501,9 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --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
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -625,10 +529,10 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -636,19 +540,11 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -677,10 +573,10 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -688,17 +584,9 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -724,10 +612,10 @@ jobs:
|
||||
steps:
|
||||
- name: Install deps
|
||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -735,19 +623,11 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Fix git ownership
|
||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -773,10 +653,10 @@ jobs:
|
||||
env:
|
||||
LANG: en_US.UTF-8
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -784,14 +664,6 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Install musl and zlib
|
||||
run: |
|
||||
set -e
|
||||
@@ -867,7 +739,7 @@ jobs:
|
||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.musl=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -892,10 +764,10 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
JAVA_HOME: /jdk
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -903,17 +775,9 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: gradle buildNative
|
||||
shell: bash
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||
- name: Upload executable artifacts
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||
with:
|
||||
@@ -956,10 +820,10 @@ jobs:
|
||||
LANG: en_US.UTF-8
|
||||
environment: maven-release
|
||||
steps:
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-java@1bcf9fb12cf4aa7d266a90ae39939e61372fe520 # v5
|
||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||
with:
|
||||
java-version: '25'
|
||||
distribution: temurin
|
||||
@@ -967,15 +831,7 @@ jobs:
|
||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||
with:
|
||||
cache-disabled: true
|
||||
- name: Set DEBUG_ARGS env var
|
||||
env:
|
||||
RUNNER_DEBUG: ${{ runner.debug }}
|
||||
shell: bash
|
||||
run: |-
|
||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
||||
fi
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
||||
@@ -988,7 +844,7 @@ jobs:
|
||||
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }}
|
||||
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEPASSWORD }}
|
||||
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEUSERNAME }}
|
||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true publishToSonatype closeAndReleaseSonatypeStagingRepository
|
||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true publishToSonatype closeAndReleaseSonatypeStagingRepository
|
||||
github-release:
|
||||
needs: deploy-release
|
||||
permissions:
|
||||
@@ -1043,7 +899,7 @@ jobs:
|
||||
pattern: test-results-xml-*
|
||||
- name: Publish test results
|
||||
if: '!cancelled()'
|
||||
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2
|
||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
||||
with:
|
||||
comment_mode: 'off'
|
||||
files: test-results-xml-*/**/*.xml
|
||||
|
||||
Generated
+1
-1
@@ -25,7 +25,7 @@ jobs:
|
||||
name_is_regexp: true
|
||||
run_id: ${{ github.event.workflow_run.id }}
|
||||
- name: Publish test results
|
||||
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2
|
||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
||||
with:
|
||||
commit: ${{ github.event.workflow_run.head_sha }}
|
||||
comment_mode: 'off'
|
||||
|
||||
Generated
+10
@@ -10,6 +10,16 @@
|
||||
<option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
|
||||
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
|
||||
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
|
||||
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
||||
<value />
|
||||
</option>
|
||||
<option name="IMPORT_LAYOUT_TABLE">
|
||||
<value>
|
||||
<package name="" withSubpackages="true" static="true" />
|
||||
<emptyLine />
|
||||
<package name="" withSubpackages="true" static="false" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="RIGHT_MARGIN" value="100" />
|
||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
||||
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
|
||||
|
||||
-8
@@ -27,19 +27,12 @@
|
||||
<option name="searchContext" value="ANY" />
|
||||
<option name="replacement" value="evaluatorSettings" />
|
||||
</InspectionPattern>
|
||||
<InspectionPattern>
|
||||
<option name="regExp" value="project\?\.resolvedEvaluatorSettings" />
|
||||
<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="FieldAccessNotGuarded" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="FieldMayBeFinal" enabled="true" level="INFORMATION" enabled_by_default="true">
|
||||
<scope name="AllExceptTruffleAst" level="WARNING" enabled="true" />
|
||||
</inspection_tool>
|
||||
@@ -101,7 +94,6 @@
|
||||
<option name="processLiterals" value="true" />
|
||||
<option name="processComments" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="StringToUpperWithoutLocale" enabled="true" level="WARNING" enabled_by_default="true" editorAttributes="WARNING_ATTRIBUTES" />
|
||||
<inspection_tool class="dd497f47-d38f-3fab-9ed7-eabe699620c8" enabled="true" level="ERROR" enabled_by_default="true" editorAttributes="ERRORS_ATTRIBUTES" />
|
||||
</profile>
|
||||
</component>
|
||||
@@ -74,7 +74,9 @@ gw wrapper --gradle-version [version] --gradle-distribution-sha256-sum [sha]
|
||||
|
||||
. (optional) Update _gradle/libs.version.toml_
|
||||
based on version information from https://search.maven.org, https://plugins.gradle.org, and GitHub repos
|
||||
. Run `gw updateDependencyLocks`
|
||||
. Validate changes with `gw build buildNative`
|
||||
. Review and commit the updated dependency lock files
|
||||
|
||||
== Code Generation
|
||||
|
||||
|
||||
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -14,13 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
plugins {
|
||||
id("pklAllProjects")
|
||||
id("pklJavaLibrary")
|
||||
pklAllProjects
|
||||
pklJavaLibrary
|
||||
id("me.champeau.jmh")
|
||||
}
|
||||
|
||||
val truffle: Configuration = configurations.create("truffle")
|
||||
val graal: Configuration = configurations.create("graal")
|
||||
val truffle: Configuration by configurations.creating
|
||||
val graal: Configuration by configurations.creating
|
||||
|
||||
dependencies {
|
||||
jmh(projects.pklCore)
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
# 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.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
|
||||
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
|
||||
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
|
||||
net.bytebuddy:byte-buddy:1.18.3=jmh,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
net.sf.jopt-simple:jopt-simple:5.0.4=jmh,jmhCompileClasspath,jmhRuntimeClasspath
|
||||
org.apache.commons:commons-math3:3.6.1=jmh,jmhCompileClasspath,jmhRuntimeClasspath
|
||||
org.apiguardian:apiguardian-api:1.1.2=jmhCompileClasspath,testCompileClasspath
|
||||
org.assertj:assertj-core:3.27.7=jmh,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
|
||||
org.graalvm.compiler:compiler:25.0.1=graal
|
||||
org.graalvm.polyglot:polyglot:25.0.1=jmh,jmhRuntimeClasspath,truffle
|
||||
org.graalvm.sdk:collections:25.0.1=graal,jmh,jmhRuntimeClasspath,truffle
|
||||
org.graalvm.sdk:graal-sdk:25.0.1=jmh,jmhRuntimeClasspath
|
||||
org.graalvm.sdk:nativeimage:25.0.1=jmh,jmhRuntimeClasspath,truffle
|
||||
org.graalvm.sdk:word:25.0.1=graal,jmh,jmhRuntimeClasspath,truffle
|
||||
org.graalvm.truffle:truffle-api:25.0.1=jmh,jmhRuntimeClasspath,truffle
|
||||
org.graalvm.truffle:truffle-compiler:25.0.1=graal
|
||||
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation
|
||||
org.jetbrains.kotlin:abi-tools:2.3.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.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable
|
||||
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
|
||||
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
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-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
|
||||
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable
|
||||
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable
|
||||
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath
|
||||
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=jmh,jmhCompileClasspath,jmhRuntimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||
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-core-jvm: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.jspecify:jspecify:1.0.0=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath
|
||||
org.junit.jupiter:junit-jupiter-api:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-engine:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-params:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-commons:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-engine:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath
|
||||
org.junit:junit-bom:6.0.3=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.msgpack:msgpack-core:0.9.11=jmh,jmhRuntimeClasspath
|
||||
org.openjdk.jmh:jmh-core:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath
|
||||
org.openjdk.jmh:jmh-generator-asm:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath
|
||||
org.openjdk.jmh:jmh-generator-bytecode:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath
|
||||
org.openjdk.jmh:jmh-generator-reflection:1.37=jmh,jmhCompileClasspath,jmhRuntimeClasspath
|
||||
org.opentest4j:opentest4j:1.3.0=jmh,jmhCompileClasspath,jmhRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.organicdesign:Paguro:3.10.3=jmh,jmhRuntimeClasspath
|
||||
org.ow2.asm:asm:9.0=jmh,jmhCompileClasspath,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
|
||||
@@ -1,76 +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 groovy.util.Node
|
||||
import groovy.xml.XmlParser
|
||||
import groovy.xml.XmlUtil
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
|
||||
abstract class ConfigureLateInitAnnotation : DefaultTask() {
|
||||
private val miscXmlFile = project.rootProject.file(".idea/misc.xml")
|
||||
|
||||
init {
|
||||
inputs.file(miscXmlFile)
|
||||
outputs.file(miscXmlFile)
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
fun run() {
|
||||
val annotationName = "org.pkl.core.util.LateInit"
|
||||
|
||||
if (!miscXmlFile.exists()) {
|
||||
miscXmlFile.writeText(
|
||||
"""
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
</project>
|
||||
"""
|
||||
.trimIndent()
|
||||
.trim()
|
||||
)
|
||||
}
|
||||
|
||||
val root = XmlParser().parse(miscXmlFile)
|
||||
|
||||
fun Node.childNodes() = children().filterIsInstance<Node>()
|
||||
|
||||
var entryPointsManager =
|
||||
root.childNodes().find {
|
||||
it.name() == "component" && it.attribute("name") == "EntryPointsManager"
|
||||
}
|
||||
if (entryPointsManager == null) {
|
||||
entryPointsManager = root.appendNode("component", mapOf("name" to "EntryPointsManager"))
|
||||
}
|
||||
|
||||
var writeAnnotations = entryPointsManager.childNodes().find { it.name() == "writeAnnotations" }
|
||||
if (writeAnnotations == null) {
|
||||
writeAnnotations = entryPointsManager.appendNode("writeAnnotations")
|
||||
}
|
||||
|
||||
val alreadyExists =
|
||||
writeAnnotations.childNodes().any {
|
||||
it.name() == "writeAnnotation" && it.attribute("name") == annotationName
|
||||
}
|
||||
|
||||
if (!alreadyExists) {
|
||||
writeAnnotations.appendNode("writeAnnotation", mapOf("name" to annotationName))
|
||||
miscXmlFile.writeText(XmlUtil.serialize(root))
|
||||
logger.lifecycle("Updated .idea/misc.xml")
|
||||
} else {
|
||||
logger.info("$annotationName is already configured in .idea/misc.xml")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
/*
|
||||
* Copyright © 2024-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 java.nio.file.AtomicMoveNotSupportedException
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.nio.file.Paths
|
||||
import java.nio.file.StandardCopyOption
|
||||
import java.util.*
|
||||
import java.util.zip.ZipInputStream
|
||||
import javax.inject.Inject
|
||||
import kotlin.io.path.createDirectories
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.internal.file.FileOperations
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.tasks.Input
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.process.ExecOperations
|
||||
|
||||
abstract class InstallGraalVm
|
||||
@Inject
|
||||
constructor(
|
||||
private val fileOperations: FileOperations,
|
||||
private val execOperations: ExecOperations,
|
||||
) : DefaultTask() {
|
||||
@get:Input abstract val graalVm: Property<BuildInfo.GraalVm>
|
||||
|
||||
init {
|
||||
@Suppress("LeakingThis") onlyIf("GraalVM not installed") { !graalVm.get().installDir.exists() }
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
@Suppress("unused")
|
||||
fun run() {
|
||||
// minimize chance of corruption by extract-to-random-dir-and-publish
|
||||
val distroDir = Paths.get(graalVm.get().homeDir, UUID.randomUUID().toString())
|
||||
try {
|
||||
distroDir.createDirectories()
|
||||
println("Extracting ${graalVm.get().downloadFile} into $distroDir")
|
||||
val os = org.gradle.internal.os.OperatingSystem.current()
|
||||
if (os.isWindows) extractZip(distroDir) else extractTarGz(distroDir)
|
||||
|
||||
val distroBinDir =
|
||||
if (os.isMacOsX) distroDir.resolve("Contents/Home/bin") else distroDir.resolve("bin")
|
||||
|
||||
println("Installing native-image into $distroDir")
|
||||
val gvmVersionMajor =
|
||||
requireNotNull(graalVm.get().version.split(".").first().toIntOrNull()) {
|
||||
"Invalid GraalVM JDK version: ${graalVm.get().graalVmJdkVersion}"
|
||||
}
|
||||
if (gvmVersionMajor < 24) {
|
||||
execOperations.exec {
|
||||
val executableName = if (os.isWindows) "gu.cmd" else "gu"
|
||||
executable = distroBinDir.resolve(executableName).toString()
|
||||
args("install", "--no-progress", "native-image")
|
||||
}
|
||||
}
|
||||
|
||||
publishInstallDir(distroDir, os)
|
||||
} catch (e: Exception) {
|
||||
try {
|
||||
fileOperations.delete(distroDir)
|
||||
} catch (ignored: Exception) {}
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
private fun extractTarGz(distroDir: Path) {
|
||||
// faster and more reliable than Gradle's `copy { from tarTree() }`
|
||||
execOperations.exec {
|
||||
workingDir = distroDir.toFile()
|
||||
executable = "tar"
|
||||
args("--strip-components=1", "-xzf", graalVm.get().downloadFile)
|
||||
}
|
||||
}
|
||||
|
||||
private fun extractZip(distroDir: Path) {
|
||||
val targetDir = distroDir.toAbsolutePath().normalize()
|
||||
ZipInputStream(graalVm.get().downloadFile.inputStream().buffered()).use { zipInput ->
|
||||
var entry = zipInput.nextEntry
|
||||
while (entry != null) {
|
||||
try {
|
||||
val strippedPath = stripFirstPathComponent(entry.name)
|
||||
if (strippedPath != null) {
|
||||
val target = targetDir.resolve(strippedPath).normalize()
|
||||
require(target.startsWith(targetDir)) {
|
||||
"GraalVM archive entry escapes destination directory: ${entry.name}"
|
||||
}
|
||||
if (entry.isDirectory) {
|
||||
target.createDirectories()
|
||||
} else {
|
||||
target.parent?.createDirectories()
|
||||
Files.copy(zipInput, target)
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
zipInput.closeEntry()
|
||||
}
|
||||
entry = zipInput.nextEntry
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun stripFirstPathComponent(path: String): String? {
|
||||
val normalizedPath = path.replace('\\', '/').trimStart('/')
|
||||
val separatorIndex = normalizedPath.indexOf('/')
|
||||
if (separatorIndex == -1) return null
|
||||
return normalizedPath.substring(separatorIndex + 1).takeIf { it.isNotEmpty() }
|
||||
}
|
||||
|
||||
private fun publishInstallDir(distroDir: Path, os: org.gradle.internal.os.OperatingSystem) {
|
||||
if (os.isWindows) {
|
||||
println("Installing ${graalVm.get().installDir} from $distroDir")
|
||||
moveAtomicallyOrRegularly(distroDir, graalVm.get().installDir.toPath())
|
||||
return
|
||||
}
|
||||
|
||||
println("Creating symlink ${graalVm.get().installDir} for $distroDir")
|
||||
val tempLink = Paths.get(graalVm.get().homeDir, UUID.randomUUID().toString())
|
||||
Files.createSymbolicLink(tempLink, distroDir)
|
||||
try {
|
||||
moveAtomicallyOrRegularly(tempLink, graalVm.get().installDir.toPath())
|
||||
} catch (e: Exception) {
|
||||
try {
|
||||
fileOperations.delete(tempLink.toFile())
|
||||
} catch (ignored: Exception) {}
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
private fun moveAtomicallyOrRegularly(source: Path, target: Path) {
|
||||
try {
|
||||
Files.move(source, target, StandardCopyOption.ATOMIC_MOVE)
|
||||
} catch (e: AtomicMoveNotSupportedException) {
|
||||
Files.move(source, target)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,114 +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.api.GradleException
|
||||
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>()
|
||||
|
||||
kotlin {
|
||||
jvmToolchain {
|
||||
languageVersion.set(buildInfo.jdkToolchainVersion)
|
||||
vendor.set(buildInfo.jdkVendor)
|
||||
}
|
||||
compilerOptions {
|
||||
val kotlinTarget = KotlinVersion.fromVersion(libs.versions.kotlinTarget.get())
|
||||
languageVersion.set(kotlinTarget)
|
||||
apiVersion.set(kotlinTarget)
|
||||
jvmTarget = JvmTarget.fromTarget(buildInfo.jvmTarget.toString())
|
||||
freeCompilerArgs.addAll(
|
||||
"-jvm-default=no-compatibility", // was: -Xjvm-default=all
|
||||
"-Xjdk-release=${buildInfo.jvmTarget}",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
spotless {
|
||||
val revertYearOnlyChanges = RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
|
||||
|
||||
kotlin {
|
||||
addStep(revertYearOnlyChanges)
|
||||
ktfmt(libs.versions.ktfmt.get()).googleStyle()
|
||||
target("src/*/kotlin/**/*.kt")
|
||||
licenseHeaderFile(
|
||||
rootProject.file("build-logic/src/main/resources/license-header.star-block.txt")
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Kotlin modules to guard: fail the build if any dependency resolves to a version higher than
|
||||
* `libs.versions.kotlinTarget`. This includes versions introduced via direct declarations, BOMs,
|
||||
* version catalogs, or constraints.
|
||||
*/
|
||||
val guardedKotlinModules = setOf(libs.kotlinStdLib.get().module, libs.kotlinReflect.get().module)
|
||||
|
||||
/**
|
||||
* Classpath configurations where the above rule applies. Kept narrow to avoid interfering with
|
||||
* Gradle/Kotlin plugin internal configurations.
|
||||
*/
|
||||
val guardedConfigurations =
|
||||
setOf(
|
||||
configurations.compileClasspath,
|
||||
configurations.runtimeClasspath,
|
||||
configurations.testCompileClasspath,
|
||||
configurations.testRuntimeClasspath,
|
||||
)
|
||||
|
||||
guardedConfigurations.forEach { configuration ->
|
||||
configuration.configure {
|
||||
incoming.afterResolve {
|
||||
resolutionResult.allComponents.forEach { component ->
|
||||
val moduleVersion = component.moduleVersion ?: return@forEach
|
||||
if (
|
||||
moduleVersion.module in guardedKotlinModules &&
|
||||
moduleVersion.version.exceedsKotlinTarget()
|
||||
) {
|
||||
throw GradleException(
|
||||
"Resolved ${moduleVersion.module}:${moduleVersion.version} on configuration $name, " +
|
||||
"which exceeds the allowed Kotlin version ($kotlinTargetVersion)"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// also works for version ranges like: [2.3.0,)
|
||||
val kotlinVersionRegex = Regex("""(\d+)\.(\d+)(?:\.\d+)?""")
|
||||
val kotlinTargetVersion = libs.versions.kotlinTarget.get()
|
||||
val targetMajor = kotlinTargetVersion.substringBefore('.').toInt()
|
||||
val targetMinor = kotlinTargetVersion.substringAfter('.').toInt()
|
||||
|
||||
fun String.exceedsKotlinTarget(): Boolean {
|
||||
val version =
|
||||
kotlinVersionRegex.find(this) ?: throw GradleException("Could not parse Kotlin version: $this")
|
||||
val major = version.groupValues[1].toInt()
|
||||
val minor = version.groupValues[2].toInt()
|
||||
return major > targetMajor || (major == targetMajor && minor > targetMinor)
|
||||
}
|
||||
+4
-9
@@ -17,11 +17,10 @@
|
||||
import org.jetbrains.gradle.ext.ActionDelegationConfig
|
||||
import org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
|
||||
import org.jetbrains.gradle.ext.ProjectSettings
|
||||
import org.jetbrains.gradle.ext.taskTriggers
|
||||
|
||||
plugins {
|
||||
id("pklAllProjects")
|
||||
id("pklGraalVm")
|
||||
pklAllProjects
|
||||
pklGraalVm
|
||||
|
||||
alias(libs.plugins.ideaExt)
|
||||
alias(libs.plugins.jmh) apply false
|
||||
@@ -37,9 +36,6 @@ nexusPublishing {
|
||||
}
|
||||
}
|
||||
|
||||
val configureLateInitAnnotation =
|
||||
tasks.register<ConfigureLateInitAnnotation>("configureLateInitAnnotation")
|
||||
|
||||
idea {
|
||||
project {
|
||||
this as ExtensionAware
|
||||
@@ -49,14 +45,13 @@ idea {
|
||||
delegateBuildRunToGradle = true
|
||||
testRunner = PLATFORM
|
||||
}
|
||||
taskTriggers.afterSync(configureLateInitAnnotation)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val clean = tasks.named("clean") { delete(layout.buildDirectory) }
|
||||
val clean by tasks.existing { delete(layout.buildDirectory) }
|
||||
|
||||
val printVersion = tasks.register("printVersion") { doFirst { println(buildInfo.pklVersion) } }
|
||||
val printVersion by tasks.registering { doFirst { println(buildInfo.pklVersion) } }
|
||||
|
||||
val message =
|
||||
"""
|
||||
|
||||
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
@file:Suppress("UnstableApiUsage")
|
||||
|
||||
rootProject.name = "build-logic"
|
||||
rootProject.name = "buildSrc"
|
||||
|
||||
pluginManagement {
|
||||
repositories {
|
||||
@@ -24,7 +24,7 @@ pluginManagement {
|
||||
}
|
||||
}
|
||||
|
||||
plugins { id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" }
|
||||
plugins { id("org.gradle.toolchains.foojay-resolver-convention") }
|
||||
|
||||
// makes ~/.gradle/init.gradle unnecessary and ~/.gradle/gradle.properties optional
|
||||
dependencyResolutionManagement {
|
||||
@@ -44,7 +44,7 @@ const val PKL_JVM_TARGET_DEFAULT_MAXIMUM = 17
|
||||
*
|
||||
* 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
|
||||
* `build-logic/build.gradle.kts` and `gradle-daemon-jvm.properties`.
|
||||
* `buildSrc/build.gradle.kts` and `gradle-daemon-jvm.properties`.
|
||||
*/
|
||||
const val PKL_JDK_VERSION_MIN = 25
|
||||
|
||||
+1
-1
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
+1
-1
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Copyright © 2024-2025 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 java.nio.file.Files
|
||||
import java.nio.file.Paths
|
||||
import java.nio.file.StandardCopyOption
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
import kotlin.io.path.createDirectories
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.internal.file.FileOperations
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.tasks.Input
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import org.gradle.process.ExecOperations
|
||||
|
||||
abstract class InstallGraalVm
|
||||
@Inject
|
||||
constructor(
|
||||
private val fileOperations: FileOperations,
|
||||
private val execOperations: ExecOperations,
|
||||
) : DefaultTask() {
|
||||
@get:Input abstract val graalVm: Property<BuildInfo.GraalVm>
|
||||
|
||||
init {
|
||||
@Suppress("LeakingThis") onlyIf("GraalVM not installed") { !graalVm.get().installDir.exists() }
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
@Suppress("unused")
|
||||
fun run() {
|
||||
// minimize chance of corruption by extract-to-random-dir-and-flip-symlink
|
||||
val distroDir = Paths.get(graalVm.get().homeDir, UUID.randomUUID().toString())
|
||||
try {
|
||||
distroDir.createDirectories()
|
||||
println("Extracting ${graalVm.get().downloadFile} into $distroDir")
|
||||
// faster and more reliable than Gradle's `copy { from tarTree() }`
|
||||
execOperations.exec {
|
||||
workingDir = distroDir.toFile()
|
||||
executable = "tar"
|
||||
args("--strip-components=1", "-xzf", graalVm.get().downloadFile)
|
||||
}
|
||||
|
||||
val os = org.gradle.internal.os.OperatingSystem.current()
|
||||
val distroBinDir =
|
||||
if (os.isMacOsX) distroDir.resolve("Contents/Home/bin") else distroDir.resolve("bin")
|
||||
|
||||
println("Installing native-image into $distroDir")
|
||||
val gvmVersionMajor =
|
||||
requireNotNull(graalVm.get().version.split(".").first().toIntOrNull()) {
|
||||
"Invalid GraalVM JDK version: ${graalVm.get().graalVmJdkVersion}"
|
||||
}
|
||||
if (gvmVersionMajor < 24) {
|
||||
execOperations.exec {
|
||||
val executableName = if (os.isWindows) "gu.cmd" else "gu"
|
||||
executable = distroBinDir.resolve(executableName).toString()
|
||||
args("install", "--no-progress", "native-image")
|
||||
}
|
||||
}
|
||||
|
||||
println("Creating symlink ${graalVm.get().installDir} for $distroDir")
|
||||
val tempLink = Paths.get(graalVm.get().homeDir, UUID.randomUUID().toString())
|
||||
Files.createSymbolicLink(tempLink, distroDir)
|
||||
try {
|
||||
Files.move(tempLink, graalVm.get().installDir.toPath(), StandardCopyOption.ATOMIC_MOVE)
|
||||
} catch (e: Exception) {
|
||||
try {
|
||||
fileOperations.delete(tempLink.toFile())
|
||||
} catch (ignored: Exception) {}
|
||||
throw e
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
try {
|
||||
fileOperations.delete(distroDir)
|
||||
} catch (ignored: Exception) {}
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -131,7 +131,7 @@ abstract class NativeImageBuild : DefaultTask() {
|
||||
add(imageName.get())
|
||||
// the actual limit (currently) used by native-image is this number + 1400 (idea is to
|
||||
// compensate for Truffle's own nodes)
|
||||
add("-H:MaxRuntimeCompileMethods=1800")
|
||||
add("-H:MaxRuntimeCompileMethods=2000")
|
||||
add("-H:+EnforceMaxRuntimeCompileMethods")
|
||||
add("--enable-url-protocols=http,https")
|
||||
add("-H:+ReportExceptionStackTraces")
|
||||
+4
-5
@@ -63,13 +63,12 @@ fun Project.configurePklPomMetadata() {
|
||||
|
||||
/** Configures POM validation task to check for unresolved versions and snapshots in releases. */
|
||||
fun Project.configurePomValidation() {
|
||||
val validatePom =
|
||||
tasks.register("validatePom") {
|
||||
val validatePom by
|
||||
tasks.registering {
|
||||
if (tasks.findByName("generatePomFileForLibraryPublication") == null) {
|
||||
return@register
|
||||
return@registering
|
||||
}
|
||||
val generatePomFileForLibraryPublication =
|
||||
tasks.named<GenerateMavenPom>("generatePomFileForLibraryPublication")
|
||||
val generatePomFileForLibraryPublication by tasks.existing(GenerateMavenPom::class)
|
||||
val outputFile =
|
||||
layout.buildDirectory.file("validatePom") // dummy output to satisfy up-to-date check
|
||||
|
||||
+1
-1
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
+16
-12
@@ -20,14 +20,12 @@ plugins { id("com.diffplug.spotless") }
|
||||
|
||||
val buildInfo = extensions.create<BuildInfo>("buildInfo", project)
|
||||
|
||||
dependencyLocking { lockAllConfigurations() }
|
||||
|
||||
configurations {
|
||||
val rejectedVersionSuffix = Regex("-alpha|-beta|-eap|-m|-rc|-snapshot", RegexOption.IGNORE_CASE)
|
||||
configureEach {
|
||||
resolutionStrategy {
|
||||
// forbid dependencies whose pom.xml's include version ranges, because this will lead to
|
||||
// unreproducible builds.
|
||||
|
||||
failOnDynamicVersions()
|
||||
componentSelection {
|
||||
all {
|
||||
if (rejectedVersionSuffix.containsMatchIn(candidate.version)) {
|
||||
@@ -79,7 +77,13 @@ plugins.withType(MavenPublishPlugin::class).configureEach {
|
||||
}
|
||||
}
|
||||
|
||||
val allDependencies = tasks.register<DependencyReportTask>("allDependencies")
|
||||
// settings.gradle.kts sets `--write-locks`
|
||||
// if Gradle command line contains this task name
|
||||
val updateDependencyLocks by tasks.registering {
|
||||
doLast { configurations.filter { it.isCanBeResolved }.forEach { it.resolve() } }
|
||||
}
|
||||
|
||||
val allDependencies by tasks.registering(DependencyReportTask::class)
|
||||
|
||||
tasks.withType(Test::class).configureEach {
|
||||
System.getProperty("testReportsDir")?.let { reportsDir ->
|
||||
@@ -108,7 +112,7 @@ tasks.withType(JavaExec::class).configureEach {
|
||||
private val libs = the<LibrariesForLibs>()
|
||||
|
||||
private val licenseHeaderFile by lazy {
|
||||
rootProject.file("build-logic/src/main/resources/license-header.star-block.txt")
|
||||
rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt")
|
||||
}
|
||||
|
||||
private fun KotlinGradleExtension.configureFormatter() {
|
||||
@@ -132,18 +136,18 @@ spotless {
|
||||
val revertYearOnlyChangesStep =
|
||||
RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
|
||||
|
||||
// When building root project, format build-logic files too.
|
||||
// We need this because build-logic is not a subproject of the root project, so a top-level
|
||||
// `spotlessApply` will not trigger `build-logic:spotlessApply`.
|
||||
if (project.path == rootProject.path) {
|
||||
// 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
|
||||
// `spotlessApply` will not trigger `buildSrc:spotlessApply`.
|
||||
if (project === rootProject) {
|
||||
kotlinGradle {
|
||||
configureFormatter()
|
||||
addStep(revertYearOnlyChangesStep)
|
||||
target("*.kts", "build-logic/*.kts", "build-logic/src/*/kotlin/**/*.kts")
|
||||
target("*.kts", "buildSrc/*.kts", "buildSrc/src/*/kotlin/**/*.kts")
|
||||
}
|
||||
kotlin {
|
||||
ktfmt(libs.versions.ktfmt.get()).googleStyle()
|
||||
target("build-logic/src/*/kotlin/**/*.kt")
|
||||
target("buildSrc/src/*/kotlin/**/*.kt")
|
||||
licenseHeaderFile(licenseHeaderFile)
|
||||
addStep(revertYearOnlyChangesStep)
|
||||
}
|
||||
+33
-34
@@ -132,8 +132,8 @@ tasks.shadowJar {
|
||||
|
||||
shadow { addShadowVariantIntoJavaComponent = false }
|
||||
|
||||
val testFatJar =
|
||||
tasks.register<Test>("testFatJar") {
|
||||
val testFatJar by
|
||||
tasks.registering(Test::class) {
|
||||
testClassesDirs = files(tasks.test.get().testClassesDirs)
|
||||
classpath =
|
||||
// compiled test classes
|
||||
@@ -148,48 +148,47 @@ val testFatJar =
|
||||
|
||||
tasks.check { dependsOn(testFatJar) }
|
||||
|
||||
val validateFatJar =
|
||||
tasks.register("validateFatJar") {
|
||||
val outputFile = layout.buildDirectory.file("validateFatJar/result.txt")
|
||||
inputs.files(tasks.shadowJar)
|
||||
inputs.property("nonRelocations", nonRelocations)
|
||||
outputs.file(outputFile)
|
||||
val validateFatJar by tasks.registering {
|
||||
val outputFile = layout.buildDirectory.file("validateFatJar/result.txt")
|
||||
inputs.files(tasks.shadowJar)
|
||||
inputs.property("nonRelocations", nonRelocations)
|
||||
outputs.file(outputFile)
|
||||
|
||||
doLast {
|
||||
val unshadowedFiles = mutableListOf<String>()
|
||||
zipTree(tasks.shadowJar.get().outputs.files.singleFile).visit {
|
||||
val fileDetails = this
|
||||
val path = fileDetails.relativePath.pathString
|
||||
if (
|
||||
!(fileDetails.isDirectory ||
|
||||
path.startsWith("org/pkl/") ||
|
||||
path.startsWith("META-INF/") ||
|
||||
nonRelocations.any { path.startsWith(it) })
|
||||
) {
|
||||
// don't throw exception inside `visit`
|
||||
// as this gives a misleading "Could not expand ZIP" error message
|
||||
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"))
|
||||
doLast {
|
||||
val unshadowedFiles = mutableListOf<String>()
|
||||
zipTree(tasks.shadowJar.get().outputs.files.singleFile).visit {
|
||||
val fileDetails = this
|
||||
val path = fileDetails.relativePath.pathString
|
||||
if (
|
||||
!(fileDetails.isDirectory ||
|
||||
path.startsWith("org/pkl/") ||
|
||||
path.startsWith("META-INF/") ||
|
||||
nonRelocations.any { path.startsWith(it) })
|
||||
) {
|
||||
// don't throw exception inside `visit`
|
||||
// as this gives a misleading "Could not expand ZIP" error message
|
||||
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"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.check { dependsOn(validateFatJar) }
|
||||
|
||||
val resolveSourcesJars =
|
||||
tasks.register<ResolveSourcesJars>("resolveSourcesJars") {
|
||||
val resolveSourcesJars by
|
||||
tasks.registering(ResolveSourcesJars::class) {
|
||||
configuration.set(configurations.runtimeClasspath)
|
||||
outputDir.set(layout.buildDirectory.dir("resolveSourcesJars"))
|
||||
}
|
||||
|
||||
val fatSourcesJar =
|
||||
tasks.register<MergeSourcesJars>("fatSourcesJar") {
|
||||
val fatSourcesJar by
|
||||
tasks.registering(MergeSourcesJars::class) {
|
||||
plugins.withId("pklJavaLibrary") { inputJars.from(tasks.named("sourcesJar")) }
|
||||
inputJars.from(firstPartySourcesJarsConfiguration)
|
||||
inputJars.from(resolveSourcesJars.map { fileTree(it.outputDir) })
|
||||
@@ -214,7 +213,7 @@ publishing {
|
||||
artifact(fatSourcesJar.flatMap { it.outputJar.asFile }) { classifier = "sources" }
|
||||
|
||||
plugins.withId("pklJavaLibrary") {
|
||||
val javadocJar = tasks.named<Jar>("javadocJar")
|
||||
val javadocJar by tasks.existing(Jar::class)
|
||||
// Javadoc Jar is not fat (didn't invest effort)
|
||||
artifact(javadocJar.flatMap { it.archiveFile }) { classifier = "javadoc" }
|
||||
}
|
||||
+13
-17
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -21,15 +21,11 @@ plugins { id("de.undercouch.download") }
|
||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||
|
||||
// tries to minimize chance of corruption by download-to-temp-file-and-move
|
||||
val downloadGraalVmAarch64 =
|
||||
tasks.register<Download>("downloadGraalVmAarch64") {
|
||||
configureDownloadGraalVm(buildInfo.graalVmAarch64)
|
||||
}
|
||||
val downloadGraalVmAarch64 by
|
||||
tasks.registering(Download::class) { configureDownloadGraalVm(buildInfo.graalVmAarch64) }
|
||||
|
||||
val downloadGraalVmAmd64 =
|
||||
tasks.register<Download>("downloadGraalVmAmd64") {
|
||||
configureDownloadGraalVm(buildInfo.graalVmAmd64)
|
||||
}
|
||||
val downloadGraalVmAmd64 by
|
||||
tasks.registering(Download::class) { configureDownloadGraalVm(buildInfo.graalVmAmd64) }
|
||||
|
||||
fun Download.configureDownloadGraalVm(graalvm: BuildInfo.GraalVm) {
|
||||
onlyIf { !graalvm.installDir.exists() }
|
||||
@@ -41,14 +37,14 @@ fun Download.configureDownloadGraalVm(graalvm: BuildInfo.GraalVm) {
|
||||
tempAndMove(true)
|
||||
}
|
||||
|
||||
val verifyGraalVmAarch64 =
|
||||
tasks.register<Verify>("verifyGraalVmAarch64") {
|
||||
val verifyGraalVmAarch64 by
|
||||
tasks.registering(Verify::class) {
|
||||
configureVerifyGraalVm(buildInfo.graalVmAarch64)
|
||||
dependsOn(downloadGraalVmAarch64)
|
||||
}
|
||||
|
||||
val verifyGraalVmAmd64 =
|
||||
tasks.register<Verify>("verifyGraalVmAmd64") {
|
||||
val verifyGraalVmAmd64 by
|
||||
tasks.registering(Verify::class) {
|
||||
configureVerifyGraalVm(buildInfo.graalVmAmd64)
|
||||
dependsOn(downloadGraalVmAmd64)
|
||||
}
|
||||
@@ -64,15 +60,15 @@ fun Verify.configureVerifyGraalVm(graalvm: BuildInfo.GraalVm) {
|
||||
}
|
||||
|
||||
@Suppress("unused")
|
||||
val installGraalVmAarch64 =
|
||||
tasks.register<InstallGraalVm>("installGraalVmAarch64") {
|
||||
val installGraalVmAarch64 by
|
||||
tasks.registering(InstallGraalVm::class) {
|
||||
dependsOn(verifyGraalVmAarch64)
|
||||
graalVm = buildInfo.graalVmAarch64
|
||||
}
|
||||
|
||||
@Suppress("unused")
|
||||
val installGraalVmAmd64 =
|
||||
tasks.register<InstallGraalVm>("installGraalVmAmd64") {
|
||||
val installGraalVmAmd64 by
|
||||
tasks.registering(InstallGraalVm::class) {
|
||||
dependsOn(verifyGraalVmAmd64)
|
||||
graalVm = buildInfo.graalVmAmd64
|
||||
}
|
||||
+2
-2
@@ -47,8 +47,8 @@ dependencies {
|
||||
}
|
||||
}
|
||||
|
||||
val validateHtml =
|
||||
tasks.register<JavaExec>("validateHtml") {
|
||||
val validateHtml by
|
||||
tasks.registering(JavaExec::class) {
|
||||
val resultFile = layout.buildDirectory.file("validateHtml/result.txt")
|
||||
inputs.files(htmlValidator.sources)
|
||||
outputs.file(resultFile)
|
||||
-3
@@ -13,7 +13,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import net.ltgt.gradle.errorprone.CheckSeverity
|
||||
import net.ltgt.gradle.errorprone.errorprone
|
||||
import net.ltgt.gradle.nullaway.nullaway
|
||||
import org.gradle.accessors.dm.LibrariesForLibs
|
||||
@@ -37,8 +36,6 @@ nullaway { onlyNullMarked = true }
|
||||
|
||||
tasks.withType<JavaCompile>().configureEach {
|
||||
options.errorprone.disableAllChecks = true
|
||||
options.errorprone.check("StringCaseLocaleUsage", CheckSeverity.ERROR)
|
||||
options.errorprone.check("GuardedBy", CheckSeverity.ERROR)
|
||||
options.errorprone.nullaway {
|
||||
error()
|
||||
onlyNullMarked = true
|
||||
+16
-16
@@ -26,8 +26,8 @@ plugins {
|
||||
val executableSpec = project.extensions.create("executable", ExecutableSpec::class.java)
|
||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||
|
||||
val javaExecutable =
|
||||
tasks.register<ExecutableJar>("javaExecutable") {
|
||||
val javaExecutable by
|
||||
tasks.registering(ExecutableJar::class) {
|
||||
group = "build"
|
||||
dependsOn(tasks.jar)
|
||||
inJar = tasks.shadowJar.flatMap { it.archiveFile }
|
||||
@@ -47,19 +47,20 @@ fun Task.setupTestStartJavaExecutable(launcher: Provider<JavaLauncher>? = null)
|
||||
val outputFile = layout.buildDirectory.file("testStartJavaExecutable/$name")
|
||||
outputs.file(outputFile)
|
||||
|
||||
val execOutput = providers.exec {
|
||||
val executablePath = javaExecutable.get().outputs.files.singleFile
|
||||
if (launcher?.isPresent == true) {
|
||||
commandLine(
|
||||
launcher.get().executablePath.asFile.absolutePath,
|
||||
"-jar",
|
||||
executablePath.absolutePath,
|
||||
"--version",
|
||||
)
|
||||
} else {
|
||||
commandLine(executablePath.absolutePath, "--version")
|
||||
val execOutput =
|
||||
providers.exec {
|
||||
val executablePath = javaExecutable.get().outputs.files.singleFile
|
||||
if (launcher?.isPresent == true) {
|
||||
commandLine(
|
||||
launcher.get().executablePath.asFile.absolutePath,
|
||||
"-jar",
|
||||
executablePath.absolutePath,
|
||||
"--version",
|
||||
)
|
||||
} else {
|
||||
commandLine(executablePath.absolutePath, "--version")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
doLast {
|
||||
val outputText = execOutput.standardOutput.asText.get()
|
||||
@@ -77,8 +78,7 @@ fun Task.setupTestStartJavaExecutable(launcher: Provider<JavaLauncher>? = null)
|
||||
}
|
||||
}
|
||||
|
||||
val testStartJavaExecutable =
|
||||
tasks.register("testStartJavaExecutable") { setupTestStartJavaExecutable() }
|
||||
val testStartJavaExecutable by tasks.registering { setupTestStartJavaExecutable() }
|
||||
|
||||
// Setup `testStartJavaExecutable` tasks for multi-JDK testing.
|
||||
val testStartJavaExecutableOnOtherJdks =
|
||||
+1
-3
@@ -56,9 +56,7 @@ spotless {
|
||||
addStep(revertYearOnlyChanges)
|
||||
googleJavaFormat(libs.versions.googleJavaFormat.get())
|
||||
target("src/*/java/**/*.java")
|
||||
licenseHeaderFile(
|
||||
rootProject.file("build-logic/src/main/resources/license-header.star-block.txt")
|
||||
)
|
||||
licenseHeaderFile(rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt"))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* 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"))
|
||||
}
|
||||
}
|
||||
+38
-46
@@ -30,18 +30,15 @@ plugins {
|
||||
val executableSpec = project.extensions.getByType<ExecutableSpec>()
|
||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||
|
||||
val stagedMacAmd64Executable: Configuration = configurations.create("stagedMacAmd64Executable")
|
||||
val stagedMacAarch64Executable: Configuration = configurations.create("stagedMacAarch64Executable")
|
||||
val stagedLinuxAmd64Executable: Configuration = configurations.create("stagedLinuxAmd64Executable")
|
||||
val stagedLinuxAarch64Executable: Configuration =
|
||||
configurations.create("stagedLinuxAarch64Executable")
|
||||
val stagedAlpineLinuxAmd64Executable: Configuration =
|
||||
configurations.create("stagedAlpineLinuxAmd64Executable")
|
||||
val stagedWindowsAmd64Executable: Configuration =
|
||||
configurations.create("stagedWindowsAmd64Executable")
|
||||
val stagedMacAmd64Executable: Configuration by configurations.creating
|
||||
val stagedMacAarch64Executable: Configuration by configurations.creating
|
||||
val stagedLinuxAmd64Executable: Configuration by configurations.creating
|
||||
val stagedLinuxAarch64Executable: Configuration by configurations.creating
|
||||
val stagedAlpineLinuxAmd64Executable: Configuration by configurations.creating
|
||||
val stagedWindowsAmd64Executable: Configuration by configurations.creating
|
||||
|
||||
val nativeImageClasspath =
|
||||
configurations.create("nativeImageClasspath") {
|
||||
val nativeImageClasspath by
|
||||
configurations.creating {
|
||||
extendsFrom(configurations.runtimeClasspath.get())
|
||||
// Ensure native-image version uses GraalVM C SDKs instead of Java FFI or JNA
|
||||
// (comes from artifact `mordant-jvm-graal-ffi`).
|
||||
@@ -89,32 +86,32 @@ private fun NativeImageBuild.setClasspath() {
|
||||
classpath.from(nativeImageClasspath)
|
||||
}
|
||||
|
||||
val macExecutableAmd64 =
|
||||
tasks.register<NativeImageBuild>("macExecutableAmd64") {
|
||||
val macExecutableAmd64 by
|
||||
tasks.registering(NativeImageBuild::class) {
|
||||
imageName = executableSpec.name.map { "$it-macos-amd64" }
|
||||
mainClass = executableSpec.mainClass
|
||||
amd64()
|
||||
setClasspath()
|
||||
}
|
||||
|
||||
val macExecutableAarch64 =
|
||||
tasks.register<NativeImageBuild>("macExecutableAarch64") {
|
||||
val macExecutableAarch64 by
|
||||
tasks.registering(NativeImageBuild::class) {
|
||||
imageName = executableSpec.name.map { "$it-macos-aarch64" }
|
||||
mainClass = executableSpec.mainClass
|
||||
aarch64()
|
||||
setClasspath()
|
||||
}
|
||||
|
||||
val linuxExecutableAmd64 =
|
||||
tasks.register<NativeImageBuild>("linuxExecutableAmd64") {
|
||||
val linuxExecutableAmd64 by
|
||||
tasks.registering(NativeImageBuild::class) {
|
||||
imageName = executableSpec.name.map { "$it-linux-amd64" }
|
||||
mainClass = executableSpec.mainClass
|
||||
amd64()
|
||||
setClasspath()
|
||||
}
|
||||
|
||||
val linuxExecutableAarch64 =
|
||||
tasks.register<NativeImageBuild>("linuxExecutableAarch64") {
|
||||
val linuxExecutableAarch64 by
|
||||
tasks.registering(NativeImageBuild::class) {
|
||||
imageName = executableSpec.name.map { "$it-linux-aarch64" }
|
||||
mainClass = executableSpec.mainClass
|
||||
aarch64()
|
||||
@@ -124,8 +121,8 @@ val linuxExecutableAarch64 =
|
||||
extraNativeImageArgs.add("-H:PageSize=65536")
|
||||
}
|
||||
|
||||
val alpineExecutableAmd64 =
|
||||
tasks.register<NativeImageBuild>("alpineExecutableAmd64") {
|
||||
val alpineExecutableAmd64 by
|
||||
tasks.registering(NativeImageBuild::class) {
|
||||
imageName = executableSpec.name.map { "$it-alpine-linux-amd64" }
|
||||
mainClass = executableSpec.mainClass
|
||||
amd64()
|
||||
@@ -133,27 +130,26 @@ val alpineExecutableAmd64 =
|
||||
extraNativeImageArgs.addAll(listOf("--static", "--libc=musl"))
|
||||
}
|
||||
|
||||
val windowsExecutableAmd64 =
|
||||
tasks.register<NativeImageBuild>("windowsExecutableAmd64") {
|
||||
val windowsExecutableAmd64 by
|
||||
tasks.registering(NativeImageBuild::class) {
|
||||
imageName = executableSpec.name.map { "$it-windows-amd64" }
|
||||
mainClass = executableSpec.mainClass
|
||||
amd64()
|
||||
setClasspath()
|
||||
}
|
||||
|
||||
val assembleNative = tasks.named("assembleNative")
|
||||
val assembleNative by tasks.existing
|
||||
|
||||
val testStartNativeExecutable =
|
||||
tasks.register("testStartNativeExecutable") {
|
||||
val testStartNativeExecutable by
|
||||
tasks.registering {
|
||||
dependsOn(assembleNative)
|
||||
|
||||
// dummy file for up-to-date checking
|
||||
val outputFile = project.layout.buildDirectory.file("testStartNativeExecutable/output.txt")
|
||||
outputs.file(outputFile)
|
||||
|
||||
val execOutput = providers.exec {
|
||||
commandLine(assembleNative.get().outputs.files.singleFile, "--version")
|
||||
}
|
||||
val execOutput =
|
||||
providers.exec { commandLine(assembleNative.get().outputs.files.singleFile, "--version") }
|
||||
|
||||
doLast {
|
||||
val outputText = execOutput.standardOutput.asText.get()
|
||||
@@ -173,14 +169,15 @@ val testStartNativeExecutable =
|
||||
|
||||
val requiredGlibcVersion: Version = Version.parse("2.17")
|
||||
|
||||
val checkGlibc =
|
||||
tasks.register("checkGlibc") {
|
||||
val checkGlibc by
|
||||
tasks.registering {
|
||||
enabled = buildInfo.os.isLinux && !buildInfo.musl
|
||||
dependsOn(assembleNative)
|
||||
doLast {
|
||||
val exec = providers.exec {
|
||||
commandLine("objdump", "-T", assembleNative.get().outputs.files.singleFile)
|
||||
}
|
||||
val exec =
|
||||
providers.exec {
|
||||
commandLine("objdump", "-T", assembleNative.get().outputs.files.singleFile)
|
||||
}
|
||||
val output = exec.standardOutput.asText.get()
|
||||
val minimumGlibcVersion =
|
||||
output
|
||||
@@ -209,24 +206,19 @@ private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
||||
outputs.files(other)
|
||||
}
|
||||
|
||||
val testNative = tasks.named("testNative") { dependsOn(testStartNativeExecutable, checkGlibc) }
|
||||
val testNative by tasks.existing { dependsOn(testStartNativeExecutable, checkGlibc) }
|
||||
|
||||
val assembleNativeMacOsAarch64 =
|
||||
tasks.named("assembleNativeMacOsAarch64") { wraps(macExecutableAarch64) }
|
||||
val assembleNativeMacOsAarch64 by tasks.existing { wraps(macExecutableAarch64) }
|
||||
|
||||
val assembleNativeMacOsAmd64 = tasks.named("assembleNativeMacOsAmd64") { wraps(macExecutableAmd64) }
|
||||
val assembleNativeMacOsAmd64 by tasks.existing { wraps(macExecutableAmd64) }
|
||||
|
||||
val assembleNativeLinuxAarch64 =
|
||||
tasks.named("assembleNativeLinuxAarch64") { wraps(linuxExecutableAarch64) }
|
||||
val assembleNativeLinuxAarch64 by tasks.existing { wraps(linuxExecutableAarch64) }
|
||||
|
||||
val assembleNativeLinuxAmd64 =
|
||||
tasks.named("assembleNativeLinuxAmd64") { wraps(linuxExecutableAmd64) }
|
||||
val assembleNativeLinuxAmd64 by tasks.existing { wraps(linuxExecutableAmd64) }
|
||||
|
||||
val assembleNativeAlpineLinuxAmd64 =
|
||||
tasks.named("assembleNativeAlpineLinuxAmd64") { wraps(alpineExecutableAmd64) }
|
||||
val assembleNativeAlpineLinuxAmd64 by tasks.existing { wraps(alpineExecutableAmd64) }
|
||||
|
||||
val assembleNativeWindowsAmd64 =
|
||||
tasks.named("assembleNativeWindowsAmd64") { wraps(windowsExecutableAmd64) }
|
||||
val assembleNativeWindowsAmd64 by tasks.existing { wraps(windowsExecutableAmd64) }
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
+21
-23
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,31 +13,29 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
val assembleNativeMacOsAarch64 = tasks.register("assembleNativeMacOsAarch64") { group = "build" }
|
||||
val assembleNativeMacOsAarch64 by tasks.registering { group = "build" }
|
||||
|
||||
val assembleNativeMacOsAmd64 = tasks.register("assembleNativeMacOsAmd64") { group = "build" }
|
||||
val assembleNativeMacOsAmd64 by tasks.registering { group = "build" }
|
||||
|
||||
val assembleNativeLinuxAarch64 = tasks.register("assembleNativeLinuxAarch64") { group = "build" }
|
||||
val assembleNativeLinuxAarch64 by tasks.registering { group = "build" }
|
||||
|
||||
val assembleNativeLinuxAmd64 = tasks.register("assembleNativeLinuxAmd64") { group = "build" }
|
||||
val assembleNativeLinuxAmd64 by tasks.registering { group = "build" }
|
||||
|
||||
val assembleNativeAlpineLinuxAmd64 =
|
||||
tasks.register("assembleNativeAlpineLinuxAmd64") { group = "build" }
|
||||
val assembleNativeAlpineLinuxAmd64 by tasks.registering { group = "build" }
|
||||
|
||||
val assembleNativeWindowsAmd64 = tasks.register("assembleNativeWindowsAmd64") { group = "build" }
|
||||
val assembleNativeWindowsAmd64 by tasks.registering { group = "build" }
|
||||
|
||||
val testNativeMacOsAarch64 = tasks.register("testNativeMacOsAarch64") { group = "verification" }
|
||||
val testNativeMacOsAarch64 by tasks.registering { group = "verification" }
|
||||
|
||||
val testNativeMacOsAmd64 = tasks.register("testNativeMacOsAmd64") { group = "verification" }
|
||||
val testNativeMacOsAmd64 by tasks.registering { group = "verification" }
|
||||
|
||||
val testNativeLinuxAarch64 = tasks.register("testNativeLinuxAarch64") { group = "verification" }
|
||||
val testNativeLinuxAarch64 by tasks.registering { group = "verification" }
|
||||
|
||||
val testNativeLinuxAmd64 = tasks.register("testNativeLinuxAmd64") { group = "verification" }
|
||||
val testNativeLinuxAmd64 by tasks.registering { group = "verification" }
|
||||
|
||||
val testNativeAlpineLinuxAmd64 =
|
||||
tasks.register("testNativeAlpineLinuxAmd64") { group = "verification" }
|
||||
val testNativeAlpineLinuxAmd64 by tasks.registering { group = "verification" }
|
||||
|
||||
val testNativeWindowsAmd64 = tasks.register("testNativeWindowsAmd64") { group = "verification" }
|
||||
val testNativeWindowsAmd64 by tasks.registering { group = "verification" }
|
||||
|
||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||
|
||||
@@ -46,8 +44,8 @@ private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
||||
outputs.files(other)
|
||||
}
|
||||
|
||||
val assembleNative =
|
||||
tasks.register("assembleNative") {
|
||||
val assembleNative by
|
||||
tasks.registering {
|
||||
group = "build"
|
||||
|
||||
if (!buildInfo.isCrossArchSupported && buildInfo.isCrossArch) {
|
||||
@@ -81,8 +79,8 @@ val assembleNative =
|
||||
}
|
||||
}
|
||||
|
||||
val testNative =
|
||||
tasks.register("testNative") {
|
||||
val testNative by
|
||||
tasks.registering {
|
||||
group = "verification"
|
||||
dependsOn(assembleNative)
|
||||
|
||||
@@ -117,14 +115,14 @@ val testNative =
|
||||
}
|
||||
}
|
||||
|
||||
val checkNative =
|
||||
tasks.register("checkNative") {
|
||||
val checkNative by
|
||||
tasks.registering {
|
||||
group = "verification"
|
||||
dependsOn(testNative)
|
||||
}
|
||||
|
||||
val buildNative =
|
||||
tasks.register("buildNative") {
|
||||
val buildNative by
|
||||
tasks.registering {
|
||||
group = "build"
|
||||
dependsOn(checkNative)
|
||||
}
|
||||
+3
-3
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
plugins { id("com.diffplug.spotless") }
|
||||
|
||||
val pklFormatter = configurations.create("pklFormatter")
|
||||
val pklFormatter by configurations.creating
|
||||
|
||||
dependencies { pklFormatter(rootProject.project("pkl-formatter")) }
|
||||
|
||||
@@ -24,7 +24,7 @@ spotless {
|
||||
target("**/*.pkl")
|
||||
addStep(PklFormatterStep(pklFormatter).create())
|
||||
licenseHeaderFile(
|
||||
rootProject.file("build-logic/src/main/resources/license-header.line-comment.txt"),
|
||||
rootProject.file("buildSrc/src/main/resources/license-header.line-comment.txt"),
|
||||
"/// ",
|
||||
)
|
||||
// disable ratcheting for Pkl sources
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
name: main
|
||||
title: Main Project
|
||||
version: 0.33.0-dev
|
||||
version: 0.32.0-dev
|
||||
prerelease: true
|
||||
nav:
|
||||
- nav.adoc
|
||||
|
||||
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,8 +16,8 @@
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
|
||||
|
||||
plugins {
|
||||
id("pklAllProjects")
|
||||
id("pklKotlinTest")
|
||||
pklAllProjects
|
||||
pklKotlinTest
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
# 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.
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
|
||||
io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath
|
||||
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
|
||||
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
|
||||
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath
|
||||
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath
|
||||
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
|
||||
org.graalvm.polyglot:polyglot:25.0.1=testRuntimeClasspath
|
||||
org.graalvm.sdk:collections:25.0.1=testRuntimeClasspath
|
||||
org.graalvm.sdk:graal-sdk:25.0.1=testRuntimeClasspath
|
||||
org.graalvm.sdk:nativeimage:25.0.1=testRuntimeClasspath
|
||||
org.graalvm.sdk:word:25.0.1=testRuntimeClasspath
|
||||
org.graalvm.truffle:truffle-api:25.0.1=testRuntimeClasspath
|
||||
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation
|
||||
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable
|
||||
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
|
||||
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
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-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
|
||||
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable
|
||||
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath
|
||||
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=testCompileClasspath,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=testCompileClasspath,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=swiftExportClasspathResolvable,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-core-jvm: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.jspecify:jspecify:1.0.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-engine:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-engine:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath
|
||||
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.msgpack:msgpack-core:0.9.11=testRuntimeClasspath
|
||||
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.organicdesign:Paguro:3.10.3=testRuntimeClasspath
|
||||
org.snakeyaml:snakeyaml-engine:2.10=testRuntimeClasspath
|
||||
empty=annotationProcessor,apiDependenciesMetadata,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||
@@ -3,7 +3,7 @@
|
||||
// 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-no-suffix: 0.33.0
|
||||
:pkl-version-no-suffix: 0.32.0
|
||||
// tells whether pkl version corresponding to current git commit
|
||||
// is a release version (:is-release-version: '') or dev version (:!is-release-version:)
|
||||
:!is-release-version:
|
||||
@@ -69,7 +69,6 @@ endif::[]
|
||||
|
||||
:uri-stdlib-baseModule: {uri-pkl-stdlib-docs}/base
|
||||
:uri-stdlib-CommandModule: {uri-pkl-stdlib-docs}/Command
|
||||
:uri-stdlib-refModule: {uri-pkl-stdlib-docs}/ref
|
||||
:uri-stdlib-analyzeModule: {uri-pkl-stdlib-docs}/analyze
|
||||
:uri-stdlib-jsonnetModule: {uri-pkl-stdlib-docs}/jsonnet
|
||||
:uri-stdlib-reflectModule: {uri-pkl-stdlib-docs}/reflect
|
||||
@@ -79,10 +78,8 @@ endif::[]
|
||||
:uri-stdlib-pklbinaryModule: {uri-pkl-stdlib-docs}/pklbinary
|
||||
:uri-stdlib-yamlModule: {uri-pkl-stdlib-docs}/yaml
|
||||
:uri-stdlib-YamlParser: {uri-stdlib-yamlModule}/Parser
|
||||
:uri-stdlib-projectModule: {uri-pkl-stdlib-docs}/Project
|
||||
:uri-stdlib-evaluatorSettingsModule: {uri-pkl-stdlib-docs}/EvaluatorSettings
|
||||
:uri-stdlib-evaluatorSettingsHttpClass: {uri-stdlib-evaluatorSettingsModule}/Http
|
||||
:uri-stdlib-evaluatorSettingsExternalReaderClass: {uri-stdlib-evaluatorSettingsModule}/ExternalReader
|
||||
:uri-stdlib-Boolean: {uri-stdlib-baseModule}/Boolean
|
||||
:uri-stdlib-xor: {uri-stdlib-baseModule}/Boolean#xor()
|
||||
:uri-stdlib-implies: {uri-stdlib-baseModule}/Boolean#implies()
|
||||
@@ -161,8 +158,6 @@ endif::[]
|
||||
:uri-stdlib-Command-CountedFlag: {uri-stdlib-CommandModule}/CountedFlag
|
||||
:uri-stdlib-Command-Argument: {uri-stdlib-CommandModule}/Argument
|
||||
:uri-stdlib-Command-Import: {uri-stdlib-CommandModule}/Import
|
||||
:uri-stdlib-ref-Reference: {uri-stdlib-baseModule}/Reference
|
||||
:uri-stdlib-ref-Access: {uri-stdlib-baseModule}/Access
|
||||
|
||||
:uri-messagepack: https://msgpack.org/index.html
|
||||
:uri-messagepack-spec: https://github.com/msgpack/msgpack/blob/master/spec.md
|
||||
|
||||
@@ -187,15 +187,6 @@ The array's length is the number of slots that are filled. For example, xref:{ur
|
||||
|
|
||||
|
|
||||
|
|
||||
|
||||
|link:{uri-stdlib-ref-Reference}[Reference]
|
||||
|`0x20`
|
||||
|`<value>` (Typed)
|
||||
|Domain
|
||||
|`<value>`
|
||||
|Data
|
||||
|link:{uri-messagepack-array}[array]
|
||||
|Array of link:{uri-stdlib-ref-Access}[`pkl.ref#Access`] values
|
||||
|===
|
||||
|
||||
[[type-name-encoding]]
|
||||
|
||||
@@ -210,11 +210,6 @@ class Http {
|
||||
///
|
||||
/// Each rewrite must start with `http://` or `https://`, and must end with `/`.
|
||||
rewrites: Mapping<String, String>?
|
||||
|
||||
/// HTTP headers.
|
||||
/// Each entry key is a glob pattern that is matched against outbound request URLs.
|
||||
/// Each value is a map of headers that is added to the matching request.
|
||||
headers: Mapping<String, Mapping<String, Listing<String>>>?
|
||||
}
|
||||
|
||||
/// Settings that control how Pkl talks to HTTP proxies.
|
||||
|
||||
@@ -56,7 +56,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven(url = "{uri-snapshot-repo}")
|
||||
maven(url = "{uri-sonatype}")
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -75,7 +75,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven { url "{uri-snapshot-repo}" }
|
||||
maven { url "{uri-sonatype}" }
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -99,9 +99,9 @@ ifndef::is-release-version[]
|
||||
<repository>
|
||||
<id>sonatype-s01</id>
|
||||
<name>Sonatype S01</name>
|
||||
<url>{uri-snapshot-repo}</url>
|
||||
<url>{uri-sonatype}</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
</repositories>
|
||||
endif::[]
|
||||
</project>
|
||||
----
|
||||
@@ -198,7 +198,7 @@ For Spring Boot applications, and for users of `pkl-config-java` compiling the g
|
||||
.--non-null-annotation
|
||||
[%collapsible]
|
||||
====
|
||||
Default: `org.jspecify.annotations.NonNull` +
|
||||
Default: `org.pkl.config.java.mapper.NonNull` +
|
||||
Fully qualified name of the annotation type to use for annotating non-null types. +
|
||||
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
||||
or the generated code may not compile.
|
||||
|
||||
@@ -45,7 +45,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven(url = "{uri-snapshot-repo}")
|
||||
maven(url = "{uri-sonatype}")
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -66,7 +66,7 @@ repositories {
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
repositories {
|
||||
maven { url "{uri-snapshot-repo}" }
|
||||
maven { url "{uri-sonatype}" }
|
||||
}
|
||||
endif::[]
|
||||
----
|
||||
@@ -92,7 +92,7 @@ ifndef::is-release-version[]
|
||||
<repository>
|
||||
<id>sonatype-s01</id>
|
||||
<name>Sonatype S01</name>
|
||||
<url>{uri-snapshot-repo}</url>
|
||||
<url>{uri-sonatype}</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
endif::[]
|
||||
|
||||
@@ -46,7 +46,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven(url = "{uri-snapshot-repo}")
|
||||
maven(url = "{uri-sonatype}")
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -65,7 +65,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven { url "{uri-snapshot-repo}" }
|
||||
maven { url "{uri-sonatype}" }
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
|
||||
@@ -34,7 +34,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven(url = "{uri-snapshot-repo}")
|
||||
maven(url = "{uri-sonatype}")
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -53,7 +53,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven { url "{uri-snapshot-repo}" }
|
||||
maven { url "{uri-sonatype}" }
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -77,7 +77,7 @@ ifndef::is-release-version[]
|
||||
<repository>
|
||||
<id>sonatype-s01</id>
|
||||
<name>Sonatype S01</name>
|
||||
<url>{uri-snapshot-repo}</url>
|
||||
<url>{uri-sonatype}</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
endif::[]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -546,15 +546,6 @@ When enabled, test failures will show intermediate values in the assertion expre
|
||||
Use `--no-power-assertions` to disable this feature if you prefer simpler output.
|
||||
====
|
||||
|
||||
[[test-reporter]]
|
||||
.--test-reporter
|
||||
[%collapsible]
|
||||
====
|
||||
Default: `spec` +
|
||||
Example: `--test-reporter minimal` +
|
||||
Which test reporter to use for CLI output. Possible values are `spec` and `minimal`.
|
||||
====
|
||||
|
||||
This command also takes <<common-options, common options>>.
|
||||
|
||||
[[command-run]]
|
||||
@@ -676,14 +667,6 @@ Force generation of expected examples. +
|
||||
The old expected files will be deleted if present.
|
||||
====
|
||||
|
||||
.--test-reporter
|
||||
[%collapsible]
|
||||
====
|
||||
Default: `spec` +
|
||||
Example: `--test-reporter minimal` +
|
||||
Which test reporter to use for CLI output. Possible values are `spec` and `minimal`.
|
||||
====
|
||||
|
||||
This command also takes <<common-options,common options>>.
|
||||
|
||||
[[command-project-resolve]]
|
||||
|
||||
@@ -158,23 +158,6 @@ This option is commonly used to enable package mirroring.
|
||||
The above example will rewrite URL `\https://pkg.pkl-lang.org/pkl-k8s/k8s@1.0.0` to `\https://my.internal.mirror/pkl-k8s/k8s@1.0.0`.
|
||||
====
|
||||
|
||||
.--http-header
|
||||
[%collapsible]
|
||||
====
|
||||
Default: (none) +
|
||||
Example: `**=User-Agent: My User Agent` +
|
||||
|
||||
Additional headers to add to outbound HTTP requests.
|
||||
|
||||
The syntax is `<glob pattern>=<header name>:<header value>`, and any whitespace after the leading colon is trimmed.
|
||||
|
||||
The glob pattern is used to match against the URLs of outbound HTTP calls, and the value is the header name and value to add.
|
||||
In the case of multiple matches, every header is added.
|
||||
|
||||
To describe a prefix match, the `\\**` wildcard should be added to the pattern.
|
||||
For example, `https?://example.com/**` matches against every request to host `example.com`.
|
||||
====
|
||||
|
||||
.--trace-mode
|
||||
[%collapsible]
|
||||
====
|
||||
|
||||
@@ -44,7 +44,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven(url = "{uri-snapshot-repo}")
|
||||
maven(url = "{uri-sonatype}")
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -63,7 +63,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven { url "{uri-snapshot-repo}" }
|
||||
maven { url "{uri-sonatype}" }
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -87,7 +87,7 @@ ifndef::is-release-version[]
|
||||
<repository>
|
||||
<id>sonatype-s01</id>
|
||||
<name>Sonatype S01</name>
|
||||
<url>{uri-snapshot-repo}</url>
|
||||
<url>{uri-sonatype}</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
endif::[]
|
||||
|
||||
@@ -117,7 +117,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven(url = "{uri-snapshot-repo}")
|
||||
maven(url = "{uri-sonatype}")
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -136,7 +136,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven { url "{uri-snapshot-repo}" }
|
||||
maven { url "{uri-sonatype}" }
|
||||
endif::[]
|
||||
}
|
||||
----
|
||||
@@ -160,7 +160,7 @@ ifndef::is-release-version[]
|
||||
<repository>
|
||||
<id>sonatype-s01</id>
|
||||
<name>Sonatype S01</name>
|
||||
<url>{uri-snapshot-repo}</url>
|
||||
<url>{uri-sonatype}</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
endif::[]
|
||||
@@ -204,7 +204,7 @@ Download links:
|
||||
The Pkldoc tool is offered as Gradle plugin, Java library, and CLI.
|
||||
It can generate documentation either for modules directly, or generate documentation for _package uris_.
|
||||
|
||||
The tool accepts an optional argument of a module named _docsite-info.pkl_, that amends link:{uri-DocsiteInfo}[pkl.DocsiteInfo].
|
||||
The tool requires an argument of a module named _docsite-info.pkl_, that amends link:{uri-DocsiteInfo}[pkl.DocsiteInfo].
|
||||
|
||||
[discrete]
|
||||
==== Generating documentation for modules directly
|
||||
|
||||
@@ -51,7 +51,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven(url = "{uri-snapshot-repo}")
|
||||
maven(url = "{uri-sonatype}")
|
||||
endif::[]
|
||||
}
|
||||
}
|
||||
@@ -76,7 +76,7 @@ ifdef::is-release-version[]
|
||||
mavenCentral()
|
||||
endif::[]
|
||||
ifndef::is-release-version[]
|
||||
maven { url "{uri-snapshot-repo}" }
|
||||
maven { url "{uri-sonatype}" }
|
||||
endif::[]
|
||||
}
|
||||
}
|
||||
@@ -322,15 +322,6 @@ Default: `false` +
|
||||
Whether to ignore expected example files and generate them again.
|
||||
====
|
||||
|
||||
[[test-reporter]]
|
||||
.testReporter: Property<String>
|
||||
[%collapsible]
|
||||
====
|
||||
Default: `"spec"` +
|
||||
Example: `reporter = "minimal"` +
|
||||
Which test reporter to use for CLI output. Possible values are `"spec"` and `"minimal"`.
|
||||
====
|
||||
|
||||
[[power-assertions-test]]
|
||||
.powerAssertions: Property<Boolean>
|
||||
[%collapsible]
|
||||
@@ -423,7 +414,7 @@ For Spring Boot applications, and for users of `pkl-config-java` compiling the g
|
||||
.nonNullAnnotation: Property<String>
|
||||
[%collapsible]
|
||||
====
|
||||
Default: `"org.jspecify.annotations.NonNull"` +
|
||||
Default: `"org.pkl.config.java.mapper.NonNull"` +
|
||||
Example: `nonNullAnnotation = "org.project.MyAnnotation"` +
|
||||
Fully qualified name of the annotation type to use for annotating non-null types. +
|
||||
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
||||
@@ -686,14 +677,6 @@ Default: `false` +
|
||||
Whether to ignore expected example files and generate them again.
|
||||
====
|
||||
|
||||
.testReporter: Property<String>
|
||||
[%collapsible]
|
||||
====
|
||||
Default: `"spec"` +
|
||||
Example: `reporter = "minimal"` +
|
||||
Which test reporter to use for CLI output. Possible values are `"spec"` and `"minimal"`.
|
||||
====
|
||||
|
||||
Common properties:
|
||||
|
||||
include::../partials/gradle-common-properties.adoc[]
|
||||
|
||||
@@ -119,19 +119,6 @@ This option is commonly used to enable package mirroring.
|
||||
The above example will rewrite URL `\https://pkg.pkl-lang.org/pkl-k8s/k8s@1.0.0` to `\https://my.internal.mirror/pkl-k8s/k8s@1.0.0`.
|
||||
====
|
||||
|
||||
.httpHeaders: MapProperty<String, Map<String, List<String>>>
|
||||
[%collapsible]
|
||||
====
|
||||
Default: `null` +
|
||||
Example: `httpHeaders = ["**": ["User-Agent": ["My User Agent"]]]` +
|
||||
Additional headers to add to outbound HTTP requests.
|
||||
The key is a glob pattern that is used to match against the URLs of outbound HTTP calls, and the value is the header name and values to add.
|
||||
Each header value becomes its own HTTP header.
|
||||
|
||||
To describe a prefix match, the `\\**` wildcard should be added to the pattern.
|
||||
For example, `https?://example.com/**` matches against every request to host `example.com`.
|
||||
====
|
||||
|
||||
.powerAssertions: Property<Boolean>
|
||||
[%collapsible]
|
||||
====
|
||||
|
||||
@@ -1,571 +1,54 @@
|
||||
= Pkl 0.32 Release Notes
|
||||
= Pkl 0.32.0 Release Notes
|
||||
:version: 0.32
|
||||
:version-minor: 0.32.0
|
||||
:release-date: July 8th, 2026
|
||||
:release-date: TBD
|
||||
:version-next: 0.33
|
||||
:version-next-date: October 2026
|
||||
:version-next-date: TBD
|
||||
|
||||
include::partial$intro.adoc[]
|
||||
|
||||
NOTE: This is the final release that distributes binaries for macOS/amd64.
|
||||
|
||||
== Highlights [small]#💖#
|
||||
|
||||
=== New data type: `Reference`
|
||||
News you don't want to miss.
|
||||
|
||||
This release introduces a new data type called `Reference` (https://github.com/apple/pkl/pull/1354[#1354], https://github.com/apple/pkl/pull/1691[#1691], https://github.com/apple/pkl/pull/1692[#1692], https://github.com/apple/pkl/pull/1693[#1693], https://github.com/apple/pkl/pull/1695[#1695]).
|
||||
|
||||
WARNING: This API is experimental. We are looking for feedback, and will aim to make this ready for production use in the next release.
|
||||
|
||||
A reference represents something whose actual value is unknown to Pkl, but nevertheless its type is checked.
|
||||
The purpose of this data type is to improve how Pkl can be used to configure systems like GitHub Actions, Pulumi, Terraform, and more.
|
||||
|
||||
For example, let's assume that some system accepts YAML configuration that looks like so:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
taskA:
|
||||
uses: some-task
|
||||
|
||||
taskB:
|
||||
uses: some-other-task
|
||||
input: '${ taskA.output.number }'
|
||||
----
|
||||
|
||||
In terms of YAML, `'${ taskA.output.number }'` is just a string.
|
||||
However, semantically, it is an _expression_ in this target system, where `taskA.output.number` conveys some type.
|
||||
|
||||
Today, the only way to treat these values in Pkl is to also describe these as strings.
|
||||
This introduces many shortcomings:
|
||||
|
||||
1. It leaves users vulnerable to syntax errors in this system.
|
||||
2. It's hard to validate these beyond that they are a string.
|
||||
3. Pkl has no understanding of the relationship between `taskA` and `taskB`.
|
||||
|
||||
With references, the above can be modeled in Pkl also as plain lookups:
|
||||
|
||||
[source,pkl]
|
||||
----
|
||||
taskA {
|
||||
uses = "some-task"
|
||||
}
|
||||
|
||||
taskB {
|
||||
name = "some-other-task"
|
||||
input = taskA.output.number
|
||||
}
|
||||
----
|
||||
|
||||
Library authors describe types as `ref.Reference<D, T>`, where `D` is the _domain_, and `T` is the _referent type_.
|
||||
|
||||
[source,pkl]
|
||||
----
|
||||
import "pkl:ref"
|
||||
|
||||
class MyDomain extends ref.Domain { // <1>
|
||||
function renderReference(ref: ref.Reference<MyDomain, Any>): String =
|
||||
"${ " + ref.getData() + "." + ref.getPath().join(".") + " }"
|
||||
}
|
||||
|
||||
typealias MyReference<T> = ref.Reference<MyDomain, T> // <2>
|
||||
|
||||
class MyTask {
|
||||
input: MyReference<Number>
|
||||
}
|
||||
----
|
||||
<1> References exist inside a domain. The domain defines how these references should be stringified.
|
||||
<2> A typealias can be used to improve ergonomics when declaring references that share the same domain.
|
||||
|
||||
Pkl will check that type arguments match up:
|
||||
|
||||
* The referent type must line up.
|
||||
+
|
||||
`MyReference<Int>` is not assignable to `MyReference<String>`.
|
||||
* The domain must line up.
|
||||
+
|
||||
`ref.Reference<MyDomain, Int>` is not assignable to `ref.Reference<OtherDomain, Int>`.
|
||||
|
||||
Additionally, references give you synthetic members.
|
||||
|
||||
[source,pkl]
|
||||
----
|
||||
class Bird {
|
||||
name: String
|
||||
}
|
||||
|
||||
bird: MyReference<Bird>
|
||||
|
||||
birdName = bird.name // <1>
|
||||
----
|
||||
<1> Gives a `MyReference<String>`, because `class Bird` has property `name: String`
|
||||
|
||||
The synthetic member contains metadata about the path that was used to access it (`.name` in this
|
||||
case).
|
||||
This can be used to stringify this reference in that target domain.
|
||||
|
||||
To read more about references, consult the xref:language-reference:index.adoc#references[language reference].
|
||||
To read through the design decisions made, consult the https://github.com/apple/pkl-evolution/blob/main/spices/SPICE-0020-type-safe-deferred-references.adoc[SPICE].
|
||||
|
||||
=== Custom HTTP Headers
|
||||
|
||||
Pkl can now attach custom HTTP headers to outbound requests, making it possible to access private or authenticated resources (https://github.com/apple/pkl/pull/1196[#1196], https://github.com/apple/pkl/pull/1584[#1584]).
|
||||
|
||||
For example, a CLI user can add an `Authorization` header either in settings.pkl, or the PklProject file:
|
||||
|
||||
[tabs]
|
||||
.XXX
|
||||
[%collapsible]
|
||||
====
|
||||
~/.pkl/settings.pkl::
|
||||
+
|
||||
[source,pkl]
|
||||
----
|
||||
amends "pkl:settings"
|
||||
|
||||
http {
|
||||
headers {
|
||||
["https://my.private.server/**"] {
|
||||
["Authorization"] = "Bearer my-secret-token"
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
PklProject::
|
||||
+
|
||||
[source,pkl]
|
||||
----
|
||||
amends "pkl:Project"
|
||||
|
||||
evaluatorSettings {
|
||||
http {
|
||||
headers {
|
||||
["https://my.private.server/**"] {
|
||||
["Authorization"] = "Bearer my-secret-token"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
XXX
|
||||
====
|
||||
|
||||
Each key in `headers` is a glob pattern matched against the request URL.
|
||||
When a request is made, every matching pattern's headers are added to the request.
|
||||
|
||||
Headers can also be configured in other ways:
|
||||
|
||||
* In the pkl-gradle plugin
|
||||
* As a CLI flag
|
||||
* In the Java/Swift/Go/Kotlin evaluator APIs
|
||||
* In the pkl-executor API
|
||||
|
||||
Header names must conform to RFC 7230 token syntax.
|
||||
Certain reserved names (e.g. `host`, `connection`, `content-length`) and prefixes (`proxy-`, `sec-`) are forbidden.
|
||||
|
||||
Thank you to https://github.com/kyokuping[@kyokuping] for their contributions to this feature!
|
||||
|
||||
To learn more, consult https://github.com/apple/pkl-evolution/blob/main/spices/SPICE-0022-http-headers.adoc[SPICE-0022].
|
||||
|
||||
== Noteworthy [small]#🎶#
|
||||
|
||||
=== Resolved evaluator settings
|
||||
Ready when you need them.
|
||||
|
||||
PklProject files now resolve evaluator settings that are file paths (https://github.com/apple/pkl/pull/1394[#1394]).
|
||||
|
||||
Some of the settings within `pkl:EvaluatorSettings` represent file paths.
|
||||
However, these paths are resolved inconsistently:
|
||||
|
||||
* Pkl is inconsistent about what relative paths mean. `rootDir`, `moduleCacheDir`, and `modulePath` are relative to the project dir, while `ExternalReader.executable` is relative to the PWD.
|
||||
* External readers defined in a PklProject have different behavior depending on the PWD.
|
||||
* The logic for resolving these paths is dependent on the caller, rather than Pkl.
|
||||
|
||||
For CLI users, this means that the current working directory can affect how evaluator settings are loaded.
|
||||
|
||||
In Pkl 0.32, these paths are resolved entirely within Pkl, and resolved against the enclosing directory.
|
||||
|
||||
A new method `resolve()` is added to `pkl:EvaluatorSettings`, and a new property `resolvedEvaluatorSettings` is added to `pkl:Project`.
|
||||
Language bindings are expected to use `resolvedEvaluatorSettings` when configuring the evaluator.
|
||||
|
||||
To read more about this change, consult https://github.com/apple/pkl-evolution/blob/main/spices/SPICE-0027-resolved-paths-in-pkl-evaluatorsettings.adoc[SPICE-0027].
|
||||
|
||||
=== Line continuations in multiline strings
|
||||
|
||||
When authoring multiline strings, it is now possible to use a _line continuation_ to break a single line's value over multiple lines (https://github.com/apple/pkl/pull/1507[#1507], https://github.com/apple/pkl/pull/1564[#1564]).
|
||||
|
||||
These two string snippets are logically identical:
|
||||
|
||||
[source,pkl]
|
||||
----
|
||||
str =
|
||||
"""
|
||||
Although the Dodo is extinct, \
|
||||
the species will be remembered.
|
||||
"""
|
||||
----
|
||||
|
||||
[source%parsed,pkl]
|
||||
----
|
||||
str = "Although the Dodo is extinct, the species will be remembered."
|
||||
----
|
||||
|
||||
To read more about this design, consult https://github.com/apple/pkl-evolution/blob/main/spices/SPICE-0028-multiline-string-continuation.adoc[SPICE-0028].
|
||||
|
||||
[[parse-time-variable-resolution]]
|
||||
=== Parse-time variable resolution
|
||||
|
||||
Pkl now resolves variables at parse time (https://github.com/apple/pkl/pull/1429[#1429], https://github.com/apple/pkl/pull/1622[#1622], https://github.com/apple/pkl/pull/1634[#1634], https://github.com/apple/pkl/pull/1706[#1706]).
|
||||
|
||||
Currently, Pkl defers the resolution of variable names to when the node is executed.
|
||||
In Pkl 0.32, these are resolved when the file is parsed.
|
||||
|
||||
This is a pre-requisite feature for many upcoming features, such as flat member syntax and method varargs.
|
||||
|
||||
Additionally, this enables some runtime optimizations, including let expressions.
|
||||
|
||||
[[let-expression-improvements]]
|
||||
=== Let expression performance improvements
|
||||
|
||||
Performance improvements were made to the handling of xref:language-reference:index.adoc#let-expressions[let expressions] (https://github.com/apple/pkl/pull/1622[#1622], https://github.com/apple/pkl/pull/1634[#1634]).
|
||||
|
||||
Here is a sample benchmark:
|
||||
|
||||
[source,pkl]
|
||||
----
|
||||
amends "pkl:Benchmark"
|
||||
|
||||
microbenchmarks {
|
||||
["let"] {
|
||||
expression =
|
||||
let (a = 1)
|
||||
let (b = 2)
|
||||
let (c = 3)
|
||||
let (d = 4)
|
||||
let (e = 1)
|
||||
let (f = 2)
|
||||
let (g = 3)
|
||||
let (h = 4)
|
||||
let (i = 1)
|
||||
let (j = 2)
|
||||
let (k = 3)
|
||||
let (l = 4)
|
||||
let (m = 1)
|
||||
let (n = 2)
|
||||
let (o = 3)
|
||||
let (p = 4)
|
||||
let (q = 1)
|
||||
let (r = 2)
|
||||
let (s = 3)
|
||||
let (t = 4)
|
||||
a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
renderer {
|
||||
converters {
|
||||
[Duration] = (it: Duration) -> super[Duration].apply(it.toUnit("ns"))
|
||||
}
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
And here are the results when run on a MacBook Pro M4 Max machine: `jpkl` is about 12x faster, while native `pkl` is about 4000x faster:
|
||||
|
||||
|===
|
||||
|Variant |Results (mean)
|
||||
|
||||
|jpkl
|
||||
|1208.06.ns -> 97.76.ns
|
||||
|
||||
|pkl
|
||||
|1275.96.ns -> 0.32.ns
|
||||
|===
|
||||
|
||||
=== Test reporter
|
||||
|
||||
A test reporter option is added when running tests (https://github.com/apple/pkl/pull/1563[#1563], https://github.com/apple/pkl/pull/1597[#1597]).
|
||||
|
||||
A new CLI flag, `--test-reporter`, is now available to the `pkl test` and `pkl project package` commands.
|
||||
This flag accepts the name of a test reporter to be used to format test result output.
|
||||
|
||||
There are two possible reporters:
|
||||
|
||||
* `spec` (default) - the current reporter
|
||||
* `minimal` - a reporter that only emits failing tests
|
||||
|
||||
This option is also available to pkl-gradle users.
|
||||
|
||||
=== Dependency notation improvements
|
||||
|
||||
Pkl's evaluator now accepts https://pkl-lang.org/main/current/language-reference/index.html#dependency-notation[dependency notation URIs] as source modules (https://github.com/apple/pkl/pull/1595[#1595]).
|
||||
|
||||
In Pkl 0.31, we introduced xref:0.31.adoc#cli-dependency-notation[CLI support for dependency notation].
|
||||
Now, this support has been extended to the evaluator itself.
|
||||
This means that users of Pkl's various language bindings can also use dependency notation.
|
||||
|
||||
Additionally, the limitation on local dependencies has been dropped.
|
||||
|
||||
=== pkldoc supports single-package docsites
|
||||
|
||||
pkldoc has improved support for single-package documentation websites (https://github.com/apple/pkl/pull/1592[#1592]).
|
||||
|
||||
When a docsite has only one package name, and also no overview from a `docsite-info.pkl`, the resulting docsite does not have a top-level package index page.
|
||||
Instead, it redirects to the package page, and omits the site-level element from the breadcrumb.
|
||||
|
||||
=== Allowed package imports in `PklProject`
|
||||
|
||||
PklProject files can now import xref:language-reference:index.adoc#package-asset-uri[package asset URIs] (https://github.com/apple/pkl/pull/1547[#1547]).
|
||||
|
||||
This means that it is now possible to centralize and share common configurations across multiple projects.
|
||||
|
||||
=== Java Library Changes
|
||||
|
||||
==== Switch to JSpecify annotations
|
||||
|
||||
Pkl has switched to using https://jspecify.dev[JSpecify] for annotating nullability (https://github.com/apple/pkl/pull/1515[#1515], https://github.com/apple/pkl/pull/1527[#1527], https://github.com/apple/pkl/pull/1528[#1528], https://github.com/apple/pkl/pull/1530[#1530], https://github.com/apple/pkl/pull/1544[#1544], https://github.com/apple/pkl/pull/1601[#1601], https://github.com/apple/pkl/pull/1607[#1607]).
|
||||
|
||||
Currently, Pkl uses annotations from the `com.google.code.findbugs:jsr305` library.
|
||||
This suffers from some issues:
|
||||
|
||||
* The https://jcp.org/en/jsr/detail?id=305[JSR-305 proposal] itself is dormant and unlikely to be adopted.
|
||||
* The `com.google.code.findbugs:jsr305` library contributes packages to `javax`, which violates the https://www.oracle.com/downloads/licenses/binary-code-license.html[Oracle Binary Code License Agreement].
|
||||
|
||||
In contrast, JSpecify is widely seen as the standard for nullability annotations, and is already understood by most tools.
|
||||
|
||||
This impacts Pkl's Java APIs; methods previously annotated using JSR-305 nullability annotations now use JSpecify.
|
||||
Additionally, the Java code generator now emits JSpecify annotations by default.
|
||||
|
||||
==== New API: `org.pkl.config.java.ConfigDecoder`
|
||||
|
||||
A new API is introduced called `org.pkl.config.java.ConfigDecoder` (https://github.com/apple/pkl/pull/1533[#1533]).
|
||||
|
||||
Currently, the `org.pkl.config.java.Config` interface mixes configuration representation with decoding logic.
|
||||
To better separate these concerns, a new API is introduced for decoding.
|
||||
|
||||
Example:
|
||||
|
||||
[source,java]
|
||||
----
|
||||
class Main {
|
||||
Config getConfig() {
|
||||
var decoder = new ConfigDecoderBuilder().preconfigured().build();
|
||||
return decoder.decode(bytes);
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
==== New `asNullable` methods in `pkl.config.java`
|
||||
|
||||
New methods are added for decoding into nullable types (https://github.com/apple/pkl/pull/1544[#1544]).
|
||||
|
||||
The following methods are introduced:
|
||||
|
||||
* `org.pkl.config.java.Config.asNullable`
|
||||
* `org.pkl.config.java.JavaType.pairOfNullableFirst`
|
||||
* `org.pkl.config.java.JavaType.pairOfNullableSecond`
|
||||
* `org.pkl.config.java.JavaType.pairOfNullableFirstAndSecond`
|
||||
* `org.pkl.config.java.JavaType.arrayOfNullable`
|
||||
* `org.pkl.config.java.JavaType.iterableOfNullable`
|
||||
* `org.pkl.config.java.JavaType.collectionOfNullable`
|
||||
* `org.pkl.config.java.JavaType.listOfNullable`
|
||||
* `org.pkl.config.java.JavaType.setOfNullable`
|
||||
* `org.pkl.config.java.JavaType.mapOfNullableKeys`
|
||||
* `org.pkl.config.java.JavaType.mapOfNullableValues`
|
||||
* `org.pkl.config.java.JavaType.mapOfNullableKeysAndValues`
|
||||
|
||||
NOTE: `org.pkl.config.java.Config.as` can also return a `null` value. In a future release, this method will have a runtime non-null assertion.
|
||||
|
||||
==== `pkl-formatter` migrated to Java
|
||||
|
||||
The `pkl-formatter` library has been migrated from Kotlin to Java (https://github.com/apple/pkl/pull/1514[#1514]).
|
||||
|
||||
Therefore, its Kotlin dependency is dropped.
|
||||
|
||||
=== Standard Library Changes
|
||||
|
||||
==== `pkl:EvaluatorSettings`
|
||||
|
||||
* New method: link:{uri-stdlib-evaluatorSettingsModule}#resolve()[`EvaluatorSettings.resolve()`]
|
||||
* New method: link:{uri-stdlib-evaluatorSettingsModule}#resolveForOs()[`EvaluatorSettings.resolveForOs()`]
|
||||
* New property: link:{uri-stdlib-evaluatorSettingsExternalReaderClass}#workingDir[`EvaluatorSettings#ExternalReader.workingDir`]
|
||||
* New property: link:{uri-stdlib-evaluatorSettingsHttpClass}#headers[`EvaluatorSettings#Http.headers`]
|
||||
* New typealias: link:{uri-stdlib-evaluatorSettingsModule}#HttpHeaders[`EvaluatorSettings.HttpHeaders`]
|
||||
* New typealias: link:{uri-stdlib-evaluatorSettingsModule}#HttpHeaderName[`EvaluatorSettings.HttpHeaderName`]
|
||||
* New typealias: link:{uri-stdlib-evaluatorSettingsModule}#HttpHeaderValue[`EvaluatorSettings.HttpHeaderValue`]
|
||||
|
||||
==== `pkl:base`
|
||||
|
||||
* New property: link:{uri-stdlib-baseModule}/String#isGlobPattern[`String.isGlobPattern`]
|
||||
|
||||
==== `pkl:Project`
|
||||
|
||||
* New property: link:{uri-stdlib-projectModule}#resolvedEvaluatorSettings[`Project.resolvedEvaluatorSettings`]
|
||||
|
||||
==== `pkl:ref`
|
||||
|
||||
* New module introduced.
|
||||
|
||||
=== pkl-gradle changes
|
||||
|
||||
The following changes have been made to pkl-gradle.
|
||||
|
||||
==== Support for external readers
|
||||
|
||||
External readers can now be configured when configuring evaluators (https://github.com/apple/pkl/pull/1578[#1578]).
|
||||
|
||||
For example:
|
||||
|
||||
[source,kotlin]
|
||||
----
|
||||
val myPklTask by pkl.evaluators.creating {
|
||||
val foo by externalModuleReaders.creating {
|
||||
executable = "pkl-foo-reader"
|
||||
arguments = listOf("--bar", "baz")
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
==== Support for module/resource readers from SPI
|
||||
|
||||
Gradle users can now add module/resource readers by registering a service via the Java SPI mechanism (https://github.com/apple/pkl/pull/1581[#1581]).
|
||||
|
||||
==== Support for Gradle configuration cache
|
||||
|
||||
The plugin now supports the Gradle configuration cache feature (https://github.com/apple/pkl/issues/1425[#1425]).
|
||||
|
||||
Thanks to https://github.com/ffluk3[@ffluk3] for their contributions to this feature!
|
||||
.XXX
|
||||
[%collapsible]
|
||||
====
|
||||
XXX
|
||||
====
|
||||
|
||||
== Breaking Changes [small]#💔#
|
||||
|
||||
=== Name resolution changes
|
||||
Things to watch out for when upgrading.
|
||||
|
||||
Variables are now <<parse-time-variable-resolution,resolved at parse time>>.
|
||||
.XXX
|
||||
[%collapsible]
|
||||
====
|
||||
XXX
|
||||
====
|
||||
|
||||
As part of this change, some names are resolved differently.
|
||||
== Work In Progress [small]#🚆#
|
||||
|
||||
Take the following code:
|
||||
They missed the train but deserve a mention.
|
||||
|
||||
[source,pkl]
|
||||
----
|
||||
qux = "outer"
|
||||
|
||||
foo {
|
||||
when (cond) {
|
||||
qux = "inner"
|
||||
}
|
||||
res = qux
|
||||
}
|
||||
----
|
||||
|
||||
Currently, `res = qux` will eval to either `res = "outer"` or `res = "inner"` depending on whether `cond` evals to `true` or not.
|
||||
This is a lexical lookup that is either one level up, or zero levels up, depending on the result of code execution.
|
||||
|
||||
This type of resolution is not possible at parse time, because we do not know what `cond` executes to.
|
||||
In Pkl 0.32, `res` will always resolve to the inner `qux`, and this snippet will throw if the when generator does not fire.
|
||||
|
||||
=== Java API changes
|
||||
|
||||
The following breaking changes have been made to the Java API.
|
||||
|
||||
* `org.pkl.config.java.Config#makeConfig`
|
||||
+
|
||||
Removed without replacement
|
||||
|
||||
* `org.pkl.config.java.Config.fromPklBinary`
|
||||
+
|
||||
Deprecated, replaced with `org.pkl.config.java.ConfigDecoder`
|
||||
|
||||
* `org.pkl.config.java.mapper.NonNull`
|
||||
+
|
||||
Deprecated, replaced with `org.jspecify.annotations.NonNull`
|
||||
|
||||
* `org.pkl.core.evaluatorSettings.PklEvaluatorSettings.parse`
|
||||
+
|
||||
No longer accepts `pathNormalizer` argument
|
||||
|
||||
* `org.pkl.formatter.Formatter`
|
||||
** Pass `GrammarVersion` to constructor instead of each `format` method
|
||||
** Replace `format(Path): String` with `format(Reader, Appendable)`
|
||||
** Mark as `throws IOException`
|
||||
** Deprecate methods that accept `GrammarVersion` as an argument
|
||||
|
||||
=== Loading rule changes in `pkl:EvaluatorSettings`
|
||||
|
||||
Breaking changes have been made to how evaluator settings are loaded when using `PklProject` (https://github.com/apple/pkl/pull/1394[#1394]).
|
||||
|
||||
==== Loading rule changes for the external reader executable
|
||||
|
||||
The following changes have been made for the `executable` property in an external reader:
|
||||
|
||||
* If the executable does not contain a slash (`/` on POSIX, `\` on Windows) character, it is always resolved against the `PATH` environment variable.
|
||||
* If it does contain a slash, it is resolved relative to the enclosing PklProject directory, instead of the current working directory.
|
||||
|
||||
=== Changes to `--external-module-reader` and `--external-resource-reader` CLI flags
|
||||
|
||||
The `--external-module-reader` and `--external-resource-reader` CLI flags will _replace_ any external readers otherwise configured within a PklProject, instead of add to it (https://github.com/apple/pkl/pull/1394[#1394]).
|
||||
|
||||
This makes this behavior consistent with how other settings work.
|
||||
|
||||
== Bug Fixes [small]#🐜#
|
||||
|
||||
The following bugs have been fixed.
|
||||
|
||||
* Data race in MessagePack encoder during concurrent server sends (https://github.com/apple/pkl/issues/1486[#1486])
|
||||
* pkl-doc library publishes incorrect Maven dependency scopes (https://github.com/apple/pkl/issues/1517[#1517])
|
||||
* Re-using pklbinary#Renderer during rendering results in incorrect output (https://github.com/apple/pkl/pull/1525[#1525])
|
||||
* Cannot glob using subpatterns inside a project dependency (https://github.com/apple/pkl/issues/1545[#1545])
|
||||
* Project package command incompatible with glob imports on Windows (https://github.com/apple/pkl/issues/1556[#1556])
|
||||
* Thrown PklBugException when using power assertions with unavailable source sections (https://github.com/apple/pkl/pull/1571[#1571])
|
||||
* pkl-doc: DocGenerator never shuts down its thread pool (https://github.com/apple/pkl/issues/1583[#1583])
|
||||
* Imports gathering Gradle task can fail with a confusing exception (https://github.com/apple/pkl/issues/1591[#1591])
|
||||
* HTTP rewrite fails with PklBugException under tr-TR locale when host contains 'I' (https://github.com/apple/pkl/issues/1617[#1617])
|
||||
* Formatter bug fixes (https://github.com/apple/pkl/pull/1619[#1619])
|
||||
* Unrelated error message thrown when computing an error message (https://github.com/apple/pkl/pull/1629[#1629])
|
||||
* pkl-binary serialization produces an incomplete msgpack value in the presence of local properties (https://github.com/apple/pkl/issues/1631[#1631]).
|
||||
* Poor parser error message (https://github.com/apple/pkl/issues/1638[#1638])
|
||||
* relativePathTo does not check if receiver is a module (https://github.com/apple/pkl/issues/1649[#1649])
|
||||
* `Int` overflow on multiplication throws unexpected exception (https://github.com/apple/pkl/issues/1651[#1651])
|
||||
* Incorrect eager check for `Map` type (https://github.com/apple/pkl/issues/1653[#1653])
|
||||
* Incorrect `toRadixString()` for `math.minInt` (https://github.com/apple/pkl/issues/1655[#1655])
|
||||
* `Evaluator.evaluateSchema()` throws if properties are annotated with `@ConvertProperty` (https://github.com/apple/pkl/issues/1657[#1657])
|
||||
* `String.padStart` and `String.padEnd` return incorrect strings sometimes (https://github.com/apple/pkl/issues/1661[#1661])
|
||||
* `String.getOrNull` crashes with certain strings (https://github.com/apple/pkl/issues/1662[#1662])
|
||||
* Incorrect facts in `pkl:base` doc comments (https://github.com/apple/pkl/pull/1669[#1669])
|
||||
* Index-based methods on Set aren't implemented (https://github.com/apple/pkl/issues/1682[#1682])
|
||||
* pkl-gradle throws exception when a Pkl task can't create an evaluator during configuration time (https://github.com/apple/pkl/pull/1684[#1684])
|
||||
* Unrelated exception gets thrown when validating elements/entries in objects (https://github.com/apple/pkl/issues/1697[#1697])
|
||||
* Type argument is lost in constraint expressions within generic typealiases (https://github.com/apple/pkl/issues/1705[#1705])
|
||||
* Typealiases with type var as root are broken (https://github.com/apple/pkl/issues/1711[#1711])
|
||||
* Incorrect `List`/`Set`/`Map`/`Listing`/`Mapping`/union type check behavior through typealiases (https://github.com/apple/pkl/issues/1710[#1710])
|
||||
* Type aliases with type var as root are broken (https://github.com/apple/pkl/issues/1711[#1711])
|
||||
* Type checks through aliases are always run lazily even when they should be eager (https://github.com/apple/pkl/issues/1716[#1716])
|
||||
* Improve thread safety when evaluating `pkl:base` (https://github.com/apple/pkl/pull/1719[#1719])
|
||||
* Incorrect member links in doc comments (https://github.com/apple/pkl/pull/1723[#1723])
|
||||
* pkl-gradle plugin does not allow `projectpackage:` reads by default (https://github.com/apple/pkl/issues/1734[#1734])
|
||||
* `IntSeq` incorrectly emits on empty ``IntSeq``s (https://github.com/apple/pkl/issues/1738[#1738])
|
||||
|
||||
== Security Fixes [small]#🔒#
|
||||
|
||||
The following security vulnerabilities were fixed:
|
||||
|
||||
* Remote packages can read local filesystem items by escaping local dependency roots (https://github.com/apple/pkl/security/advisories/GHSA-fgvf-hh2w-cxff[GHSA-fgvf-hh2w-cxff], https://github.com/apple/pkl/pull/1737[#1737])
|
||||
* Packages can be read/written outside the configured cache directory (https://github.com/apple/pkl/security/advisories/GHSA-87qh-25w9-mh34[GHSA-87qh-25w9-mh34], https://github.com/apple/pkl/pull/1683[#1683])
|
||||
.XXX
|
||||
[%collapsible]
|
||||
====
|
||||
XXX
|
||||
====
|
||||
|
||||
== Contributors [small]#🙏#
|
||||
|
||||
We would like to thank the contributors to this release (in alphabetical order):
|
||||
|
||||
* https://github.com/04cb[@04cb]
|
||||
* https://github.com/0xmrma[@0xmrma]
|
||||
* https://github.com/adityabagchi24[@adityabagchi24]
|
||||
* https://github.com/adityasingh2400[@adityasingh2400]
|
||||
* https://github.com/bioball[@bioball]
|
||||
* https://github.com/fallintoplace[@fallintoplace]
|
||||
* https://github.com/ffluk3[@ffluk3]
|
||||
* https://github.com/HT154[@HT154]
|
||||
* https://github.com/KushalP[@KushalP]
|
||||
* https://github.com/kyokuping[@kyokuping]
|
||||
* https://github.com/ldaley[@ldaley]
|
||||
* https://github.com/mirkoalicastro[@mirkoalicastro]
|
||||
* https://github.com/netvl[@netvl]
|
||||
* https://github.com/odenix[@odenix]
|
||||
* https://github.com/stackoverflow[@stackoverflow]
|
||||
* https://github.com/vinayakj592[@vinayakj592]
|
||||
* XXX
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
= Pkl 0.33 Release Notes
|
||||
:version: 0.33
|
||||
:version-minor: 0.33.0
|
||||
:release-date: XXX
|
||||
:version-next: 0.34
|
||||
:version-next-date: February 2027
|
||||
|
||||
include::partial$intro.adoc[]
|
||||
|
||||
== Highlights [small]#💖#
|
||||
|
||||
=== XXX
|
||||
|
||||
== Noteworthy [small]#🎶#
|
||||
|
||||
=== XXX
|
||||
|
||||
== Breaking Changes [small]#💔#
|
||||
|
||||
=== XXX
|
||||
|
||||
== Bug Fixes [small]#🐜#
|
||||
|
||||
* XXX
|
||||
|
||||
== Contributors [small]#🙏#
|
||||
|
||||
We would like to thank the contributors to this release (in alphabetical order):
|
||||
|
||||
* XXX
|
||||
@@ -1,15 +1,8 @@
|
||||
= Changelog
|
||||
include::ROOT:partial$component-attributes.adoc[]
|
||||
|
||||
[[release-0.33.0]]
|
||||
== 0.33.0 (UNRELEASED)
|
||||
|
||||
xref:0.33.adoc[Release Notes]
|
||||
|
||||
[[release-0.32.0]]
|
||||
== 0.32.0 (2026-07-08)
|
||||
|
||||
xref:0.32.adoc[Release Notes]
|
||||
== 0.32.0 (UNRELEASED)
|
||||
|
||||
[[release-0.31.1]]
|
||||
== 0.31.1 (2026-03-26)
|
||||
@@ -45,7 +38,6 @@ Thank you to all the contributors for this release!
|
||||
== 0.31.0 (2026-02-26)
|
||||
|
||||
xref:0.31.adoc[Release Notes]
|
||||
|
||||
[[release-0.30.2]]
|
||||
|
||||
== 0.30.2 (2025-12-15)
|
||||
|
||||
@@ -193,7 +193,7 @@ Too many lines separate `foo` and `baz`.
|
||||
Properties that override an existing property shouldn't have doc comments nor type annotations,
|
||||
unless the type is intentionally overridden via `extends`.
|
||||
|
||||
[source%parsed,{pkl}]
|
||||
[source%tested,{pkl}]
|
||||
----
|
||||
amends "myOtherModule.pkl"
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
* xref:ROOT:evolution-and-roadmap.adoc[Evolution and Roadmap]
|
||||
|
||||
* xref:release-notes:index.adoc[Release Notes]
|
||||
** xref:release-notes:0.33.adoc[0.33 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.30.adoc[0.30 Release Notes]
|
||||
|
||||
@@ -1,22 +1,3 @@
|
||||
/*
|
||||
* Copyright © 2024-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 java.nio.file.Files
|
||||
import kotlin.io.path.isDirectory
|
||||
import kotlin.io.path.isRegularFile
|
||||
import kotlin.io.path.useDirectoryEntries
|
||||
import org.junit.platform.commons.annotation.Testable
|
||||
import org.junit.platform.engine.*
|
||||
import org.junit.platform.engine.TestDescriptor.Type
|
||||
@@ -35,18 +16,23 @@ import org.pkl.core.Loggers
|
||||
import org.pkl.core.SecurityManagers
|
||||
import org.pkl.core.StackFrameTransformers
|
||||
import org.pkl.core.evaluatorSettings.TraceMode
|
||||
import org.pkl.core.http.HttpClient
|
||||
import org.pkl.core.module.ModuleKeyFactories
|
||||
import org.pkl.core.repl.ReplRequest
|
||||
import org.pkl.core.repl.ReplResponse
|
||||
import org.pkl.core.repl.ReplServer
|
||||
import org.pkl.core.resource.ResourceReaders
|
||||
import org.pkl.core.util.IoUtils
|
||||
import org.pkl.core.http.HttpClient
|
||||
import org.pkl.parser.Parser
|
||||
import org.pkl.parser.ParserError
|
||||
import org.pkl.parser.syntax.ClassProperty
|
||||
import org.pkl.core.resource.ResourceReaders
|
||||
import java.nio.file.Files
|
||||
import kotlin.io.path.isDirectory
|
||||
import kotlin.io.path.isRegularFile
|
||||
import kotlin.io.path.useDirectoryEntries
|
||||
|
||||
@Testable class DocSnippetTests
|
||||
@Testable
|
||||
class DocSnippetTests
|
||||
|
||||
class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.ExecutionContext>() {
|
||||
private val projectDir = rootProjectDir.resolve("docs")
|
||||
@@ -55,8 +41,7 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
private companion object {
|
||||
val headingRegex = Regex("""(?u)^\s*(=++)\s*(.+)""")
|
||||
val collapsibleBlockRegex = Regex("""(?u)^\s*\[%collapsible""")
|
||||
val codeBlockRegex =
|
||||
Regex("""(?u)^\s*\[source(?:%(tested|parsed)(%error)?)?(?:,\{?([a-zA-Z-_]+)}?)?""")
|
||||
val codeBlockRegex = Regex("""(?u)^\s*\[source(?:%(tested|parsed)(%error)?)?(?:,\{?([a-zA-Z-_]+)}?)?""")
|
||||
val codeBlockNameRegex = Regex("""(?u)^\s*\.(.+)""")
|
||||
val codeBlockDelimiterRegex = Regex("""(?u)^\s*----""")
|
||||
val graphicsRegex = Regex("\\[small]#.+#")
|
||||
@@ -66,7 +51,7 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
|
||||
override fun discover(
|
||||
discoveryRequest: EngineDiscoveryRequest,
|
||||
uniqueId: UniqueId,
|
||||
uniqueId: UniqueId
|
||||
): TestDescriptor {
|
||||
val packageSelectors = discoveryRequest.getSelectorsByType(PackageSelector::class.java)
|
||||
val classSelectors = discoveryRequest.getSelectorsByType(ClassSelector::class.java)
|
||||
@@ -77,14 +62,12 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
val packageName = testClass.`package`.name
|
||||
val className = testClass.name
|
||||
|
||||
if (
|
||||
methodSelectors.isEmpty() &&
|
||||
(packageSelectors.isEmpty() || packageSelectors.any { it.packageName == packageName }) &&
|
||||
(classSelectors.isEmpty() || classSelectors.any { it.className == className })
|
||||
if (methodSelectors.isEmpty()
|
||||
&& (packageSelectors.isEmpty() || packageSelectors.any { it.packageName == packageName })
|
||||
&& (classSelectors.isEmpty() || classSelectors.any { it.className == className })
|
||||
) {
|
||||
|
||||
val rootDescriptor =
|
||||
Descriptor.Path(uniqueId, docsDir.fileName.toString(), ClassSource.from(testClass), docsDir)
|
||||
val rootDescriptor = Descriptor.Path(uniqueId, docsDir.fileName.toString(), ClassSource.from(testClass), docsDir)
|
||||
doDiscover(rootDescriptor, uniqueIdSelectors)
|
||||
return rootDescriptor
|
||||
}
|
||||
@@ -94,34 +77,36 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
}
|
||||
|
||||
override fun createExecutionContext(request: ExecutionRequest): ExecutionContext {
|
||||
val replServer =
|
||||
ReplServer(
|
||||
SecurityManagers.defaultManager,
|
||||
HttpClient.dummyClient(),
|
||||
Loggers.stdErr(),
|
||||
listOf(
|
||||
ModuleKeyFactories.standardLibrary,
|
||||
ModuleKeyFactories.classPath(DocSnippetTests::class.java.classLoader),
|
||||
ModuleKeyFactories.file,
|
||||
),
|
||||
listOf(ResourceReaders.environmentVariable(), ResourceReaders.externalProperty()),
|
||||
System.getenv(),
|
||||
emptyMap(),
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
IoUtils.getCurrentWorkingDir(),
|
||||
StackFrameTransformers.defaultTransformer,
|
||||
false,
|
||||
TraceMode.COMPACT,
|
||||
)
|
||||
val replServer = ReplServer(
|
||||
SecurityManagers.defaultManager,
|
||||
HttpClient.dummyClient(),
|
||||
Loggers.stdErr(),
|
||||
listOf(
|
||||
ModuleKeyFactories.standardLibrary,
|
||||
ModuleKeyFactories.classPath(DocSnippetTests::class.java.classLoader),
|
||||
ModuleKeyFactories.file
|
||||
),
|
||||
listOf(
|
||||
ResourceReaders.environmentVariable(),
|
||||
ResourceReaders.externalProperty()
|
||||
),
|
||||
System.getenv(),
|
||||
emptyMap(),
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
IoUtils.getCurrentWorkingDir(),
|
||||
StackFrameTransformers.defaultTransformer,
|
||||
false,
|
||||
TraceMode.COMPACT,
|
||||
)
|
||||
return ExecutionContext(replServer)
|
||||
}
|
||||
|
||||
private fun doDiscover(rootDescriptor: TestDescriptor, selectors: List<UniqueIdSelector>) {
|
||||
fun isMatch(other: UniqueId) =
|
||||
selectors.isEmpty() ||
|
||||
selectors.any { it.uniqueId.hasPrefix(other) || other.hasPrefix(it.uniqueId) }
|
||||
fun isMatch(other: UniqueId) = selectors.isEmpty() || selectors.any {
|
||||
it.uniqueId.hasPrefix(other) || other.hasPrefix(it.uniqueId)
|
||||
}
|
||||
|
||||
docsDir.useDirectoryEntries { docsDirEntries ->
|
||||
for (docsDirEntry in docsDirEntries) {
|
||||
@@ -131,13 +116,12 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
val docsDirEntryId = rootDescriptor.uniqueId.append("dir", docsDirEntryName)
|
||||
if (!isMatch(docsDirEntryId)) continue
|
||||
|
||||
val docsDirEntryDescriptor =
|
||||
Descriptor.Path(
|
||||
docsDirEntryId,
|
||||
docsDirEntryName,
|
||||
DirectorySource.from(docsDirEntry.toFile()),
|
||||
docsDirEntry,
|
||||
)
|
||||
val docsDirEntryDescriptor = Descriptor.Path(
|
||||
docsDirEntryId,
|
||||
docsDirEntryName,
|
||||
DirectorySource.from(docsDirEntry.toFile()),
|
||||
docsDirEntry
|
||||
)
|
||||
rootDescriptor.addChild(docsDirEntryDescriptor)
|
||||
|
||||
val pagesDir = docsDirEntry.resolve("pages")
|
||||
@@ -147,20 +131,17 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
for (pagesDirEntry in pagesDirEntries) {
|
||||
val pagesDirEntryName = pagesDirEntry.fileName.toString()
|
||||
val pagesDirEntryId = docsDirEntryId.append("file", pagesDirEntryName)
|
||||
if (
|
||||
!pagesDirEntry.isRegularFile() ||
|
||||
!pagesDirEntryName.endsWith(".adoc") ||
|
||||
!isMatch(pagesDirEntryId)
|
||||
)
|
||||
continue
|
||||
if (!pagesDirEntry.isRegularFile() ||
|
||||
!pagesDirEntryName.endsWith(".adoc") ||
|
||||
!isMatch(pagesDirEntryId)
|
||||
) continue
|
||||
|
||||
val pagesDirEntryDescriptor =
|
||||
Descriptor.Path(
|
||||
pagesDirEntryId,
|
||||
pagesDirEntryName,
|
||||
FileSource.from(pagesDirEntry.toFile()),
|
||||
pagesDirEntry,
|
||||
)
|
||||
val pagesDirEntryDescriptor = Descriptor.Path(
|
||||
pagesDirEntryId,
|
||||
pagesDirEntryName,
|
||||
FileSource.from(pagesDirEntry.toFile()),
|
||||
pagesDirEntry
|
||||
)
|
||||
docsDirEntryDescriptor.addChild(pagesDirEntryDescriptor)
|
||||
|
||||
parseAsciidoc(pagesDirEntryDescriptor, selectors)
|
||||
@@ -193,15 +174,17 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
}
|
||||
|
||||
val parent = sections.firstOrNull() ?: docDescriptor
|
||||
val normalizedTitle =
|
||||
title.replace("<code>", "").replace("</code>", "").replace(graphicsRegex, "").trim()
|
||||
val childSection =
|
||||
Descriptor.Section(
|
||||
parent.uniqueId.append("section", normalizedTitle),
|
||||
normalizedTitle,
|
||||
FileSource.from(docDescriptor.path.toFile(), FilePosition.from(lineNum)),
|
||||
newLevel,
|
||||
)
|
||||
val normalizedTitle = title
|
||||
.replace("<code>", "")
|
||||
.replace("</code>", "")
|
||||
.replace(graphicsRegex, "")
|
||||
.trim()
|
||||
val childSection = Descriptor.Section(
|
||||
parent.uniqueId.append("section", normalizedTitle),
|
||||
normalizedTitle,
|
||||
FileSource.from(docDescriptor.path.toFile(), FilePosition.from(lineNum)),
|
||||
newLevel
|
||||
)
|
||||
|
||||
sections.addFirst(childSection)
|
||||
parent.addChild(childSection)
|
||||
@@ -234,8 +217,7 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
codeBlockNum += 1
|
||||
val (testMode, error, language) = codeBlockMatch.destructured
|
||||
if (testMode.isNotEmpty()) {
|
||||
val blockName =
|
||||
codeBlockNameRegex.find(prevLine)?.groupValues?.get(1) ?: "snippet$codeBlockNum"
|
||||
val blockName = codeBlockNameRegex.find(prevLine)?.groupValues?.get(1) ?: "snippet$codeBlockNum"
|
||||
while (linesIterator.hasNext()) {
|
||||
advance()
|
||||
val startDelimiterMatch = codeBlockDelimiterRegex.find(line)
|
||||
@@ -254,13 +236,10 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
snippetId,
|
||||
blockName,
|
||||
language,
|
||||
FileSource.from(
|
||||
docDescriptor.path.toFile(),
|
||||
FilePosition.from(jumpToLineNum),
|
||||
),
|
||||
FileSource.from(docDescriptor.path.toFile(), FilePosition.from(jumpToLineNum)),
|
||||
builder.toString(),
|
||||
testMode == "parsed",
|
||||
error.isNotEmpty(),
|
||||
error.isNotEmpty()
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -282,21 +261,28 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
}
|
||||
}
|
||||
|
||||
private sealed class Descriptor(uniqueId: UniqueId, displayName: String, source: TestSource) :
|
||||
AbstractTestDescriptor(uniqueId, displayName, source), Node<ExecutionContext> {
|
||||
private sealed class Descriptor(
|
||||
uniqueId: UniqueId,
|
||||
displayName: String,
|
||||
source: TestSource
|
||||
) : AbstractTestDescriptor(uniqueId, displayName, source), Node<ExecutionContext> {
|
||||
|
||||
class Path(
|
||||
uniqueId: UniqueId,
|
||||
displayName: String,
|
||||
source: TestSource,
|
||||
val path: java.nio.file.Path,
|
||||
val path: java.nio.file.Path
|
||||
) : Descriptor(uniqueId, displayName, source) {
|
||||
|
||||
override fun getType() = Type.CONTAINER
|
||||
}
|
||||
|
||||
class Section(uniqueId: UniqueId, displayName: String, source: TestSource, val level: Int) :
|
||||
Descriptor(uniqueId, displayName, source) {
|
||||
class Section(
|
||||
uniqueId: UniqueId,
|
||||
displayName: String,
|
||||
source: TestSource,
|
||||
val level: Int
|
||||
) : Descriptor(uniqueId, displayName, source) {
|
||||
|
||||
override fun getType() = Type.CONTAINER
|
||||
|
||||
@@ -313,7 +299,7 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
source: TestSource,
|
||||
private val code: String,
|
||||
private val parseOnly: Boolean,
|
||||
private val expectError: Boolean,
|
||||
private val expectError: Boolean
|
||||
) : Descriptor(uniqueId, displayName, source) {
|
||||
|
||||
override fun getType() = Type.TEST
|
||||
@@ -322,14 +308,11 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
when (language) {
|
||||
"pkl" -> Parser().parseModule(code)
|
||||
"pkl-expr" -> Parser().parseExpressionInput(code)
|
||||
else -> throw (Exception("Unrecognized language: $language"))
|
||||
else -> throw(Exception("Unrecognized language: $language"))
|
||||
}
|
||||
}
|
||||
|
||||
override fun execute(
|
||||
context: ExecutionContext,
|
||||
executor: DynamicTestExecutor,
|
||||
): ExecutionContext {
|
||||
override fun execute(context: ExecutionContext, executor: DynamicTestExecutor): ExecutionContext {
|
||||
if (parseOnly) {
|
||||
try {
|
||||
parsed
|
||||
@@ -345,7 +328,12 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
}
|
||||
|
||||
context.replServer.handleRequest(
|
||||
ReplRequest.Eval("snippet", code, !expectError, !expectError)
|
||||
ReplRequest.Eval(
|
||||
"snippet",
|
||||
code,
|
||||
!expectError,
|
||||
!expectError
|
||||
)
|
||||
)
|
||||
|
||||
val properties = parsed.children()?.filterIsInstance<ClassProperty>() ?: emptyList()
|
||||
@@ -354,21 +342,21 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
||||
|
||||
// force each property
|
||||
for (prop in properties) {
|
||||
responses.addAll(
|
||||
context.replServer.handleRequest(
|
||||
ReplRequest.Eval("snippet", prop.name.value, false, true)
|
||||
responses.addAll(context.replServer.handleRequest(
|
||||
ReplRequest.Eval(
|
||||
"snippet",
|
||||
prop.name.value,
|
||||
false,
|
||||
true
|
||||
)
|
||||
)
|
||||
))
|
||||
}
|
||||
if (expectError) {
|
||||
if (
|
||||
responses.dropLast(1).any { it !is ReplResponse.EvalSuccess } ||
|
||||
responses.last() !is ReplResponse.EvalError
|
||||
) {
|
||||
if (responses.dropLast(1).any { it !is ReplResponse.EvalSuccess } ||
|
||||
responses.last() !is ReplResponse.EvalError) {
|
||||
throw AssertionError(
|
||||
"Expected %error snippet to fail at the end, but got the following REPL responses:\n\n" +
|
||||
responses.joinToString("\n\n") { it.message }
|
||||
)
|
||||
responses.joinToString("\n\n") { it.message })
|
||||
}
|
||||
|
||||
return context
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
# suppress inspection "UnusedProperty" for whole file
|
||||
|
||||
group=org.pkl-lang
|
||||
version=0.33.0
|
||||
version=0.32.0
|
||||
|
||||
# google-java-format requires jdk.compiler exports
|
||||
org.gradle.jvmargs= \
|
||||
|
||||
+35
-32
@@ -1,15 +1,15 @@
|
||||
[versions] # ordered alphabetically
|
||||
assertj = "3.27.7"
|
||||
assertj = "3.+"
|
||||
checksumPlugin = "1.4.0"
|
||||
# 5.0.3 is the last version compatible with Kotlin 2.2
|
||||
clikt = "5.0.3"
|
||||
commonMark = "0.29.0"
|
||||
clikt = "5.+"
|
||||
commonMark = "0.+"
|
||||
downloadTaskPlugin = "5.7.0"
|
||||
errorProne = "2.50.0"
|
||||
errorProne = "2.48.0"
|
||||
errorPronePlugin = "5.1.0"
|
||||
geantyref = "2.0.1"
|
||||
geantyref = "1.+"
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
googleJavaFormat = "1.35.0"
|
||||
# must not use `+` because used in download URL
|
||||
# 25.0.2 no longer supports macos-x64
|
||||
graalVm = "25.0.1"
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
@@ -29,40 +29,42 @@ graalVmSha256-windows-x64 = "fde83c5ceec2c75560c747ccd9f314f90e4cf5c5287416e67c4
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
graalVmSha256-windows-aarch64 = "unavailable"
|
||||
ideaExtPlugin = "1.4.1"
|
||||
javaPoet = "0.16.0"
|
||||
javaPoet = "0.+"
|
||||
javaxInject = "1"
|
||||
jimfs = "1.3.1"
|
||||
jline = "4.2.1"
|
||||
jmh = "1.37"
|
||||
jimfs = "1.+"
|
||||
jline = "4.+"
|
||||
jmh = "1.+"
|
||||
jmhPlugin = "0.7.3"
|
||||
jspecify = "1.0.0"
|
||||
junit = "6.1.0"
|
||||
# 1.7+ generates much more verbose code
|
||||
kotlinPoet = "1.6.0"
|
||||
kotlinStdLib = "2.2.21"
|
||||
jsr305 = "3.+"
|
||||
junit = "6.+"
|
||||
kotlinBom = "2.2.21"
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
kotlinTarget = "2.2"
|
||||
kotlinToolchain = "2.3.21"
|
||||
kotlinToolchain = "2.3.20"
|
||||
# 1.7+ generates much more verbose code
|
||||
kotlinPoet = "1.6.+"
|
||||
kotlinxHtml = "0.12.0"
|
||||
# 1.9.0 is the last version compatible with Kotlin 2.2
|
||||
kotlinxSerialization = "1.9.0"
|
||||
kotlinxCoroutines = "1.11.0"
|
||||
# 1.8.1 is the last version that supports Kotlin 2.1,
|
||||
# which is the language level currently set in pklKotlinLibrary.
|
||||
kotlinxSerialization = "1.8.1"
|
||||
kotlinxCoroutines = "1.+"
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
ktfmt = "0.62"
|
||||
# replaces nuValidator's log4j dependency
|
||||
# 2.17.1 is the last version compatible with nuValidator
|
||||
log4j = "2.17.1"
|
||||
msgpack = "0.9.12"
|
||||
msgpack = "0.9.11"
|
||||
nexusPublishPlugin = "2.0.0"
|
||||
nullaway = "0.13.7"
|
||||
nullaway = "0.13.1"
|
||||
nullawayPlugin = "3.0.0"
|
||||
nuValidator = "26.6.24"
|
||||
paguro = "3.10.3"
|
||||
shadowPlugin = "9.4.2"
|
||||
slf4j = "2.0.18"
|
||||
snakeYaml = "3.0.1"
|
||||
spotlessPlugin = "8.7.0"
|
||||
wiremock = "3.13.2"
|
||||
nuValidator = "26.+"
|
||||
paguro = "3.+"
|
||||
shadowPlugin = "9.+"
|
||||
slf4j = "2.+"
|
||||
snakeYaml = "2.+"
|
||||
spotlessPlugin = "8.4.0"
|
||||
wiremock = "3.+"
|
||||
|
||||
[libraries] # ordered alphabetically
|
||||
assertj = { group = "org.assertj", name = "assertj-core", version.ref = "assertj" }
|
||||
@@ -73,7 +75,6 @@ commonMarkTables = { group = "org.commonmark", name = "commonmark-ext-gfm-tables
|
||||
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" }
|
||||
errorProneAnnotations = { group = "com.google.errorprone", name = "error_prone_annotations", 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" }
|
||||
graalCompiler = { group = "org.graalvm.compiler", name = "compiler", version.ref = "graalVm" }
|
||||
@@ -87,17 +88,19 @@ jlineTerminal = { group = "org.jline", name = "jline-terminal", version.ref = "j
|
||||
jlineTerminalJni = { group = "org.jline", name = "jline-terminal-jni", 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" }
|
||||
junitApi = { group = "org.junit.jupiter", name = "junit-jupiter-api", 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" }
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
junitLauncher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junit" }
|
||||
#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" }
|
||||
kotlinReflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlinStdLib" }
|
||||
kotlinScripting = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlinStdLib" }
|
||||
#noinspection UnusedVersionCatalogEntry
|
||||
kotlinStdLib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlinStdLib" }
|
||||
kotlinReflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlinBom" }
|
||||
kotlinScripting = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlinBom" }
|
||||
kotlinStdLib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlinBom" }
|
||||
kotlinxHtml = { group = "org.jetbrains.kotlinx", name = "kotlinx-html-jvm", version.ref = "kotlinxHtml" }
|
||||
kotlinxSerializationJson = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
|
||||
kotlinxCoroutinesCore = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
|
||||
|
||||
Vendored
BIN
Binary file not shown.
+2
-4
@@ -1,10 +1,8 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=bbaeb2fef8710818cf0e261201dab964c572f92b942812df0c3620d62a529a01
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip
|
||||
distributionSha256Sum=2ab2958f2a1e51120c326cad6f385153bb11ee93b3c216c5fccebfdfbb7ec6cb
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
|
||||
networkTimeout=10000
|
||||
retries=0
|
||||
retryBackOffMs=500
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# gradlew start up script for POSIX generated by Gradle.
|
||||
# Gradle start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
@@ -29,7 +29,7 @@
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh gradlew
|
||||
# ksh Gradle
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
@@ -57,7 +57,7 @@
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
|
||||
Vendored
+23
-12
@@ -19,12 +19,12 @@
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem gradlew startup script for Windows
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables, and ensure extensions are enabled
|
||||
setlocal EnableExtensions
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@@ -51,7 +51,7 @@ echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
@@ -65,18 +65,29 @@ echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
"%COMSPEC%" /c exit 1
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
|
||||
|
||||
@rem Execute gradlew
|
||||
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
|
||||
@rem which allows us to clear the local environment before executing the java command
|
||||
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel
|
||||
@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" %*
|
||||
|
||||
:exitWithErrorLevel
|
||||
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
|
||||
"%COMSPEC%" /c exit %ERRORLEVEL%
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
|
||||
+3
-3
@@ -2,15 +2,15 @@
|
||||
"catalogs": {},
|
||||
"aliases": {
|
||||
"pkl": {
|
||||
"script-ref": "org.pkl-lang:pkl-cli-java:0.32.0",
|
||||
"script-ref": "org.pkl-lang:pkl-cli-java:0.31.1",
|
||||
"java-agents": []
|
||||
},
|
||||
"pkl-codegen-java": {
|
||||
"script-ref": "org.pkl-lang:pkl-codegen-java:0.32.0",
|
||||
"script-ref": "org.pkl-lang:pkl-codegen-java:0.31.1",
|
||||
"java-agents": []
|
||||
},
|
||||
"pkl-codegen-kotlin": {
|
||||
"script-ref": "org.pkl-lang:pkl-codegen-kotlin:0.32.0",
|
||||
"script-ref": "org.pkl-lang:pkl-codegen-kotlin:0.31.1",
|
||||
"java-agents": []
|
||||
}
|
||||
},
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# 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
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
plugins {
|
||||
id("pklAllProjects")
|
||||
pklAllProjects
|
||||
`java-platform`
|
||||
`maven-publish`
|
||||
signing
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
# 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.
|
||||
com.ethlo.time:itu:1.14.0=testCompileClasspath,testRuntimeClasspath
|
||||
com.fasterxml.jackson.core:jackson-annotations:2.20=testCompileClasspath,testRuntimeClasspath
|
||||
com.fasterxml.jackson.core:jackson-core:2.20.1=testCompileClasspath,testRuntimeClasspath
|
||||
com.fasterxml.jackson.core:jackson-databind:2.20.1=testCompileClasspath,testRuntimeClasspath
|
||||
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.20.1=testCompileClasspath,testRuntimeClasspath
|
||||
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.20.1=testCompileClasspath,testRuntimeClasspath
|
||||
com.fasterxml.jackson:jackson-bom:2.20.1=testCompileClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.clikt:clikt-core-jvm:5.1.0=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-jvm:5.1.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.clikt:clikt-markdown-jvm:5.1.0=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.clikt:clikt-markdown:5.1.0=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.clikt:clikt:5.1.0=apiDependenciesMetadata,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.mordant:mordant-core-jvm:3.0.2=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-jvm-ffm-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.2=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:3.0.2=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.2=runtimeClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.mordant:mordant-jvm-jna:3.0.2=runtimeClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.mordant:mordant-jvm:3.0.2=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.2=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.mordant:mordant-markdown:3.0.2=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
com.github.ajalt.mordant:mordant:3.0.2=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||
com.github.jknack:handlebars-helpers:4.3.1=testCompileClasspath,testRuntimeClasspath
|
||||
com.github.jknack:handlebars:4.3.1=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||
com.google.errorprone:error_prone_annotations:2.41.0=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.guava:failureaccess:1.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.guava:guava:33.5.0-jre=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=testCompileClasspath,testRuntimeClasspath
|
||||
com.google.j2objc:j2objc-annotations:3.1=testCompileClasspath,testRuntimeClasspath
|
||||
com.jayway.jsonpath:json-path:2.10.0=testCompileClasspath,testRuntimeClasspath
|
||||
com.networknt:json-schema-validator:1.5.9=testCompileClasspath,testRuntimeClasspath
|
||||
commons-fileupload:commons-fileupload:1.6.0=testCompileClasspath,testRuntimeClasspath
|
||||
commons-io:commons-io:2.19.0=testCompileClasspath,testRuntimeClasspath
|
||||
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
|
||||
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
|
||||
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
|
||||
net.bytebuddy:byte-buddy:1.18.3=testCompileClasspath,testRuntimeClasspath
|
||||
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
|
||||
net.javacrumbs.json-unit:json-unit-core:2.40.1=testCompileClasspath,testRuntimeClasspath
|
||||
net.minidev:accessors-smart:2.6.0=testRuntimeClasspath
|
||||
net.minidev:json-smart:2.6.0=testRuntimeClasspath
|
||||
net.sf.jopt-simple:jopt-simple:5.0.4=testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.httpcomponents.client5:httpclient5:5.5.1=testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.httpcomponents.core5:httpcore5-h2:5.3.6=testCompileClasspath,testRuntimeClasspath
|
||||
org.apache.httpcomponents.core5:httpcore5:5.3.6=testCompileClasspath,testRuntimeClasspath
|
||||
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath
|
||||
org.assertj:assertj-core:3.27.7=testCompileClasspath,testRuntimeClasspath
|
||||
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
|
||||
org.eclipse.jetty.http2:http2-common:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty.http2:http2-hpack:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty.http2:http2-server:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-alpn-client:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-alpn-java-client:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-alpn-java-server:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-alpn-server:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-bom:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-client:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-http:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-io:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-proxy:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-security:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-server:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-servlet:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-servlets:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-util:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-webapp:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.eclipse.jetty:jetty-xml:11.0.26=testCompileClasspath,testRuntimeClasspath
|
||||
org.graalvm.polyglot:polyglot:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.graalvm.sdk:collections:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.graalvm.sdk:graal-sdk:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
org.graalvm.sdk:jniutils:25.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.graalvm.sdk:nativeimage:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.graalvm.sdk:word:25.0.1=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.graalvm.truffle:truffle-api:25.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.graalvm.truffle:truffle-compiler:25.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.graalvm.truffle:truffle-runtime:25.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.hamcrest:hamcrest-core:2.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.hamcrest:hamcrest:2.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:abi-tools-api:2.3.20=kotlinInternalAbiValidation
|
||||
org.jetbrains.kotlin:abi-tools:2.3.20=kotlinInternalAbiValidation
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.21=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-api:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-compat:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-cri-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-build-tools-impl:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.21=swiftExportClasspathResolvable
|
||||
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
|
||||
org.jetbrains.kotlin:kotlin-compiler-runner:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath
|
||||
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-reflect:1.6.10=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinKlibCommonizerClasspath
|
||||
org.jetbrains.kotlin:kotlin-reflect:2.2.21=swiftExportClasspathResolvable
|
||||
org.jetbrains.kotlin:kotlin-script-runtime:2.2.21=swiftExportClasspathResolvable
|
||||
org.jetbrains.kotlin:kotlin-script-runtime:2.3.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinKlibCommonizerClasspath
|
||||
org.jetbrains.kotlin:kotlin-scripting-common:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-scripting-jvm:2.3.20=kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.21=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.21=apiDependenciesMetadata,compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=apiDependenciesMetadata,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-core-jvm: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:markdown-jvm: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-reader:4.0.12=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jline:jline-terminal-jni:4.0.12=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jline:jline-terminal:4.0.12=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.jspecify:jspecify:1.0.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-api:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-engine:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.jupiter:junit-jupiter-params:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-commons:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-engine:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.junit.platform:junit-platform-launcher:6.0.3=testRuntimeClasspath
|
||||
org.junit:junit-bom:6.0.3=testCompileClasspath,testRuntimeClasspath
|
||||
org.msgpack:msgpack-core:0.9.11=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.organicdesign:Paguro:3.10.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
org.slf4j:slf4j-api:2.0.17=testCompileClasspath,testRuntimeClasspath
|
||||
org.snakeyaml:snakeyaml-engine:2.10=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||
org.wiremock:wiremock:3.13.2=testCompileClasspath,testRuntimeClasspath
|
||||
org.xmlunit:xmlunit-core:2.11.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.xmlunit:xmlunit-legacy:2.11.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.xmlunit:xmlunit-placeholders:2.11.0=testCompileClasspath,testRuntimeClasspath
|
||||
org.yaml:snakeyaml:2.4=testCompileClasspath,testRuntimeClasspath
|
||||
empty=annotationProcessor,implementationDependenciesMetadata,intransitiveDependenciesMetadata,javaExecutable,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,stagedAlpineLinuxAmd64Executable,stagedLinuxAarch64Executable,stagedLinuxAmd64Executable,stagedMacAarch64Executable,stagedMacAmd64Executable,stagedWindowsAmd64Executable,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testImplementationDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||
@@ -18,14 +18,14 @@ import java.io.OutputStream
|
||||
import org.gradle.kotlin.dsl.support.serviceOf
|
||||
|
||||
plugins {
|
||||
id("pklAllProjects")
|
||||
id("pklKotlinLibrary")
|
||||
id("pklPublishLibrary")
|
||||
id("pklJavaExecutable")
|
||||
id("pklNativeExecutable")
|
||||
pklAllProjects
|
||||
pklKotlinLibrary
|
||||
pklPublishLibrary
|
||||
pklJavaExecutable
|
||||
pklNativeExecutable
|
||||
`maven-publish`
|
||||
|
||||
// already on build script class path (see build-logic/build.gradle.kts),
|
||||
// already on build script class path (see buildSrc/build.gradle.kts),
|
||||
// hence must only specify plugin ID here
|
||||
id(libs.plugins.shadow.get().pluginId)
|
||||
|
||||
@@ -83,8 +83,8 @@ tasks.shadowJar {
|
||||
exclude("module-info.*")
|
||||
}
|
||||
|
||||
val testJavaExecutable =
|
||||
tasks.register<Test>("testJavaExecutable") {
|
||||
val testJavaExecutable by
|
||||
tasks.registering(Test::class) {
|
||||
testClassesDirs = tasks.test.get().testClassesDirs
|
||||
classpath =
|
||||
// compiled test classes
|
||||
@@ -138,7 +138,7 @@ fun Exec.useRootDirAndSuppressOutput() {
|
||||
|
||||
// 0.28 Preparing for JDK21 toolchains revealed that `testStartJavaExecutable` may pass, even though
|
||||
// the evaluator fails. To catch this, we eval a simple expression using the fat jar.
|
||||
val testEvalJavaExecutable =
|
||||
val testEvalJavaExecutable by
|
||||
setupJavaExecutableRun("testEvalJavaExecutable", evalTestFlags) { useRootDirAndSuppressOutput() }
|
||||
|
||||
// Run the same evaluator tests on all configured JDK test versions.
|
||||
|
||||
@@ -67,7 +67,7 @@ constructor(
|
||||
val evaluator = builder.build()
|
||||
evaluator.use {
|
||||
evaluator.evaluateCommand(
|
||||
uri(options.normalizedSourceModules.first()),
|
||||
uri(resolvedSourceModules.first()),
|
||||
reservedFlagNames,
|
||||
reservedFlagShortNames,
|
||||
) { spec ->
|
||||
|
||||
@@ -115,7 +115,7 @@ constructor(
|
||||
// used just to resolve the `%{moduleName}` placeholder
|
||||
val moduleResolver = ModuleResolver(moduleKeyFactories(ModulePathResolver.empty()))
|
||||
|
||||
return options.base.normalizedSourceModules.associateWith { uri ->
|
||||
return resolvedSourceModules.associateWith { uri ->
|
||||
val moduleDir: String? =
|
||||
IoUtils.toPath(uri)?.let {
|
||||
IoUtils.relativize(it.parent, workingDir).toString().ifEmpty { "." }
|
||||
@@ -191,7 +191,7 @@ constructor(
|
||||
}
|
||||
} else {
|
||||
var outputWritten = false
|
||||
for (moduleUri in options.base.normalizedSourceModules) {
|
||||
for (moduleUri in resolvedSourceModules) {
|
||||
val moduleSource = toModuleSource(moduleUri, inputStream)
|
||||
if (options.expression != null) {
|
||||
val output = evaluator.evaluateExpressionString(moduleSource, options.expression)
|
||||
@@ -229,43 +229,42 @@ constructor(
|
||||
private fun writeMultipleFileOutput(builder: EvaluatorBuilder) {
|
||||
val outputDirs = directoryOutputPaths!!
|
||||
val writtenFiles = mutableMapOf<Path, OutputFile>()
|
||||
builder.setOutputFormat(options.outputFormat).build().use { evaluator ->
|
||||
for ((moduleUri, outputDir) in outputDirs) {
|
||||
if (outputDir.exists() && !outputDir.isDirectory()) {
|
||||
throw CliException("Output path `$outputDir` exists and is not a directory.")
|
||||
}
|
||||
val moduleSource = toModuleSource(moduleUri, inputStream)
|
||||
val output = evaluator.evaluateOutputFiles(moduleSource)
|
||||
val realOutputDir = if (outputDir.exists()) outputDir.toRealPath() else outputDir
|
||||
for ((moduleUri, outputDir) in outputDirs) {
|
||||
val evaluator = builder.setOutputFormat(options.outputFormat).build()
|
||||
if (outputDir.exists() && !outputDir.isDirectory()) {
|
||||
throw CliException("Output path `$outputDir` exists and is not a directory.")
|
||||
}
|
||||
val moduleSource = toModuleSource(moduleUri, inputStream)
|
||||
val output = evaluator.evaluateOutputFiles(moduleSource)
|
||||
val realOutputDir = if (outputDir.exists()) outputDir.toRealPath() else outputDir
|
||||
|
||||
for ((pathSpec, fileOutput) in output) {
|
||||
checkPathSpec(pathSpec)
|
||||
val (realPath, resolvedPath) = realOutputDir.resolveRealPath(Path.of(pathSpec))
|
||||
if (!realPath.startsWith(realOutputDir)) {
|
||||
throw CliException(
|
||||
"Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is outside output directory `$realOutputDir`."
|
||||
)
|
||||
}
|
||||
val previousOutput = writtenFiles[realPath]
|
||||
if (previousOutput != null) {
|
||||
throw CliException(
|
||||
"Output file conflict: `output.files` entries `\"${previousOutput.pathSpec}\"` in module `${previousOutput.moduleUri}` and `\"$pathSpec\"` in module `$moduleUri` resolve to the same file path `$realPath`."
|
||||
)
|
||||
}
|
||||
if (realPath.isDirectory()) {
|
||||
throw CliException(
|
||||
"Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is a directory."
|
||||
)
|
||||
}
|
||||
writtenFiles[realPath] = OutputFile(pathSpec, moduleUri)
|
||||
realPath.createParentDirectories()
|
||||
realPath.writeBytes(fileOutput.bytes)
|
||||
outputStream.writeText(
|
||||
IoUtils.relativize(resolvedPath, currentWorkingDir).toString() +
|
||||
IoUtils.getLineSeparator()
|
||||
for ((pathSpec, fileOutput) in output) {
|
||||
checkPathSpec(pathSpec)
|
||||
val (realPath, resolvedPath) = realOutputDir.resolveRealPath(Path.of(pathSpec))
|
||||
if (!realPath.startsWith(realOutputDir)) {
|
||||
throw CliException(
|
||||
"Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is outside output directory `$realOutputDir`."
|
||||
)
|
||||
outputStream.flush()
|
||||
}
|
||||
val previousOutput = writtenFiles[realPath]
|
||||
if (previousOutput != null) {
|
||||
throw CliException(
|
||||
"Output file conflict: `output.files` entries `\"${previousOutput.pathSpec}\"` in module `${previousOutput.moduleUri}` and `\"$pathSpec\"` in module `$moduleUri` resolve to the same file path `$realPath`."
|
||||
)
|
||||
}
|
||||
if (realPath.isDirectory()) {
|
||||
throw CliException(
|
||||
"Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is a directory."
|
||||
)
|
||||
}
|
||||
writtenFiles[realPath] = OutputFile(pathSpec, moduleUri)
|
||||
realPath.createParentDirectories()
|
||||
realPath.writeBytes(fileOutput.bytes)
|
||||
outputStream.writeText(
|
||||
IoUtils.relativize(resolvedPath, currentWorkingDir).toString() +
|
||||
IoUtils.getLineSeparator()
|
||||
)
|
||||
outputStream.flush()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,19 +44,19 @@ constructor(
|
||||
private val sourceModule =
|
||||
ModuleSource.text(
|
||||
"""
|
||||
import "pkl:analyze"
|
||||
import "pkl:analyze"
|
||||
|
||||
local importStrings = read*("prop:pkl.analyzeImports.**").toMap().values.toSet()
|
||||
local importStrings = read*("prop:pkl.analyzeImports.**").toMap().values.toSet()
|
||||
|
||||
output {
|
||||
value = analyze.importGraph(importStrings)
|
||||
renderer {
|
||||
converters {
|
||||
[Map] = (it) -> it.toMapping()
|
||||
[Set] = (it) -> it.toListing()
|
||||
output {
|
||||
value = analyze.importGraph(importStrings)
|
||||
renderer {
|
||||
converters {
|
||||
[Map] = (it) -> it.toMapping()
|
||||
[Set] = (it) -> it.toListing()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
@@ -66,7 +66,7 @@ constructor(
|
||||
try {
|
||||
return builder
|
||||
.apply {
|
||||
for ((idx, sourceModule) in options.base.normalizedSourceModules.withIndex()) {
|
||||
for ((idx, sourceModule) in resolvedSourceModules.withIndex()) {
|
||||
addExternalProperty("pkl.analyzeImports.$idx", sourceModule.toString())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package org.pkl.cli
|
||||
|
||||
import java.io.StringWriter
|
||||
import java.io.Writer
|
||||
import org.pkl.commons.cli.*
|
||||
import org.pkl.core.Closeables
|
||||
@@ -23,9 +22,8 @@ import org.pkl.core.EvaluatorBuilder
|
||||
import org.pkl.core.ModuleSource.uri
|
||||
import org.pkl.core.PklException
|
||||
import org.pkl.core.TestResults
|
||||
import org.pkl.core.stdlib.test.report.JUnitReporter
|
||||
import org.pkl.core.stdlib.test.report.MinimalReporter
|
||||
import org.pkl.core.stdlib.test.report.SpecReporter
|
||||
import org.pkl.core.stdlib.test.report.JUnitReport
|
||||
import org.pkl.core.stdlib.test.report.SimpleReport
|
||||
import org.pkl.core.util.ErrorMessages
|
||||
|
||||
class CliTestRunner
|
||||
@@ -49,7 +47,7 @@ constructor(
|
||||
|
||||
private fun evalTest(builder: EvaluatorBuilder) {
|
||||
val sources =
|
||||
options.normalizedSourceModules.ifEmpty { project?.tests?.map { it.toUri() } }
|
||||
resolvedSourceModules.ifEmpty { project?.tests?.map { it.toUri() } }
|
||||
?:
|
||||
// keep in sync with error message thrown by clikt
|
||||
throw CliException(
|
||||
@@ -57,7 +55,7 @@ constructor(
|
||||
Usage: pkl test [<options>] <modules>...
|
||||
|
||||
Error: missing argument <modules>
|
||||
"""
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
|
||||
@@ -66,15 +64,13 @@ constructor(
|
||||
var failed = false
|
||||
var isExampleWrittenFailure = true
|
||||
val moduleNames = mutableSetOf<String>()
|
||||
val reporter =
|
||||
when (testOptions.reporter) {
|
||||
TestReporter.SPEC -> SpecReporter(useColor)
|
||||
TestReporter.MINIMAL -> MinimalReporter(useColor)
|
||||
}
|
||||
val reporter = SimpleReport(useColor)
|
||||
val allTestResults = mutableListOf<TestResults>()
|
||||
|
||||
val junitDir = testOptions.junitDir
|
||||
junitDir?.toFile()?.mkdirs()
|
||||
if (junitDir != null) {
|
||||
junitDir.toFile().mkdirs()
|
||||
}
|
||||
|
||||
for ((idx, moduleUri) in sources.withIndex()) {
|
||||
try {
|
||||
@@ -84,11 +80,8 @@ constructor(
|
||||
failed = results.failed()
|
||||
isExampleWrittenFailure = results.isExampleWrittenFailure.and(isExampleWrittenFailure)
|
||||
}
|
||||
val tmpWriter = StringWriter()
|
||||
reporter.report(results, tmpWriter)
|
||||
val report = tmpWriter.toString()
|
||||
consoleWriter.write(report)
|
||||
if (report.isNotEmpty() && sources.size > 1 && idx != sources.size - 1) {
|
||||
reporter.report(results, consoleWriter)
|
||||
if (sources.size > 1 && idx != sources.size - 1) {
|
||||
consoleWriter.append('\n')
|
||||
}
|
||||
consoleWriter.flush()
|
||||
@@ -108,7 +101,7 @@ constructor(
|
||||
moduleNames += moduleName
|
||||
|
||||
if (!testOptions.junitAggregateReports) {
|
||||
JUnitReporter().reportToPath(results, junitDir.resolve(moduleName))
|
||||
JUnitReport().reportToPath(results, junitDir.resolve(moduleName))
|
||||
}
|
||||
}
|
||||
} catch (ex: Exception) {
|
||||
@@ -126,7 +119,7 @@ constructor(
|
||||
}
|
||||
if (testOptions.junitAggregateReports && junitDir != null) {
|
||||
val fileName = "${testOptions.junitAggregateSuiteName}.xml"
|
||||
JUnitReporter(testOptions.junitAggregateSuiteName)
|
||||
JUnitReport(testOptions.junitAggregateSuiteName)
|
||||
.summarizeToPath(allTestResults, junitDir.resolve(fileName))
|
||||
}
|
||||
consoleWriter.append('\n')
|
||||
|
||||
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -47,7 +47,7 @@ internal object ReplMessages {
|
||||
* Incomplete input will be continued on the next line.
|
||||
* Multi-line programs can be copy-pasted into the REPL.
|
||||
|
||||
"""
|
||||
"""
|
||||
.trimIndent()
|
||||
|
||||
val examples: String =
|
||||
|
||||
@@ -44,13 +44,13 @@ import org.pkl.commons.writeString
|
||||
class CliCommandRunnerTest {
|
||||
private val renderOptions =
|
||||
"""
|
||||
extends "pkl:Command"
|
||||
extends "pkl:Command"
|
||||
|
||||
options: Options
|
||||
options: Options
|
||||
|
||||
output {
|
||||
value = options
|
||||
}
|
||||
output {
|
||||
value = options
|
||||
}
|
||||
|
||||
"""
|
||||
.trimIndent()
|
||||
@@ -104,10 +104,10 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -125,48 +125,48 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
`number-as-int`: Number
|
||||
`number-as-float`: Number
|
||||
`number-nullable`: Number?
|
||||
`number-default`: Number = 100.0
|
||||
`number-default-overridden`: Number = 100.0
|
||||
class Options {
|
||||
`number-as-int`: Number
|
||||
`number-as-float`: Number
|
||||
`number-nullable`: Number?
|
||||
`number-default`: Number = 100.0
|
||||
`number-default-overridden`: Number = 100.0
|
||||
|
||||
float: Float
|
||||
`float-without-decimals`: Float
|
||||
`float-nullable`: Float?
|
||||
`float-default`: Float = 100.0
|
||||
`float-default-overridden`: Float = 100.0
|
||||
float: Float
|
||||
`float-without-decimals`: Float
|
||||
`float-nullable`: Float?
|
||||
`float-default`: Float = 100.0
|
||||
`float-default-overridden`: Float = 100.0
|
||||
|
||||
int: Int
|
||||
`int-nullable`: Int?
|
||||
`int-default`: Int = 100
|
||||
`int-default-overridden`: Int = 100
|
||||
int: Int
|
||||
`int-nullable`: Int?
|
||||
`int-default`: Int = 100
|
||||
`int-default-overridden`: Int = 100
|
||||
|
||||
int8: Int8
|
||||
int16: Int16
|
||||
int32: Int32
|
||||
uint: UInt
|
||||
uint8: UInt8
|
||||
uint16: UInt16
|
||||
uint32: UInt32
|
||||
int8: Int8
|
||||
int16: Int16
|
||||
int32: Int32
|
||||
uint: UInt
|
||||
uint8: UInt8
|
||||
uint16: UInt16
|
||||
uint32: UInt32
|
||||
|
||||
boolean: Boolean
|
||||
`boolean-nullable`: Boolean?
|
||||
`boolean-default`: Boolean = true
|
||||
`boolean-default-overridden`: Boolean = false
|
||||
boolean: Boolean
|
||||
`boolean-nullable`: Boolean?
|
||||
`boolean-default`: Boolean = true
|
||||
`boolean-default-overridden`: Boolean = false
|
||||
|
||||
string: String
|
||||
`string-nullable`: String?
|
||||
`string-default`: String = "default"
|
||||
`string-default-overridden`: String = "default"
|
||||
string: String
|
||||
`string-nullable`: String?
|
||||
`string-default`: String = "default"
|
||||
`string-default-overridden`: String = "default"
|
||||
|
||||
char: Char
|
||||
`char-nullable`: Char?
|
||||
`char-default`: Char = "a"
|
||||
`char-default-overridden`: Char = "b"
|
||||
}
|
||||
"""
|
||||
char: Char
|
||||
`char-nullable`: Char?
|
||||
`char-default`: Char = "a"
|
||||
`char-default-overridden`: Char = "b"
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -245,45 +245,45 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
`number-as-int`: Number
|
||||
@Argument
|
||||
`number-as-float`: Number
|
||||
class Options {
|
||||
@Argument
|
||||
`number-as-int`: Number
|
||||
@Argument
|
||||
`number-as-float`: Number
|
||||
|
||||
@Argument
|
||||
float: Float
|
||||
@Argument
|
||||
`float-without-decimals`: Float
|
||||
@Argument
|
||||
float: Float
|
||||
@Argument
|
||||
`float-without-decimals`: Float
|
||||
|
||||
@Argument
|
||||
int: Int
|
||||
@Argument
|
||||
int: Int
|
||||
|
||||
@Argument
|
||||
int8: Int8
|
||||
@Argument
|
||||
int16: Int16
|
||||
@Argument
|
||||
int32: Int32
|
||||
@Argument
|
||||
uint: UInt
|
||||
@Argument
|
||||
uint8: UInt8
|
||||
@Argument
|
||||
uint16: UInt16
|
||||
@Argument
|
||||
uint32: UInt32
|
||||
@Argument
|
||||
int8: Int8
|
||||
@Argument
|
||||
int16: Int16
|
||||
@Argument
|
||||
int32: Int32
|
||||
@Argument
|
||||
uint: UInt
|
||||
@Argument
|
||||
uint8: UInt8
|
||||
@Argument
|
||||
uint16: UInt16
|
||||
@Argument
|
||||
uint32: UInt32
|
||||
|
||||
@Argument
|
||||
boolean: Boolean
|
||||
@Argument
|
||||
boolean: Boolean
|
||||
|
||||
@Argument
|
||||
string: String
|
||||
@Argument
|
||||
string: String
|
||||
|
||||
@Argument
|
||||
char: Char
|
||||
}
|
||||
"""
|
||||
@Argument
|
||||
char: Char
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -338,21 +338,21 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
typealias MyEnum = "d" | "e" | *"f"
|
||||
class Options {
|
||||
enum: "a" | "b" | "c"
|
||||
`enum-default`: "a" | *"b" | "c"
|
||||
`enum-explicit-default`: "a" | "b" | "c" = "c"
|
||||
`enum-alias-default`: MyEnum
|
||||
`enum-alias-explicit-default`: MyEnum = "e"
|
||||
`enum-alias-default-overridden`: MyEnum
|
||||
typealias MyEnum = "d" | "e" | *"f"
|
||||
class Options {
|
||||
enum: "a" | "b" | "c"
|
||||
`enum-default`: "a" | *"b" | "c"
|
||||
`enum-explicit-default`: "a" | "b" | "c" = "c"
|
||||
`enum-alias-default`: MyEnum
|
||||
`enum-alias-explicit-default`: MyEnum = "e"
|
||||
`enum-alias-default-overridden`: MyEnum
|
||||
|
||||
`enum-single`: "x"
|
||||
`enum-single-nullable`: "x"?
|
||||
`enum-single-explicit-default`: "x" = "x"
|
||||
`enum-single-overridden`: "x"
|
||||
}
|
||||
"""
|
||||
`enum-single`: "x"
|
||||
`enum-single-nullable`: "x"?
|
||||
`enum-single-explicit-default`: "x" = "x"
|
||||
`enum-single-overridden`: "x"
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -386,16 +386,16 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
typealias MyEnum = "d" | "e" | *"f"
|
||||
class Options {
|
||||
@Argument
|
||||
enum: "a" | "b" | "c"
|
||||
@Argument
|
||||
`enum-default`: "a" | *"b" | "c"
|
||||
@Argument
|
||||
`enum-alias-default`: MyEnum
|
||||
}
|
||||
"""
|
||||
typealias MyEnum = "d" | "e" | *"f"
|
||||
class Options {
|
||||
@Argument
|
||||
enum: "a" | "b" | "c"
|
||||
@Argument
|
||||
`enum-default`: "a" | *"b" | "c"
|
||||
@Argument
|
||||
`enum-alias-default`: MyEnum
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -419,18 +419,18 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
list: List<Number>
|
||||
`list-nullable`: List<Number>?
|
||||
`list-default`: List<Number> = List(1, 2, 300.0)
|
||||
set: Set<Number>
|
||||
`set-nullable`: Set<Number>?
|
||||
`set-default`: Set<Number> = Set(1, 2, 300.0, 2)
|
||||
class Options {
|
||||
list: List<Number>
|
||||
`list-nullable`: List<Number>?
|
||||
`list-default`: List<Number> = List(1, 2, 300.0)
|
||||
set: Set<Number>
|
||||
`set-nullable`: Set<Number>?
|
||||
`set-default`: Set<Number> = Set(1, 2, 300.0, 2)
|
||||
|
||||
`enum-list`: List<"a" | "b" | *"c">
|
||||
`enum-set`: Set<"a" | "b" | *"c">
|
||||
}
|
||||
"""
|
||||
`enum-list`: List<"a" | "b" | *"c">
|
||||
`enum-set`: Set<"a" | "b" | *"c">
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -477,11 +477,11 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
list: List<Number>
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
list: List<Number>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -500,11 +500,11 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
set: Set<Number>
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
set: Set<Number>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output2 =
|
||||
@@ -523,11 +523,11 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
listing: Listing<Number>
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
listing: Listing<Number>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output3 =
|
||||
@@ -554,11 +554,11 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
map: Map<Number, Number>
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
map: Map<Number, Number>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -577,11 +577,11 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
mapping: Mapping<Number, Number>
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
mapping: Mapping<Number, Number>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output2 =
|
||||
@@ -603,11 +603,11 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
pair: Pair<Number, Number>
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument
|
||||
pair: Pair<Number, Number>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output3 = runToStdout(CliBaseOptions(sourceModules = listOf(moduleUri3)), listOf("1=0.0"))
|
||||
@@ -628,15 +628,15 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
typealias MyEnum = "a" | "b" | *"c"
|
||||
class Options {
|
||||
map: Map<Char, Number>
|
||||
`map-nullable`: Map<Char, Number>?
|
||||
`map-default`: Map<Char, Number> = Map("x", 123, "y", 456.789)
|
||||
typealias MyEnum = "a" | "b" | *"c"
|
||||
class Options {
|
||||
map: Map<Char, Number>
|
||||
`map-nullable`: Map<Char, Number>?
|
||||
`map-default`: Map<Char, Number> = Map("x", 123, "y", 456.789)
|
||||
|
||||
`enum-map`: Map<MyEnum, MyEnum>
|
||||
}
|
||||
"""
|
||||
`enum-map`: Map<MyEnum, MyEnum>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -664,15 +664,15 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
typealias MyEnum = "a" | "b" | *"c"
|
||||
class Options {
|
||||
mapping: Mapping<Char, Number>
|
||||
`mapping-nullable`: Mapping<Char, Number>?
|
||||
`mapping-default`: Mapping<Char, Number> = new { ["x"] = 123; ["y"] = 456.789 }
|
||||
typealias MyEnum = "a" | "b" | *"c"
|
||||
class Options {
|
||||
mapping: Mapping<Char, Number>
|
||||
`mapping-nullable`: Mapping<Char, Number>?
|
||||
`mapping-default`: Mapping<Char, Number> = new { ["x"] = 123; ["y"] = 456.789 }
|
||||
|
||||
`enum-mapping`: Mapping<MyEnum, MyEnum>
|
||||
}
|
||||
"""
|
||||
`enum-mapping`: Mapping<MyEnum, MyEnum>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -709,15 +709,15 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
typealias MyEnum = "a" | "b" | *"c"
|
||||
class Options {
|
||||
pair: Pair<Char, Number>
|
||||
`pair-nullable`: Pair<Char, Number>?
|
||||
`pair-default`: Pair<Char, Number> = Pair("x", 123)
|
||||
typealias MyEnum = "a" | "b" | *"c"
|
||||
class Options {
|
||||
pair: Pair<Char, Number>
|
||||
`pair-nullable`: Pair<Char, Number>?
|
||||
`pair-default`: Pair<Char, Number> = Pair("x", 123)
|
||||
|
||||
`enum-pair`: Pair<MyEnum, MyEnum>
|
||||
}
|
||||
"""
|
||||
`enum-pair`: Pair<MyEnum, MyEnum>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -745,17 +745,17 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = module.convertDuration }
|
||||
a: Duration
|
||||
@Argument { convert = module.convertDuration }
|
||||
b: Duration
|
||||
@Argument { convert = module.convertDuration }
|
||||
c: Duration
|
||||
@Argument { convert = module.convertDuration }
|
||||
d: Duration
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = module.convertDuration }
|
||||
a: Duration
|
||||
@Argument { convert = module.convertDuration }
|
||||
b: Duration
|
||||
@Argument { convert = module.convertDuration }
|
||||
c: Duration
|
||||
@Argument { convert = module.convertDuration }
|
||||
d: Duration
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -783,17 +783,17 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = module.convertDataSize }
|
||||
a: DataSize
|
||||
@Argument { convert = module.convertDataSize }
|
||||
b: DataSize
|
||||
@Argument { convert = module.convertDataSize }
|
||||
c: DataSize
|
||||
@Argument { convert = module.convertDataSize }
|
||||
d: DataSize
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = module.convertDataSize }
|
||||
a: DataSize
|
||||
@Argument { convert = module.convertDataSize }
|
||||
b: DataSize
|
||||
@Argument { convert = module.convertDataSize }
|
||||
c: DataSize
|
||||
@Argument { convert = module.convertDataSize }
|
||||
d: DataSize
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val output =
|
||||
@@ -820,23 +820,23 @@ class CliCommandRunnerTest {
|
||||
writePklFile(
|
||||
"cmd.pkl",
|
||||
"""
|
||||
extends "pkl:Command"
|
||||
extends "pkl:Command"
|
||||
|
||||
options: Options
|
||||
options: Options
|
||||
|
||||
output {
|
||||
value = (options) {
|
||||
fromImport {
|
||||
baz = true // assert that imported modules are not forced
|
||||
}
|
||||
output {
|
||||
value = (options) {
|
||||
fromImport {
|
||||
baz = true // assert that imported modules are not forced
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Options {
|
||||
@Argument { convert = (it) -> new Import{ uri = it } }
|
||||
fromImport: Module
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = (it) -> new Import{ uri = it } }
|
||||
fromImport: Module
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -844,10 +844,10 @@ class CliCommandRunnerTest {
|
||||
writePklFile(
|
||||
"import.pkl",
|
||||
"""
|
||||
foo = 1
|
||||
bar = "baz"
|
||||
baz: Boolean
|
||||
"""
|
||||
foo = 1
|
||||
bar = "baz"
|
||||
baz: Boolean
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -873,26 +873,26 @@ class CliCommandRunnerTest {
|
||||
writePklFile(
|
||||
"cmd.pkl",
|
||||
"""
|
||||
extends "pkl:Command"
|
||||
extends "pkl:Command"
|
||||
|
||||
options: Options
|
||||
options: Options
|
||||
|
||||
output {
|
||||
value = (options) {
|
||||
fromImport {
|
||||
baz = true // assert that imported modules are not forced
|
||||
}
|
||||
output {
|
||||
value = (options) {
|
||||
fromImport {
|
||||
baz = true // assert that imported modules are not forced
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Options {
|
||||
@Flag {
|
||||
convert = (it) -> new Import{ uri = it }
|
||||
transformAll = (values) -> values.firstOrNull ?? new Import { uri = "./default.pkl" }
|
||||
}
|
||||
fromImport: Module
|
||||
class Options {
|
||||
@Flag {
|
||||
convert = (it) -> new Import{ uri = it }
|
||||
transformAll = (values) -> values.firstOrNull ?? new Import { uri = "./default.pkl" }
|
||||
}
|
||||
"""
|
||||
fromImport: Module
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -900,10 +900,10 @@ class CliCommandRunnerTest {
|
||||
writePklFile(
|
||||
"default.pkl",
|
||||
"""
|
||||
foo = 1
|
||||
bar = "baz"
|
||||
baz: Boolean
|
||||
"""
|
||||
foo = 1
|
||||
bar = "baz"
|
||||
baz: Boolean
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -932,26 +932,26 @@ class CliCommandRunnerTest {
|
||||
writePklFile(
|
||||
"cmd.pkl",
|
||||
"""
|
||||
extends "pkl:Command"
|
||||
import "base.pkl"
|
||||
extends "pkl:Command"
|
||||
import "base.pkl"
|
||||
|
||||
options: Options
|
||||
options: Options
|
||||
|
||||
output {
|
||||
value = (options) {
|
||||
fromGlobImport {
|
||||
[[true]] {
|
||||
baz = true // assert that imported modules are not forced
|
||||
}
|
||||
output {
|
||||
value = (options) {
|
||||
fromGlobImport {
|
||||
[[true]] {
|
||||
baz = true // assert that imported modules are not forced
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Options {
|
||||
@Argument { convert = (it) -> new Import { uri = it; glob = true }; multiple = false }
|
||||
fromGlobImport: Mapping<String, base>
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = (it) -> new Import { uri = it; glob = true }; multiple = false }
|
||||
fromGlobImport: Mapping<String, base>
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -959,10 +959,10 @@ class CliCommandRunnerTest {
|
||||
writePklFile(
|
||||
"base.pkl",
|
||||
"""
|
||||
foo: Int
|
||||
bar: String
|
||||
baz: Boolean
|
||||
"""
|
||||
foo: Int
|
||||
bar: String
|
||||
baz: Boolean
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
writePklFile(
|
||||
@@ -971,7 +971,7 @@ class CliCommandRunnerTest {
|
||||
amends "base.pkl"
|
||||
foo = 1
|
||||
bar = "baz"
|
||||
"""
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
writePklFile(
|
||||
@@ -980,7 +980,7 @@ class CliCommandRunnerTest {
|
||||
amends "base.pkl"
|
||||
foo = 2
|
||||
bar = "qux"
|
||||
"""
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1019,11 +1019,11 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = (it) -> throw("oops!") }
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = (it) -> throw("oops!") }
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1041,11 +1041,11 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = (it) -> it.noSuchMethod() }
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Argument { convert = (it) -> it.noSuchMethod() }
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1063,12 +1063,12 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
const function overflow(it) = overflow(it)
|
||||
class Options {
|
||||
@Argument { convert = (it) -> overflow(it) }
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
const function overflow(it) = overflow(it)
|
||||
class Options {
|
||||
@Argument { convert = (it) -> overflow(it) }
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1086,19 +1086,19 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@BooleanFlag
|
||||
`bool-true`: Boolean
|
||||
@BooleanFlag
|
||||
`bool-false`: Boolean
|
||||
@BooleanFlag
|
||||
`bool-nullable`: Boolean?
|
||||
@BooleanFlag
|
||||
`bool-default-true`: Boolean = true
|
||||
@BooleanFlag
|
||||
`bool-default-false`: Boolean = false
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@BooleanFlag
|
||||
`bool-true`: Boolean
|
||||
@BooleanFlag
|
||||
`bool-false`: Boolean
|
||||
@BooleanFlag
|
||||
`bool-nullable`: Boolean?
|
||||
@BooleanFlag
|
||||
`bool-default-true`: Boolean = true
|
||||
@BooleanFlag
|
||||
`bool-default-false`: Boolean = false
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1128,11 +1128,11 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@BooleanFlag
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@BooleanFlag
|
||||
foo: String
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1151,25 +1151,25 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@CountedFlag { shortName = "a" }
|
||||
int: Int
|
||||
@CountedFlag { shortName = "b" }
|
||||
int8: Int8
|
||||
@CountedFlag { shortName = "c" }
|
||||
int16: Int16
|
||||
@CountedFlag { shortName = "d" }
|
||||
int32: Int32
|
||||
@CountedFlag { shortName = "x" }
|
||||
uint: UInt
|
||||
@CountedFlag { shortName = "y" }
|
||||
uint8: UInt8
|
||||
@CountedFlag { shortName = "g" }
|
||||
uint16: UInt16
|
||||
@CountedFlag { shortName = "i" }
|
||||
uint32: UInt32
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@CountedFlag { shortName = "a" }
|
||||
int: Int
|
||||
@CountedFlag { shortName = "b" }
|
||||
int8: Int8
|
||||
@CountedFlag { shortName = "c" }
|
||||
int16: Int16
|
||||
@CountedFlag { shortName = "d" }
|
||||
int32: Int32
|
||||
@CountedFlag { shortName = "x" }
|
||||
uint: UInt
|
||||
@CountedFlag { shortName = "y" }
|
||||
uint8: UInt8
|
||||
@CountedFlag { shortName = "g" }
|
||||
uint16: UInt16
|
||||
@CountedFlag { shortName = "i" }
|
||||
uint32: UInt32
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1202,14 +1202,14 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
@Flag {
|
||||
multiple = true
|
||||
transformAll = (values) -> values.fold(0, (res, acc) -> res + acc)
|
||||
}
|
||||
foo: Int
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
@Flag {
|
||||
multiple = true
|
||||
transformAll = (values) -> values.fold(0, (res, acc) -> res + acc)
|
||||
}
|
||||
foo: Int
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1235,21 +1235,21 @@ class CliCommandRunnerTest {
|
||||
"cmd.pkl",
|
||||
renderOptions +
|
||||
"""
|
||||
class Options {
|
||||
none: String?
|
||||
enum: *"a" | "b" | "c"
|
||||
@Flag { completionCandidates = "paths" }
|
||||
path: String?
|
||||
@Flag { completionCandidates { "foo"; "bar"; "baz" } }
|
||||
explicit: String?
|
||||
@Argument
|
||||
enumArg: *"a" | "b" | "c"
|
||||
@Argument { completionCandidates = "paths" }
|
||||
pathArg: String
|
||||
@Argument { completionCandidates { "foo"; "bar"; "baz" } }
|
||||
explicitArg: String
|
||||
}
|
||||
"""
|
||||
class Options {
|
||||
none: String?
|
||||
enum: *"a" | "b" | "c"
|
||||
@Flag { completionCandidates = "paths" }
|
||||
path: String?
|
||||
@Flag { completionCandidates { "foo"; "bar"; "baz" } }
|
||||
explicit: String?
|
||||
@Argument
|
||||
enumArg: *"a" | "b" | "c"
|
||||
@Argument { completionCandidates = "paths" }
|
||||
pathArg: String
|
||||
@Argument { completionCandidates { "foo"; "bar"; "baz" } }
|
||||
explicitArg: String
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val exc =
|
||||
|
||||
@@ -58,7 +58,7 @@ class CliEvaluatorTest {
|
||||
name = "pigeon"
|
||||
age = 20 + 10
|
||||
}
|
||||
"""
|
||||
"""
|
||||
.trimIndent()
|
||||
|
||||
private val packageServer = PackageServer()
|
||||
@@ -243,12 +243,12 @@ person:
|
||||
.resolve("test2.pkl")
|
||||
.writeString(
|
||||
"""
|
||||
amends "test.pkl"
|
||||
amends "test.pkl"
|
||||
|
||||
person {
|
||||
name = "barn owl"
|
||||
}
|
||||
"""
|
||||
person {
|
||||
name = "barn owl"
|
||||
}
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
|
||||
@@ -739,7 +739,7 @@ result = someLib.x
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
)
|
||||
@@ -815,31 +815,31 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test0.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["foo.pcf"] {
|
||||
value = new Dynamic {
|
||||
["bar"] = "baz"
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["foo.pcf"] {
|
||||
value = new Dynamic {
|
||||
["bar"] = "baz"
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
),
|
||||
writePklFile(
|
||||
"test1.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["bar.pcf"] {
|
||||
value = new Dynamic {
|
||||
["bar"] = "baz"
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["bar.pcf"] {
|
||||
value = new Dynamic {
|
||||
["bar"] = "baz"
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
),
|
||||
)
|
||||
@@ -860,27 +860,27 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"bar.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["foo.pcf"] {
|
||||
text = "myBar"
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["foo.pcf"] {
|
||||
text = "myBar"
|
||||
}
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
),
|
||||
writePklFile(
|
||||
"foo.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["foo.pcf"] {
|
||||
text = "myFoo"
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["foo.pcf"] {
|
||||
text = "myFoo"
|
||||
}
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
),
|
||||
)
|
||||
@@ -918,7 +918,7 @@ result = someLib.x
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val options =
|
||||
@@ -949,7 +949,7 @@ result = someLib.x
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val options =
|
||||
@@ -970,23 +970,23 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test1.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["."] { text = "bar" }
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["."] { text = "bar" }
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
),
|
||||
writePklFile(
|
||||
"test2.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["myDir"] { text = "bar" }
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["myDir"] { text = "bar" }
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
),
|
||||
)
|
||||
@@ -1009,23 +1009,23 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test1.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["foo.txt"] { text = "bar" }
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["foo.txt"] { text = "bar" }
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
),
|
||||
writePklFile(
|
||||
"test2.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["foo.txt"] { text = "bar" }
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["foo.txt"] { text = "bar" }
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
),
|
||||
)
|
||||
@@ -1045,13 +1045,13 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["foo.txt"] { text = "bar" }
|
||||
["./foo.txt"] { text = "bar" }
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["foo.txt"] { text = "bar" }
|
||||
["./foo.txt"] { text = "bar" }
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val options =
|
||||
@@ -1071,12 +1071,12 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["foo:bar"] { text = "bar" }
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["foo:bar"] { text = "bar" }
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1096,12 +1096,12 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
output {
|
||||
files {
|
||||
["foo\\bar"] { text = "bar" }
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["foo\\bar"] { text = "bar" }
|
||||
}
|
||||
"""
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -1120,10 +1120,10 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
foo {
|
||||
bar = 1
|
||||
}
|
||||
"""
|
||||
foo {
|
||||
bar = 1
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val options =
|
||||
@@ -1136,8 +1136,8 @@ result = someLib.x
|
||||
assertThat(buffer.toString(StandardCharsets.UTF_8))
|
||||
.isEqualTo(
|
||||
"""
|
||||
new Dynamic { bar = 1 }
|
||||
"""
|
||||
new Dynamic { bar = 1 }
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
}
|
||||
@@ -1148,13 +1148,13 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
class Person {
|
||||
name: String
|
||||
class Person {
|
||||
name: String
|
||||
|
||||
function toString() = "Person(\(name))"
|
||||
}
|
||||
person: Person = new { name = "Frodo" }
|
||||
"""
|
||||
function toString() = "Person(\(name))"
|
||||
}
|
||||
person: Person = new { name = "Frodo" }
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val options =
|
||||
@@ -1173,10 +1173,10 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
person {
|
||||
friend { name = "Bilbo" }
|
||||
}
|
||||
"""
|
||||
person {
|
||||
friend { name = "Bilbo" }
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val options =
|
||||
@@ -1196,8 +1196,8 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
res = 1
|
||||
"""
|
||||
res = 1
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
writePklFile(
|
||||
@@ -1206,7 +1206,7 @@ result = someLib.x
|
||||
amends "pkl:Project"
|
||||
|
||||
package = throw("invalid project package")
|
||||
"""
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val options =
|
||||
@@ -1225,8 +1225,8 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
res = read*("env:**")
|
||||
"""
|
||||
res = read*("env:**")
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
writePklFile(
|
||||
@@ -1241,7 +1241,7 @@ result = someLib.x
|
||||
["bar"] = "bar"
|
||||
}
|
||||
}
|
||||
"""
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val options =
|
||||
@@ -1251,12 +1251,12 @@ result = someLib.x
|
||||
assertThat(buffer.toString(StandardCharsets.UTF_8))
|
||||
.isEqualTo(
|
||||
"""
|
||||
res {
|
||||
["env:bar"] = "bar"
|
||||
["env:foo"] = "foo"
|
||||
}
|
||||
res {
|
||||
["env:bar"] = "bar"
|
||||
["env:foo"] = "foo"
|
||||
}
|
||||
|
||||
"""
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
}
|
||||
@@ -1295,7 +1295,7 @@ result = someLib.x
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(moduleUri),
|
||||
workingDir = tempDir,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
)
|
||||
)
|
||||
val buffer = ByteArrayOutputStream()
|
||||
@@ -1337,7 +1337,7 @@ result = someLib.x
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(moduleUri),
|
||||
workingDir = tempDir,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
settings = settingsFile,
|
||||
)
|
||||
)
|
||||
@@ -1353,10 +1353,10 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
import "package://localhost:0/birds@0.5.0#/catalog/Swallow.pkl"
|
||||
import "package://localhost:0/birds@0.5.0#/catalog/Swallow.pkl"
|
||||
|
||||
res = Swallow
|
||||
"""
|
||||
res = Swallow
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
val buffer = ByteArrayOutputStream()
|
||||
@@ -1367,7 +1367,7 @@ result = someLib.x
|
||||
workingDir = tempDir,
|
||||
moduleCacheDir = tempDir,
|
||||
noCache = true,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
testPort = packageServer.port,
|
||||
)
|
||||
)
|
||||
@@ -1375,14 +1375,14 @@ result = someLib.x
|
||||
assertThat(buffer.toString(StandardCharsets.UTF_8))
|
||||
.isEqualTo(
|
||||
"""
|
||||
res {
|
||||
name = "Swallow"
|
||||
favoriteFruit {
|
||||
name = "Apple"
|
||||
}
|
||||
res {
|
||||
name = "Swallow"
|
||||
favoriteFruit {
|
||||
name = "Apple"
|
||||
}
|
||||
}
|
||||
|
||||
"""
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
assertThat(tempDir.resolve("package-2")).doesNotExist()
|
||||
@@ -1473,7 +1473,7 @@ result = someLib.x
|
||||
sourceModules = listOf(URI("package://localhost:1/birds@0.5.0#/catalog/Ostrich.pkl")),
|
||||
noCache = true,
|
||||
httpProxy = URI(wwRuntimeInfo.httpBaseUrl),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
allowedModules = SecurityManagers.defaultAllowedModules + Pattern.compile("http:"),
|
||||
)
|
||||
)
|
||||
@@ -1481,13 +1481,13 @@ result = someLib.x
|
||||
assertThat(output)
|
||||
.isEqualTo(
|
||||
"""
|
||||
name = "Ostrich"
|
||||
name = "Ostrich"
|
||||
|
||||
favoriteFruit {
|
||||
name = "Orange"
|
||||
}
|
||||
favoriteFruit {
|
||||
name = "Orange"
|
||||
}
|
||||
|
||||
"""
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
verify(getRequestedFor(urlEqualTo("birds@0.5.0")))
|
||||
@@ -1590,13 +1590,13 @@ result = someLib.x
|
||||
homeDir.writeFile(
|
||||
"settings.pkl",
|
||||
"""
|
||||
amends "pkl:settings"
|
||||
amends "pkl:settings"
|
||||
|
||||
http {
|
||||
proxy {
|
||||
address = "http://invalid.proxy.address"
|
||||
http {
|
||||
proxy {
|
||||
address = "http://invalid.proxy.address"
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
@@ -1614,24 +1614,6 @@ result = someLib.x
|
||||
assertThat(output).isEqualTo("result = 1\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `eval configured http headers`(wwRuntimeInfo: WireMockRuntimeInfo) {
|
||||
stubFor(get(anyUrl()).willReturn(ok("result = 1")))
|
||||
val file = URI("${wwRuntimeInfo.httpBaseUrl}/foo.pkl")
|
||||
val output =
|
||||
evalToConsole(
|
||||
CliEvaluatorOptions(
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(file),
|
||||
httpHeaders = mapOf("**" to mapOf("X-Foo" to listOf("Foo"))),
|
||||
allowedModules =
|
||||
listOf(Pattern.compile("http:"), Pattern.compile("file:"), Pattern.compile("pkl:")),
|
||||
)
|
||||
)
|
||||
)
|
||||
verify(getRequestedFor(urlEqualTo("/foo.pkl")).withHeader("X-Foo", equalTo("Foo")))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `eval file with non-ASCII name`() {
|
||||
val tempDirUri = tempDir.toUri()
|
||||
@@ -1695,26 +1677,26 @@ result = someLib.x
|
||||
writePklFile(
|
||||
"test.pkl",
|
||||
"""
|
||||
pigeon {
|
||||
name = "Pigeon"
|
||||
diet = "Seeds"
|
||||
}
|
||||
parrot {
|
||||
name = "Parrot"
|
||||
diet = "Seeds"
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["pigeon.json"] {
|
||||
value = pigeon
|
||||
renderer = new JsonRenderer {}
|
||||
}
|
||||
["birds/parrot.yaml"] {
|
||||
value = parrot
|
||||
renderer = new YamlRenderer {}
|
||||
pigeon {
|
||||
name = "Pigeon"
|
||||
diet = "Seeds"
|
||||
}
|
||||
parrot {
|
||||
name = "Parrot"
|
||||
diet = "Seeds"
|
||||
}
|
||||
output {
|
||||
files {
|
||||
["pigeon.json"] {
|
||||
value = pigeon
|
||||
renderer = new JsonRenderer {}
|
||||
}
|
||||
["birds/parrot.yaml"] {
|
||||
value = parrot
|
||||
renderer = new YamlRenderer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
@@ -1731,10 +1713,10 @@ result = someLib.x
|
||||
realOutputDir.resolve("pigeon.json"),
|
||||
"pigeon.json",
|
||||
"""
|
||||
{
|
||||
"name": "Pigeon",
|
||||
"diet": "Seeds"
|
||||
}
|
||||
{
|
||||
"name": "Pigeon",
|
||||
"diet": "Seeds"
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
@@ -1743,8 +1725,8 @@ result = someLib.x
|
||||
realOutputDir.resolve("birds/parrot.yaml"),
|
||||
"parrot.yaml",
|
||||
"""
|
||||
name: Parrot
|
||||
diet: Seeds
|
||||
name: Parrot
|
||||
diet: Seeds
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
@@ -1753,10 +1735,10 @@ result = someLib.x
|
||||
symlinkOutputDir.resolve("pigeon.json"),
|
||||
"pigeon.json",
|
||||
"""
|
||||
{
|
||||
"name": "Pigeon",
|
||||
"diet": "Seeds"
|
||||
}
|
||||
{
|
||||
"name": "Pigeon",
|
||||
"diet": "Seeds"
|
||||
}
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
@@ -1765,39 +1747,13 @@ result = someLib.x
|
||||
symlinkOutputDir.resolve("birds/parrot.yaml"),
|
||||
"parrot.yaml",
|
||||
"""
|
||||
name: Parrot
|
||||
diet: Seeds
|
||||
name: Parrot
|
||||
diet: Seeds
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `eval dependency notation source`(@TempDir tempDir: Path) {
|
||||
PackageServer.populateCacheDir(tempDir)
|
||||
val projectPath =
|
||||
FileTestUtils.rootProjectDir.resolve(
|
||||
"pkl-commons-cli/src/main/resources/org/pkl/commons/cli/project1/"
|
||||
)
|
||||
val options =
|
||||
CliEvaluatorOptions(
|
||||
CliBaseOptions(
|
||||
sourceModules = listOf(URI("@fruit/catalog/apple.pkl")),
|
||||
projectDir = projectPath,
|
||||
moduleCacheDir = tempDir,
|
||||
)
|
||||
)
|
||||
val output = evalToConsole(options)
|
||||
assertThat(output)
|
||||
.isEqualTo(
|
||||
"""
|
||||
name = "Apple 🍎"
|
||||
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
}
|
||||
|
||||
private fun evalModuleThatImportsPackage(certsFile: Path?, testPort: Int = -1) {
|
||||
val moduleUri =
|
||||
writePklFile(
|
||||
|
||||
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -74,7 +74,7 @@ class CliMainTest {
|
||||
value = x
|
||||
renderer = new JsonRenderer {}
|
||||
}
|
||||
"""
|
||||
"""
|
||||
.trimIndent()
|
||||
val inputFile = tempDir.resolve("test.pkl").writeString(code).toString()
|
||||
val outputFile = makeSymdir(tempDir, "out", "linkOut").resolve("test.pkl").toString()
|
||||
@@ -169,60 +169,4 @@ class CliMainTest {
|
||||
link.createSymbolicLinkPointingTo(dir)
|
||||
return link
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `invalid http header glob pattern`() {
|
||||
val ex =
|
||||
assertThrows<BadParameterValue> {
|
||||
rootCmd.parse(arrayOf("eval", "--http-header", "foo{{}}=bar:baz", "myModule.pkl"))
|
||||
}
|
||||
assertThat(ex.message)
|
||||
.contains("Sub-patterns cannot be nested. To fix, remove or escape the inner `{` character.")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `forbidden http header name`() {
|
||||
val ex =
|
||||
assertThrows<BadParameterValue> {
|
||||
rootCmd.parse(arrayOf("eval", "--http-header", "**=Connection: baz", "myModule.pkl"))
|
||||
}
|
||||
assertThat(ex.message).contains("HTTP header `Connection` is a reserved header")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `bad http header value`() {
|
||||
val ex =
|
||||
assertThrows<BadParameterValue> {
|
||||
rootCmd.parse(arrayOf("eval", "--http-header", "**=X-Foo:🙃", "myModule.pkl"))
|
||||
}
|
||||
assertThat(ex.message).contains("HTTP header value `🙃` has invalid syntax")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `multiple headers`() {
|
||||
val cmd = RootCommand()
|
||||
cmd.parse(
|
||||
arrayOf(
|
||||
"eval",
|
||||
"--http-header",
|
||||
"**=X-Foo:Foo",
|
||||
"--http-header",
|
||||
"**=X-Foo:Foo2",
|
||||
"--http-header",
|
||||
"**=X-Bar:Bar",
|
||||
"--http-header",
|
||||
"https://example.com/**=X-Qux:Qux",
|
||||
"pkl:base",
|
||||
)
|
||||
)
|
||||
|
||||
val evalCmd = cmd.registeredSubcommands().filterIsInstance<EvalCommand>().first()
|
||||
assertThat(evalCmd.baseOptions.httpHeaders)
|
||||
.isEqualTo(
|
||||
mapOf(
|
||||
"**" to mapOf("X-Foo" to listOf("Foo", "Foo2"), "X-Bar" to listOf("Bar")),
|
||||
"https://example.com/**" to mapOf("X-Qux" to listOf("Qux")),
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -44,7 +44,7 @@ class CliPackageDownloaderTest {
|
||||
baseOptions =
|
||||
CliBaseOptions(
|
||||
moduleCacheDir = tempDir,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
testPort = server.port,
|
||||
),
|
||||
packageUris =
|
||||
@@ -74,7 +74,7 @@ class CliPackageDownloaderTest {
|
||||
evaluatorSettings {
|
||||
moduleCacheDir = ".my-cache"
|
||||
}
|
||||
"""
|
||||
"""
|
||||
.trimIndent(),
|
||||
)
|
||||
|
||||
@@ -83,7 +83,7 @@ class CliPackageDownloaderTest {
|
||||
baseOptions =
|
||||
CliBaseOptions(
|
||||
workingDir = tempDir,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
testPort = server.port,
|
||||
),
|
||||
packageUris = listOf(PackageUri("package://localhost:0/birds@0.5.0")),
|
||||
@@ -103,7 +103,7 @@ class CliPackageDownloaderTest {
|
||||
baseOptions =
|
||||
CliBaseOptions(
|
||||
moduleCacheDir = tempDir,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
testPort = server.port,
|
||||
),
|
||||
packageUris =
|
||||
@@ -124,7 +124,7 @@ class CliPackageDownloaderTest {
|
||||
baseOptions =
|
||||
CliBaseOptions(
|
||||
moduleCacheDir = tempDir,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
testPort = server.port,
|
||||
),
|
||||
packageUris =
|
||||
@@ -165,7 +165,7 @@ class CliPackageDownloaderTest {
|
||||
baseOptions =
|
||||
CliBaseOptions(
|
||||
moduleCacheDir = tempDir,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
testPort = server.port,
|
||||
),
|
||||
packageUris = listOf(PackageUri("package://localhost:0/badChecksum@1.0.0")),
|
||||
@@ -184,7 +184,7 @@ class CliPackageDownloaderTest {
|
||||
baseOptions =
|
||||
CliBaseOptions(
|
||||
moduleCacheDir = tempDir,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
testPort = server.port,
|
||||
),
|
||||
packageUris =
|
||||
@@ -210,7 +210,7 @@ class CliPackageDownloaderTest {
|
||||
Exception when making request `GET https://bogus.domain/notAPackage@1.0.0`:
|
||||
Error connecting to host `bogus.domain`.
|
||||
|
||||
"""
|
||||
"""
|
||||
.trimIndent()
|
||||
)
|
||||
}
|
||||
@@ -221,7 +221,7 @@ class CliPackageDownloaderTest {
|
||||
baseOptions =
|
||||
CliBaseOptions(
|
||||
moduleCacheDir = tempDir,
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificatePem),
|
||||
caCertificates = listOf(FileTestUtils.selfSignedCertificate),
|
||||
testPort = server.port,
|
||||
),
|
||||
packageUris = listOf(PackageUri("package://localhost:0/birds@0.5.0")),
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user