mirror of
https://github.com/apple/pkl.git
synced 2026-05-25 16:19:20 +02:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| efc9e2c819 | |||
| a9544ebbaf | |||
| 0eb619b387 | |||
| 2c74108a6a | |||
| bd914f266a | |||
| c069fb9611 | |||
| b1fa8bea32 | |||
| 3bdadb0bcd | |||
| 4f33a7e521 | |||
| 51dc0dc14d | |||
| 3a91a51c5f | |||
| c4c0325268 | |||
| 58d0fc2e05 | |||
| 0f054d5c10 | |||
| 9315b8410d | |||
| 853ac26e44 | |||
| 40ee6c6124 | |||
| e8ecc17709 | |||
| 2904b719bb |
+2
-2
@@ -2,9 +2,9 @@ amends "pkl:Project"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
["pkl.impl.ghactions"] {
|
["pkl.impl.ghactions"] {
|
||||||
uri = "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.6.0"
|
uri = "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.5.0"
|
||||||
}
|
}
|
||||||
["gha"] {
|
["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,16 +3,16 @@
|
|||||||
"resolvedDependencies": {
|
"resolvedDependencies": {
|
||||||
"package://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1": {
|
"package://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1": {
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.4.0",
|
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.3.1",
|
||||||
"checksums": {
|
"checksums": {
|
||||||
"sha256": "e0b9a9f71071d6101e9d764c069b2ec4a597d5315cb6e4c265b3f0d90c2b482c"
|
"sha256": "fd515da685ea126678c3ec684e84a4f992d43481cc1d75cb866cd55775f675f9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1": {
|
"package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1": {
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.6.0",
|
"uri": "projectpackage://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.5.0",
|
||||||
"checksums": {
|
"checksums": {
|
||||||
"sha256": "fbc3c456ea468a0fe6baa9b3d30167259ac04e721a41a10fe82d2970026f0b1d"
|
"sha256": "2c1e0d9efcd65b3c3207bf535c325ebc0ec2ab169187b324c4bb70821cac0e51"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.deepToTyped@1": {
|
"package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.deepToTyped@1": {
|
||||||
@@ -24,16 +24,16 @@
|
|||||||
},
|
},
|
||||||
"package://pkg.pkl-lang.org/pkl-pantry/pkl.github.dependabotManagedActions@1": {
|
"package://pkg.pkl-lang.org/pkl-pantry/pkl.github.dependabotManagedActions@1": {
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.github.dependabotManagedActions@1.1.0",
|
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.github.dependabotManagedActions@1.0.3",
|
||||||
"checksums": {
|
"checksums": {
|
||||||
"sha256": "025fac778f2c5f75c8229fa4ec0f49ebdb99a61affe9aae489fefd8fccd92faa"
|
"sha256": "d368900942efb88ed51a98f9614748b06c74ba43423f045fcd6dedb5dbdc0bea"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"package://pkg.pkl-lang.org/pkl-pantry/com.github.dependabot@1": {
|
"package://pkg.pkl-lang.org/pkl-pantry/com.github.dependabot@1": {
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.dependabot@1.0.1",
|
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.dependabot@1.0.0",
|
||||||
"checksums": {
|
"checksums": {
|
||||||
"sha256": "0a4fe9b0983716ec49fb060b9e5e83f8c365eb899d517123b43134416a9574b6"
|
"sha256": "02ef6f25bfca5b1d095db73ea15de79d2d2c6832ebcab61e6aba90554382abcb"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
amends "@gha/Workflow.pkl"
|
|
||||||
|
|
||||||
import "@gha/catalog.pkl"
|
|
||||||
|
|
||||||
on {
|
|
||||||
push {
|
|
||||||
branches {
|
|
||||||
"main"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pull_request {}
|
|
||||||
schedule {
|
|
||||||
// Run at 01:38 on Saturday
|
|
||||||
new { cron = "38 1 * * 6" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local class CodeQLScan {
|
|
||||||
language: String
|
|
||||||
|
|
||||||
`build-mode`: String
|
|
||||||
}
|
|
||||||
|
|
||||||
local scans: Listing<CodeQLScan> = new {
|
|
||||||
new {
|
|
||||||
language = "actions"
|
|
||||||
`build-mode` = "none"
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
language = "java-kotlin"
|
|
||||||
`build-mode` = "autobuild"
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
language = "javascript-typescript"
|
|
||||||
`build-mode` = "none"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
jobs {
|
|
||||||
for (scan in scans) {
|
|
||||||
["analyze-\(scan.language)"] {
|
|
||||||
name = "Analyze (\(scan.language))"
|
|
||||||
`runs-on` = "ubuntu-latest"
|
|
||||||
permissions {
|
|
||||||
`security-events` = "write"
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
catalog.`actions/checkout@v6`
|
|
||||||
new {
|
|
||||||
name = "Initialize CodeQL"
|
|
||||||
uses = "github/codeql-action/init@v4"
|
|
||||||
with {
|
|
||||||
["languages"] = scan.language
|
|
||||||
["build-mode"] = scan.`build-mode`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
name = "Perform CodeQL Analysis"
|
|
||||||
uses = "github/codeql-action/analyze@v4"
|
|
||||||
with {
|
|
||||||
["category"] = "/language:\(scan.language)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +1,6 @@
|
|||||||
version: 2
|
version: 2
|
||||||
updates:
|
updates:
|
||||||
- package-ecosystem: gradle
|
|
||||||
cooldown:
|
|
||||||
default-days: 7
|
|
||||||
directory: /
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
||||||
- package-ecosystem: github-actions
|
- package-ecosystem: github-actions
|
||||||
cooldown:
|
|
||||||
default-days: 7
|
|
||||||
directory: /
|
directory: /
|
||||||
ignore:
|
ignore:
|
||||||
- dependency-name: '*'
|
- dependency-name: '*'
|
||||||
|
|||||||
+2
-51
@@ -9,7 +9,6 @@ import "jobs/GithubRelease.pkl"
|
|||||||
import "jobs/GradleJob.pkl"
|
import "jobs/GradleJob.pkl"
|
||||||
import "jobs/PklJob.pkl"
|
import "jobs/PklJob.pkl"
|
||||||
import "jobs/SimpleGradleJob.pkl"
|
import "jobs/SimpleGradleJob.pkl"
|
||||||
import "codeql.pkl"
|
|
||||||
|
|
||||||
triggerDocsBuild = "both"
|
triggerDocsBuild = "both"
|
||||||
|
|
||||||
@@ -23,8 +22,6 @@ testReports {
|
|||||||
excludeJobs {
|
excludeJobs {
|
||||||
"bench"
|
"bench"
|
||||||
"github-release"
|
"github-release"
|
||||||
"dependency-submission"
|
|
||||||
"dependency-review"
|
|
||||||
Regex("deploy-.*")
|
Regex("deploy-.*")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -43,15 +40,11 @@ local gradleCheckWindows = (baseGradleCheck) {
|
|||||||
os = "windows"
|
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 {
|
local toWorkflowJobs: (PklJobs) -> Workflow.Jobs = (it) -> new Workflow.Jobs {
|
||||||
for (k, v in it) {
|
for (k, v in it) {
|
||||||
when (v is PklJob) {
|
[k] = v.job
|
||||||
[k] = v.job
|
|
||||||
} else {
|
|
||||||
[k] = v
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,28 +173,6 @@ main {
|
|||||||
) {
|
) {
|
||||||
needs = buildAndTestJobs.keys.toListing()
|
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
|
} |> toWorkflowJobs
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,23 +196,3 @@ release {
|
|||||||
}
|
}
|
||||||
} |> toWorkflowJobs
|
} |> toWorkflowJobs
|
||||||
}
|
}
|
||||||
|
|
||||||
dependabot {
|
|
||||||
updates {
|
|
||||||
new {
|
|
||||||
`package-ecosystem` = "gradle"
|
|
||||||
schedule {
|
|
||||||
interval = "weekly"
|
|
||||||
}
|
|
||||||
cooldown {
|
|
||||||
`default-days` = 7
|
|
||||||
}
|
|
||||||
directory = "/"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
workflows {
|
|
||||||
// add codeql workflow to set of workflows
|
|
||||||
["workflows/codeql.yml"] = codeql
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -23,8 +23,7 @@ preSteps {
|
|||||||
when (os == "linux" && !musl) {
|
when (os == "linux" && !musl) {
|
||||||
new {
|
new {
|
||||||
name = "Install deps"
|
name = "Install deps"
|
||||||
run =
|
run = "dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en"
|
||||||
"dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ fixed job {
|
|||||||
}
|
}
|
||||||
(catalog.`actions/setup-java@v5`) {
|
(catalog.`actions/setup-java@v5`) {
|
||||||
with {
|
with {
|
||||||
`java-version` = "25"
|
`java-version` = "21"
|
||||||
distribution = "temurin"
|
distribution = "temurin"
|
||||||
architecture =
|
architecture =
|
||||||
if (arch == "amd64")
|
if (arch == "amd64")
|
||||||
|
|||||||
Generated
-6
@@ -30,11 +30,5 @@ jobs:
|
|||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
||||||
- name: dawidd6/action-download-artifact@v11
|
- name: dawidd6/action-download-artifact@v11
|
||||||
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
|
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
|
||||||
- name: github/codeql-action/analyze@v4
|
|
||||||
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
|
|
||||||
- name: github/codeql-action/init@v4
|
|
||||||
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
|
|
||||||
- name: gradle/actions/dependency-submission@v6
|
|
||||||
uses: gradle/actions/dependency-submission@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6
|
|
||||||
- name: gradle/actions/setup-gradle@v5
|
- name: gradle/actions/setup-gradle@v5
|
||||||
uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
|
|||||||
Generated
+17
-17
@@ -25,7 +25,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -58,7 +58,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -89,7 +89,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -108,7 +108,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -140,7 +140,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -182,7 +182,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -220,7 +220,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -263,7 +263,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -301,7 +301,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -341,7 +341,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -451,7 +451,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -490,7 +490,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -528,7 +528,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -571,7 +571,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -609,7 +609,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -649,7 +649,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -759,7 +759,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
|
|||||||
Generated
-63
@@ -1,63 +0,0 @@
|
|||||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
|
||||||
'on':
|
|
||||||
pull_request: {}
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
schedule:
|
|
||||||
- cron: 38 1 * * 6
|
|
||||||
jobs:
|
|
||||||
analyze-actions:
|
|
||||||
name: Analyze (actions)
|
|
||||||
permissions:
|
|
||||||
security-events: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
|
|
||||||
with:
|
|
||||||
languages: actions
|
|
||||||
build-mode: none
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
|
|
||||||
with:
|
|
||||||
category: /language:actions
|
|
||||||
analyze-java-kotlin:
|
|
||||||
name: Analyze (java-kotlin)
|
|
||||||
permissions:
|
|
||||||
security-events: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
|
|
||||||
with:
|
|
||||||
languages: java-kotlin
|
|
||||||
build-mode: autobuild
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
|
|
||||||
with:
|
|
||||||
languages: javascript-typescript
|
|
||||||
build-mode: none
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
|
|
||||||
with:
|
|
||||||
category: /language:javascript-typescript
|
|
||||||
Generated
+18
-34
@@ -23,7 +23,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -56,7 +56,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -87,7 +87,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -106,7 +106,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -138,7 +138,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -180,7 +180,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -218,7 +218,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -261,7 +261,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -299,7 +299,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -339,7 +339,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -449,7 +449,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -488,7 +488,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -526,7 +526,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -569,7 +569,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -607,7 +607,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -647,7 +647,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -757,7 +757,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -812,7 +812,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -831,21 +831,6 @@ jobs:
|
|||||||
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEPASSWORD }}
|
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEPASSWORD }}
|
||||||
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEUSERNAME }}
|
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEUSERNAME }}
|
||||||
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true --no-parallel publishToSonatype
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true --no-parallel publishToSonatype
|
||||||
dependency-submission:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
|
||||||
- uses: gradle/actions/dependency-submission@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6
|
|
||||||
with:
|
|
||||||
dependency-graph-include-configurations: .*[rR]untimeClasspath|.*[cC]ompileClasspath
|
|
||||||
publish-test-results:
|
publish-test-results:
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
needs:
|
needs:
|
||||||
@@ -906,7 +891,6 @@ jobs:
|
|||||||
- pkl-doc-alpine-linux-amd64-snapshot
|
- pkl-doc-alpine-linux-amd64-snapshot
|
||||||
- pkl-doc-windows-amd64-snapshot
|
- pkl-doc-windows-amd64-snapshot
|
||||||
- deploy-snapshot
|
- deploy-snapshot
|
||||||
- dependency-submission
|
|
||||||
- publish-test-results
|
- publish-test-results
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
Generated
+14
-14
@@ -19,7 +19,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -54,7 +54,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -89,7 +89,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -129,7 +129,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -173,7 +173,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -213,7 +213,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -255,7 +255,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -367,7 +367,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -407,7 +407,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -447,7 +447,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -491,7 +491,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -531,7 +531,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -573,7 +573,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -685,7 +685,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
|
|||||||
Generated
+17
-17
@@ -23,7 +23,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -56,7 +56,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -87,7 +87,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -106,7 +106,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -138,7 +138,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -180,7 +180,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -218,7 +218,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -261,7 +261,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -299,7 +299,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -339,7 +339,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -449,7 +449,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -488,7 +488,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -526,7 +526,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -569,7 +569,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -607,7 +607,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -647,7 +647,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -757,7 +757,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
|
|||||||
Generated
+18
-18
@@ -23,7 +23,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -56,7 +56,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -87,7 +87,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -106,7 +106,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -138,7 +138,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -181,7 +181,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -220,7 +220,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -264,7 +264,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -303,7 +303,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -344,7 +344,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -455,7 +455,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -495,7 +495,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -534,7 +534,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -578,7 +578,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -617,7 +617,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -658,7 +658,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -769,7 +769,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
@@ -825,7 +825,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
||||||
|
|||||||
+13
-6
@@ -13,11 +13,11 @@ To import the project into IntelliJ, go to File->Open and select the project's r
|
|||||||
If the project is opened but not imported, look for a popup in the lower right corner
|
If the project is opened but not imported, look for a popup in the lower right corner
|
||||||
and click its "Import Gradle Project" link.
|
and click its "Import Gradle Project" link.
|
||||||
. (recommended) Install {uri-gng}[gng] +
|
. (recommended) Install {uri-gng}[gng] +
|
||||||
_gng_ enables you to run Gradle commands with `gw` (instead of `./gradlew`) from any subdirectory.
|
_gng_ enables to run Gradle commands with `gw` (instead of `./gradlew`) from any subdirectory.
|
||||||
. (recommended) Set up Git ignore-revs +
|
. (recommended) Set up Git ignore-revs +
|
||||||
`git config blame.ignoreRevsFile .git-blame-ignore-revs`
|
`git config blame.ignoreRevsFile .git-blame-ignore-revs`
|
||||||
. (recommended) Install {uri-jenv}[jenv] and plugins +
|
. (recommended) Install {uri-jenv}[jenv] and plugins +
|
||||||
_jenv_ uses specific JDK versions in certain subdirectories. _Pkl_ comes with a `.java-version` file specifying JDK 21. +
|
_jenv_ use specific JDK versions in certain subdirectories. _Pkl_ comes with a `.java-version` file specifying JDK 21. +
|
||||||
Enable _jenv_ plugins for better handling by `gradle`:
|
Enable _jenv_ plugins for better handling by `gradle`:
|
||||||
+
|
+
|
||||||
[source,shell]
|
[source,shell]
|
||||||
@@ -74,7 +74,9 @@ gw wrapper --gradle-version [version] --gradle-distribution-sha256-sum [sha]
|
|||||||
|
|
||||||
. (optional) Update _gradle/libs.version.toml_
|
. (optional) Update _gradle/libs.version.toml_
|
||||||
based on version information from https://search.maven.org, https://plugins.gradle.org, and GitHub repos
|
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`
|
. Validate changes with `gw build buildNative`
|
||||||
|
. Review and commit the updated dependency lock files
|
||||||
|
|
||||||
== Code Generation
|
== Code Generation
|
||||||
|
|
||||||
@@ -90,9 +92,14 @@ Example: `./gradlew test -Djvmdebug=true`
|
|||||||
|
|
||||||
== Snippet Test Plugin
|
== Snippet Test Plugin
|
||||||
|
|
||||||
There is an IntelliJ plugin meant for development on the Pkl project itself located in https://github.com/apple/pkl-project-commons[pkl-project-commons].
|
There is an IntelliJ plugin meant for development on the Pkl project itself.
|
||||||
|
This plugin provides a split pane window when viewing snippet tests such as LanguageSnippetTests and FormatterSnippetTests.
|
||||||
|
|
||||||
See https://github.com/apple/pkl-project-commons?tab=readme-ov-file#internal-intellij-plugin[its readme] for instructions on how to set it up.
|
To install:
|
||||||
|
|
||||||
|
1. Run `./gradlew pkl-internal-intellij-plugin:buildPlugin`.
|
||||||
|
2. Within IntelliJ, run the action "Install Plugin From Disk...".
|
||||||
|
3. Select the zip file within `pkl-internal-intellij-plugin/build/distributions`.
|
||||||
|
|
||||||
== Resources
|
== Resources
|
||||||
|
|
||||||
@@ -103,12 +110,12 @@ For automated build setup examples see our https://github.com/apple/pkl/blob/mai
|
|||||||
* http://ssw.jku.at/Research/Projects/JVM/Truffle.html[Homepage]
|
* http://ssw.jku.at/Research/Projects/JVM/Truffle.html[Homepage]
|
||||||
* https://github.com/graalvm/truffle[GitHub]
|
* https://github.com/graalvm/truffle[GitHub]
|
||||||
* http://lafo.ssw.uni-linz.ac.at/javadoc/truffle/latest/[Javadoc]
|
* http://lafo.ssw.uni-linz.ac.at/javadoc/truffle/latest/[Javadoc]
|
||||||
* https://mail.openjdk.org/pipermail/graal-dev/[Mailing List]
|
* http://mail.openjdk.java.net/pipermail/graal-dev/[Mailing List]
|
||||||
* https://medium.com/@octskyward/graal-truffle-134d8f28fb69#.2db370y2g[Graal & Truffle (Article)]
|
* https://medium.com/@octskyward/graal-truffle-134d8f28fb69#.2db370y2g[Graal & Truffle (Article)]
|
||||||
* https://comserv.cs.ut.ee/home/files/Pool_ComputerScience_2016.pdf?study=ATILoputoo&reference=6319668E7151D556131810BC3F4A627D7FEF5F3B[Truffle Overview (see chapter 1)]
|
* https://comserv.cs.ut.ee/home/files/Pool_ComputerScience_2016.pdf?study=ATILoputoo&reference=6319668E7151D556131810BC3F4A627D7FEF5F3B[Truffle Overview (see chapter 1)]
|
||||||
* https://gist.github.com/smarr/d1f8f2101b5cc8e14e12[Truffle: Languages and Material]
|
* https://gist.github.com/smarr/d1f8f2101b5cc8e14e12[Truffle: Languages and Material]
|
||||||
* https://github.com/smarr/truffle-notes[Truffle Notes]
|
* https://github.com/smarr/truffle-notes[Truffle Notes]
|
||||||
* https://www.graalvm.org/latest/graalvm-as-a-platform/language-implementation-framework/[Truffle Language Implementation Framework]
|
* https://wiki.openjdk.java.net/display/Graal/Truffle+FAQ+and+Guidelines[Truffle FAQ]
|
||||||
|
|
||||||
=== Other Config Languages
|
=== Other Config Languages
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
Copyright © 2024-2026 Apple Inc. and the Pkl project authors
|
Copyright © 2024-2025 Apple Inc. and the Pkl project authors
|
||||||
|
|
||||||
|
|
||||||
Portions of this software were originally based on 'SnakeYAML' developed by Andrey Somov.
|
Portions of this software were originally based on 'SnakeYAML' developed by Andrey Somov.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,8 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklJavaLibrary")
|
pklJavaLibrary
|
||||||
id("me.champeau.jmh")
|
id("me.champeau.jmh")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
# 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.17.7=jmh,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.sf.jopt-simple:jopt-simple:5.0.4=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.apache.commons:commons-math3:3.6.1=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=jmhCompileClasspath,jmhImplementationDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=jmh,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,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.0=graal
|
||||||
|
org.graalvm.polyglot:polyglot:25.0.0=jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.sdk:collections:25.0.0=graal,jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=jmh,jmhRuntimeClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.sdk:word:25.0.0=graal,jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.truffle:truffle-compiler:25.0.0=graal
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,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.junit.jupiter:junit-jupiter-api:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=jmh,jmhRuntimeClasspath
|
||||||
|
org.openjdk.jmh:jmh-core:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.openjdk.jmh:jmh-generator-asm:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.openjdk.jmh:jmh-generator-bytecode:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.openjdk.jmh:jmh-generator-reflection:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=jmh,jmhRuntimeClasspath
|
||||||
|
org.ow2.asm:asm:9.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=jmh,jmhRuntimeClasspath
|
||||||
|
empty=annotationProcessor,apiDependenciesMetadata,compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,jmhAnnotationProcessor,jmhApiDependenciesMetadata,jmhCompileOnlyDependenciesMetadata,jmhIntransitiveDependenciesMetadata,jmhKotlinScriptDefExtensions,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,runtimeClasspath,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import com.diffplug.spotless.FormatterFunc
|
|
||||||
import com.diffplug.spotless.FormatterStep
|
|
||||||
import java.io.File
|
|
||||||
import java.io.Serial
|
|
||||||
import java.io.Serializable
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A Spotless [FormatterStep] that suppresses formatting changes where the only difference between
|
|
||||||
* the formatted output and the file's content in the upstream base ref is the license header year.
|
|
||||||
*
|
|
||||||
* Avoids an issue where, in the process of working on the codebase:
|
|
||||||
* 1. A file is modified.
|
|
||||||
* 2. Spotless formats the file, and also updates the copyright year.
|
|
||||||
* 3. The original modification is reverted.
|
|
||||||
* 4. Spotless formats the file again, but now the copyright year is the updated year.
|
|
||||||
*/
|
|
||||||
class RevertYearOnlyChangesStep(private val repoRoot: File, private val ratchetFrom: String) :
|
|
||||||
Serializable {
|
|
||||||
companion object {
|
|
||||||
@Serial private const val serialVersionUID: Long = 1L
|
|
||||||
}
|
|
||||||
|
|
||||||
fun create(): FormatterStep =
|
|
||||||
FormatterStep.createLazy(
|
|
||||||
"revertYearOnlyChanges",
|
|
||||||
{ this },
|
|
||||||
{ RevertYearOnlyChangesFunc(repoRoot, ratchetFrom) },
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
class RevertYearOnlyChangesFunc(private val repoRoot: File, private val ratchetFrom: String) :
|
|
||||||
FormatterFunc.NeedsFile, Serializable {
|
|
||||||
companion object {
|
|
||||||
@Serial private const val serialVersionUID: Long = 1L
|
|
||||||
|
|
||||||
// Matches "Copyright © 2024" or "Copyright © 2024-2025"
|
|
||||||
private val YEAR_REGEX = Regex("""(Copyright © )\d{4}(-\d{4})?""")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun applyWithFile(unix: String, file: File): String {
|
|
||||||
val relativePath = repoRoot.toPath().relativize(file.toPath()).toString()
|
|
||||||
val upstreamContent = gitShow(ratchetFrom, relativePath) ?: return unix
|
|
||||||
val normalizedRaw = YEAR_REGEX.replace(unix, "\$1YEAR")
|
|
||||||
val normalizedUpstream = YEAR_REGEX.replace(upstreamContent, "\$1YEAR")
|
|
||||||
return if (normalizedRaw == normalizedUpstream) {
|
|
||||||
// Only the year changed — return the upstream content
|
|
||||||
upstreamContent
|
|
||||||
} else {
|
|
||||||
unix
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun gitShow(ref: String, path: String): String? {
|
|
||||||
val process =
|
|
||||||
ProcessBuilder("git", "show", "$ref:$path")
|
|
||||||
.directory(repoRoot)
|
|
||||||
.redirectErrorStream(true)
|
|
||||||
.start()
|
|
||||||
val output = process.inputStream.readBytes().toString(Charsets.UTF_8)
|
|
||||||
return if (process.waitFor() == 0) output.replace("\r\n", "\n") else null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import net.ltgt.gradle.errorprone.errorprone
|
|
||||||
import net.ltgt.gradle.nullaway.nullaway
|
|
||||||
import org.gradle.accessors.dm.LibrariesForLibs
|
|
||||||
import org.gradle.api.tasks.compile.JavaCompile
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
`java-library`
|
|
||||||
id("net.ltgt.errorprone")
|
|
||||||
id("net.ltgt.nullaway")
|
|
||||||
}
|
|
||||||
|
|
||||||
val libs = the<LibrariesForLibs>()
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
api(libs.jspecify)
|
|
||||||
errorprone(libs.errorProne)
|
|
||||||
errorprone(libs.nullaway)
|
|
||||||
}
|
|
||||||
|
|
||||||
nullaway { onlyNullMarked = true }
|
|
||||||
|
|
||||||
tasks.withType<JavaCompile>().configureEach {
|
|
||||||
options.errorprone.disableAllChecks = true
|
|
||||||
options.errorprone.nullaway {
|
|
||||||
error()
|
|
||||||
onlyNullMarked = true
|
|
||||||
jspecifyMode = true
|
|
||||||
// honor assert x != null in addition to Objects.requireNonNull(x)
|
|
||||||
assertsEnabled = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,115 +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}",
|
|
||||||
"-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("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)
|
|
||||||
}
|
|
||||||
@@ -1,29 +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 org.gradle.accessors.dm.LibrariesForLibs
|
|
||||||
|
|
||||||
plugins { id("pklJavaLibrary") }
|
|
||||||
|
|
||||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
|
||||||
|
|
||||||
val libs = the<LibrariesForLibs>()
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
// Kotlin libraries typically expose stdlib types in their public APIs.
|
|
||||||
// Therefore, the stdlib must be available on the consumer's compile classpath,
|
|
||||||
// and "implementation" is not sufficient.
|
|
||||||
api(libs.kotlinStdLib)
|
|
||||||
}
|
|
||||||
@@ -1,122 +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.
|
|
||||||
*/
|
|
||||||
val assembleNativeMacOsAarch64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeMacOsAmd64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeLinuxAarch64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeLinuxAmd64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeAlpineLinuxAmd64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeWindowsAmd64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val testNativeMacOsAarch64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeMacOsAmd64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeLinuxAarch64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeLinuxAmd64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeAlpineLinuxAmd64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeWindowsAmd64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
|
||||||
|
|
||||||
private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
|
||||||
dependsOn(other)
|
|
||||||
outputs.files(other)
|
|
||||||
}
|
|
||||||
|
|
||||||
val assembleNative by tasks.registering {
|
|
||||||
group = "build"
|
|
||||||
|
|
||||||
if (!buildInfo.isCrossArchSupported && buildInfo.isCrossArch) {
|
|
||||||
throw GradleException("Cross-arch builds are not supported on ${buildInfo.os.name}")
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
buildInfo.os.isMacOsX && buildInfo.targetArch == "aarch64" -> {
|
|
||||||
wraps(assembleNativeMacOsAarch64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isMacOsX && buildInfo.targetArch == "amd64" -> {
|
|
||||||
wraps(assembleNativeMacOsAmd64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isLinux && buildInfo.targetArch == "aarch64" -> {
|
|
||||||
wraps(assembleNativeLinuxAarch64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isLinux && buildInfo.targetArch == "amd64" -> {
|
|
||||||
if (buildInfo.musl) wraps(assembleNativeAlpineLinuxAmd64) else wraps(assembleNativeLinuxAmd64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isWindows && buildInfo.targetArch == "amd64" -> {
|
|
||||||
wraps(assembleNativeWindowsAmd64)
|
|
||||||
}
|
|
||||||
else -> {
|
|
||||||
doLast {
|
|
||||||
throw GradleException(
|
|
||||||
"Cannot build targeting ${buildInfo.os.name}/${buildInfo.targetArch} with musl=${buildInfo.musl}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val testNative by tasks.registering {
|
|
||||||
group = "verification"
|
|
||||||
dependsOn(assembleNative)
|
|
||||||
|
|
||||||
if (!buildInfo.isCrossArchSupported && buildInfo.isCrossArch) {
|
|
||||||
throw GradleException("Cross-arch builds are not supported on ${buildInfo.os.name}")
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
buildInfo.os.isMacOsX && buildInfo.targetArch == "aarch64" -> {
|
|
||||||
dependsOn(testNativeMacOsAarch64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isMacOsX && buildInfo.targetArch == "amd64" -> {
|
|
||||||
dependsOn(testNativeMacOsAmd64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isLinux && buildInfo.targetArch == "aarch64" -> {
|
|
||||||
dependsOn(testNativeLinuxAarch64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isLinux && buildInfo.targetArch == "amd64" -> {
|
|
||||||
if (buildInfo.musl) dependsOn(testNativeAlpineLinuxAmd64) else dependsOn(testNativeLinuxAmd64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isWindows && buildInfo.targetArch == "amd64" -> {
|
|
||||||
dependsOn(testNativeWindowsAmd64)
|
|
||||||
}
|
|
||||||
else -> {
|
|
||||||
doLast {
|
|
||||||
throw GradleException(
|
|
||||||
"Cannot build targeting ${buildInfo.os.name}/${buildInfo.targetArch} with musl=${buildInfo.musl}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val checkNative by tasks.registering {
|
|
||||||
group = "verification"
|
|
||||||
dependsOn(testNative)
|
|
||||||
}
|
|
||||||
|
|
||||||
val buildNative by tasks.registering {
|
|
||||||
group = "build"
|
|
||||||
dependsOn(checkNative)
|
|
||||||
}
|
|
||||||
+2
-2
@@ -19,8 +19,8 @@ import org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
|
|||||||
import org.jetbrains.gradle.ext.ProjectSettings
|
import org.jetbrains.gradle.ext.ProjectSettings
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklGraalVm")
|
pklGraalVm
|
||||||
|
|
||||||
alias(libs.plugins.ideaExt)
|
alias(libs.plugins.ideaExt)
|
||||||
alias(libs.plugins.jmh) apply false
|
alias(libs.plugins.jmh) apply false
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -20,16 +20,11 @@ plugins {
|
|||||||
`jvm-toolchains`
|
`jvm-toolchains`
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// Keep this in sync with the constants in `BuildInfo.kt` (those are not addressable here).
|
||||||
* To avoid the provisioning of multiple JDKs and other build issues, keep this value in sync with
|
val toolchainVersion = 21
|
||||||
* the JVM toolchain versions in `BuildInfo.kt` and `gradle-daemon-jvm.properties`.
|
|
||||||
*/
|
|
||||||
val toolchainVersion = 25
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.downloadTaskPlugin)
|
implementation(libs.downloadTaskPlugin)
|
||||||
implementation(libs.errorPronePlugin)
|
|
||||||
implementation(libs.nullawayPlugin)
|
|
||||||
implementation(libs.spotlessPlugin)
|
implementation(libs.spotlessPlugin)
|
||||||
implementation(libs.kotlinPlugin) { exclude(module = "kotlin-android-extensions") }
|
implementation(libs.kotlinPlugin) { exclude(module = "kotlin-android-extensions") }
|
||||||
implementation(libs.shadowPlugin)
|
implementation(libs.shadowPlugin)
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
@file:Suppress("UnstableApiUsage")
|
@file:Suppress("UnstableApiUsage")
|
||||||
|
|
||||||
rootProject.name = "build-logic"
|
rootProject.name = "buildSrc"
|
||||||
|
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
repositories {
|
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
|
// makes ~/.gradle/init.gradle unnecessary and ~/.gradle/gradle.properties optional
|
||||||
dependencyResolutionManagement {
|
dependencyResolutionManagement {
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -31,7 +31,7 @@ import org.gradle.process.CommandLineArgumentProvider
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* JVM bytecode target; this is pinned at a reasonable version, because downstream JVM projects
|
* JVM bytecode target; this is pinned at a reasonable version, because downstream JVM projects
|
||||||
* which consume Pkl will need a minimum bytecode level at or above this one.
|
* which consume Pkl will need a minimum Bytecode level at or above this one.
|
||||||
*
|
*
|
||||||
* Kotlin and Java need matching bytecode targets, so this is expressed as a build setting and
|
* Kotlin and Java need matching bytecode targets, so this is expressed as a build setting and
|
||||||
* constant default. To override, pass `-DpklJdkToolchain=X` to the Gradle command line, where X is
|
* constant default. To override, pass `-DpklJdkToolchain=X` to the Gradle command line, where X is
|
||||||
@@ -40,13 +40,10 @@ import org.gradle.process.CommandLineArgumentProvider
|
|||||||
const val PKL_JVM_TARGET_DEFAULT_MAXIMUM = 17
|
const val PKL_JVM_TARGET_DEFAULT_MAXIMUM = 17
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Pkl build requires JDK 25+; otherwise, NullAway will not work correctly.
|
* The Pkl build requires JDK 21+ to build, because JDK 17 is no longer within the default set of
|
||||||
*
|
* supported JDKs for GraalVM. This is a build-time requirement, not a runtime requirement.
|
||||||
* This is a build-time requirement, not a runtime requirement. To avoid the provisioning of
|
|
||||||
* multiple JDKs and other build issues, keep this value in sync with the JVM toolchain versions in
|
|
||||||
* `build-logic/build.gradle.kts` and `gradle-daemon-jvm.properties`.
|
|
||||||
*/
|
*/
|
||||||
const val PKL_JDK_VERSION_MIN = 25
|
const val PKL_JDK_VERSION_MIN = 21
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The JDK minimum is set to match the bytecode minimum, to guarantee that fat JARs work against the
|
* The JDK minimum is set to match the bytecode minimum, to guarantee that fat JARs work against the
|
||||||
@@ -55,15 +52,14 @@ const val PKL_JDK_VERSION_MIN = 25
|
|||||||
const val PKL_TEST_JDK_MINIMUM = PKL_JVM_TARGET_DEFAULT_MAXIMUM
|
const val PKL_TEST_JDK_MINIMUM = PKL_JVM_TARGET_DEFAULT_MAXIMUM
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maximum JDK version which Pkl is tested with; this should be bumped when new JDK releases are
|
* Maximum JDK version which Pkl is tested with; this should be bumped when new JDK stable releases
|
||||||
* issued.
|
* are issued. At the time of this writing, JDK 23 is the latest available release.
|
||||||
*/
|
*/
|
||||||
const val PKL_TEST_JDK_MAXIMUM = 26
|
const val PKL_TEST_JDK_MAXIMUM = 23
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If `true`, all JDK releases between [PKL_TEST_JDK_MINIMUM] and [PKL_TEST_JDK_MAXIMUM] are tested.
|
* Test the full suite of JDKs between [PKL_TEST_JDK_MINIMUM] and [PKL_TEST_JDK_MAXIMUM]; if this is
|
||||||
* If `false`, only LTS releases within that range are tested. To override, pass
|
* set to `false` (or overridden on the command line), only LTS releases are tested by default.
|
||||||
* `-DpklTestAllJdks=true` on the Gradle command line.
|
|
||||||
*/
|
*/
|
||||||
const val PKL_TEST_ALL_JDKS = false
|
const val PKL_TEST_ALL_JDKS = false
|
||||||
|
|
||||||
@@ -201,8 +197,8 @@ open class BuildInfo(private val project: Project) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val testJdkVendors: Sequence<JvmVendorSpec> by lazy {
|
val testJdkVendors: Sequence<JvmVendorSpec> by lazy {
|
||||||
// By default, only Adoptium is tested during multi-JDK testing. Flip `-DpklTestAllVendors=true`
|
// By default, only OpenJDK is tested during multi-JDK testing. Flip `-DpklTestAllVendors=true`
|
||||||
// to additionally test against GraalVM and Oracle.
|
// to additionally test against a suite of JDK vendors, including Azul, Oracle, and GraalVM.
|
||||||
when (System.getProperty("pklTestAllVendors")?.toBoolean()) {
|
when (System.getProperty("pklTestAllVendors")?.toBoolean()) {
|
||||||
true -> sequenceOf(JvmVendorSpec.ADOPTIUM, JvmVendorSpec.GRAAL_VM, JvmVendorSpec.ORACLE)
|
true -> sequenceOf(JvmVendorSpec.ADOPTIUM, JvmVendorSpec.GRAAL_VM, JvmVendorSpec.ORACLE)
|
||||||
else -> sequenceOf(JvmVendorSpec.ADOPTIUM)
|
else -> sequenceOf(JvmVendorSpec.ADOPTIUM)
|
||||||
@@ -282,9 +278,8 @@ open class BuildInfo(private val project: Project) {
|
|||||||
val namer = testNamer(baseNameProvider)
|
val namer = testNamer(baseNameProvider)
|
||||||
val applyConfig: MultiJdkTestConfigurator = { (version, jdk) ->
|
val applyConfig: MultiJdkTestConfigurator = { (version, jdk) ->
|
||||||
// 1) copy configurations from the template task
|
// 1) copy configurations from the template task
|
||||||
|
dependsOn(templateTask)
|
||||||
templateTask.get().let { template ->
|
templateTask.get().let { template ->
|
||||||
// copy explicit dependencies not inferred from task inputs
|
|
||||||
dependsOn(template.dependsOn)
|
|
||||||
classpath = template.classpath
|
classpath = template.classpath
|
||||||
testClassesDirs = template.testClassesDirs
|
testClassesDirs = template.testClassesDirs
|
||||||
jvmArgs.addAll(template.jvmArgs)
|
jvmArgs.addAll(template.jvmArgs)
|
||||||
@@ -310,8 +305,8 @@ open class BuildInfo(private val project: Project) {
|
|||||||
// multiply out by jdk vendor
|
// multiply out by jdk vendor
|
||||||
testJdkVendors.map { vendor -> (targetVersion to vendor) }
|
testJdkVendors.map { vendor -> (targetVersion to vendor) }
|
||||||
}
|
}
|
||||||
.mapNotNull { (jdkTarget, vendor) ->
|
.map { (jdkTarget, vendor) ->
|
||||||
if (jdkToolchainVersion == jdkTarget) {
|
if (jdkToolchainVersion == jdkTarget)
|
||||||
tasks.register(namer(jdkTarget, vendor)) {
|
tasks.register(namer(jdkTarget, vendor)) {
|
||||||
// alias to `test`
|
// alias to `test`
|
||||||
dependsOn(templateTask)
|
dependsOn(templateTask)
|
||||||
@@ -319,24 +314,20 @@ open class BuildInfo(private val project: Project) {
|
|||||||
description =
|
description =
|
||||||
"Alias for regular '${baseNameProvider()}' task, on JDK ${jdkTarget.asInt()}"
|
"Alias for regular '${baseNameProvider()}' task, on JDK ${jdkTarget.asInt()}"
|
||||||
}
|
}
|
||||||
} else {
|
else
|
||||||
// Always register and enable the task so it can be run explicitly,
|
tasks.register(namer(jdkTarget, vendor.takeIf { isMultiVendor }), Test::class) {
|
||||||
// but only return it if it should be included in "check".
|
enabled = jdkTarget.isEnabled
|
||||||
val task =
|
group = Category.VERIFICATION
|
||||||
tasks.register(namer(jdkTarget, vendor.takeIf { isMultiVendor }), Test::class) {
|
description = "Run tests against JDK ${jdkTarget.asInt()}"
|
||||||
group = Category.VERIFICATION
|
applyConfig(jdkTarget to toolchains.launcherFor { languageVersion = jdkTarget })
|
||||||
description = "Run tests against JDK ${jdkTarget.asInt()}"
|
// fix: on jdk17, we must force the polyglot module on to the modulepath
|
||||||
applyConfig(jdkTarget to toolchains.launcherFor { languageVersion = jdkTarget })
|
if (jdkTarget.asInt() == 17)
|
||||||
// fix: on jdk17, we must force the polyglot module on to the modulepath
|
jvmArgumentProviders.add(
|
||||||
if (jdkTarget.asInt() == 17)
|
CommandLineArgumentProvider {
|
||||||
jvmArgumentProviders.add(
|
buildList { listOf("--add-modules=org.graalvm.polyglot") }
|
||||||
CommandLineArgumentProvider {
|
}
|
||||||
buildList { listOf("--add-modules=org.graalvm.polyglot") }
|
)
|
||||||
}
|
}
|
||||||
)
|
|
||||||
}
|
|
||||||
task.takeIf { jdkTarget.isEnabled }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.toList()
|
.toList()
|
||||||
}
|
}
|
||||||
@@ -377,7 +368,7 @@ open class BuildInfo(private val project: Project) {
|
|||||||
// allow -DcommitId=abc123 for build environments that don't have git.
|
// allow -DcommitId=abc123 for build environments that don't have git.
|
||||||
System.getProperty("commitId").let { if (it != null) return@lazy it }
|
System.getProperty("commitId").let { if (it != null) return@lazy it }
|
||||||
// only run command once per build invocation
|
// only run command once per build invocation
|
||||||
if (project.path == project.rootProject.path) {
|
if (project === project.rootProject) {
|
||||||
val process =
|
val process =
|
||||||
ProcessBuilder()
|
ProcessBuilder()
|
||||||
.command("git", "rev-parse", "--short", "HEAD")
|
.command("git", "rev-parse", "--short", "HEAD")
|
||||||
+1
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -36,7 +36,6 @@ abstract class ExecutableJar : DefaultTask() {
|
|||||||
@get:Input abstract val jvmArgs: ListProperty<String>
|
@get:Input abstract val jvmArgs: ListProperty<String>
|
||||||
|
|
||||||
@TaskAction
|
@TaskAction
|
||||||
@Suppress("unused")
|
|
||||||
fun buildJar() {
|
fun buildJar() {
|
||||||
val inFile = inJar.get().asFile
|
val inFile = inJar.get().asFile
|
||||||
val outFile = outJar.get().asFile
|
val outFile = outJar.get().asFile
|
||||||
+1
-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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+1
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -27,7 +27,6 @@ private val ltsReleases =
|
|||||||
JavaLanguageVersion.of(11),
|
JavaLanguageVersion.of(11),
|
||||||
JavaLanguageVersion.of(17),
|
JavaLanguageVersion.of(17),
|
||||||
JavaLanguageVersion.of(21),
|
JavaLanguageVersion.of(21),
|
||||||
JavaLanguageVersion.of(25),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
/** Describes an inclusive range of JVM versions, based on the [JavaLanguageVersion] type. */
|
/** Describes an inclusive range of JVM versions, based on the [JavaLanguageVersion] type. */
|
||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -57,7 +57,7 @@ open class MergeSourcesJars : DefaultTask() {
|
|||||||
// a word or a period character. should catch most cases.
|
// a word or a period character. should catch most cases.
|
||||||
val importPattern =
|
val importPattern =
|
||||||
Pattern.compile(
|
Pattern.compile(
|
||||||
"(?<!([\\w.]))(" + relocatedPkgs.keys.joinToString("|") { it.replace(".", "\\.") } + ")"
|
"(?<!(\\w|\\.))(" + relocatedPkgs.keys.joinToString("|") { it.replace(".", "\\.") } + ")"
|
||||||
)
|
)
|
||||||
|
|
||||||
val sourceFileExts = sourceFileExtensions.get()
|
val sourceFileExts = sourceFileExtensions.get()
|
||||||
+11
-12
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -55,12 +55,13 @@ abstract class NativeImageBuild : DefaultTask() {
|
|||||||
|
|
||||||
@get:Inject protected abstract val execOperations: ExecOperations
|
@get:Inject protected abstract val execOperations: ExecOperations
|
||||||
|
|
||||||
private val graalVm: Provider<BuildInfo.GraalVm> = arch.map { a ->
|
private val graalVm: Provider<BuildInfo.GraalVm> =
|
||||||
when (a) {
|
arch.map { a ->
|
||||||
Architecture.AMD64 -> buildInfo.graalVmAmd64
|
when (a) {
|
||||||
Architecture.AARCH64 -> buildInfo.graalVmAarch64
|
Architecture.AMD64 -> buildInfo.graalVmAmd64
|
||||||
|
Architecture.AARCH64 -> buildInfo.graalVmAarch64
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private val buildInfo: BuildInfo = project.extensions.getByType(BuildInfo::class.java)
|
private val buildInfo: BuildInfo = project.extensions.getByType(BuildInfo::class.java)
|
||||||
|
|
||||||
@@ -101,7 +102,6 @@ abstract class NativeImageBuild : DefaultTask() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@TaskAction
|
@TaskAction
|
||||||
@Suppress("unused")
|
|
||||||
protected fun run() {
|
protected fun run() {
|
||||||
execOperations.exec {
|
execOperations.exec {
|
||||||
val exclusions =
|
val exclusions =
|
||||||
@@ -118,8 +118,6 @@ abstract class NativeImageBuild : DefaultTask() {
|
|||||||
add("--initialize-at-build-time=")
|
add("--initialize-at-build-time=")
|
||||||
// needed for messagepack-java (see https://github.com/msgpack/msgpack-java/issues/600)
|
// needed for messagepack-java (see https://github.com/msgpack/msgpack-java/issues/600)
|
||||||
add("--initialize-at-run-time=org.msgpack.core.buffer.DirectBufferAccess")
|
add("--initialize-at-run-time=org.msgpack.core.buffer.DirectBufferAccess")
|
||||||
// needed for jline-terminal-jni
|
|
||||||
add("--initialize-at-run-time=org.jline.nativ,org.jline.terminal.impl.jni")
|
|
||||||
add("--no-fallback")
|
add("--no-fallback")
|
||||||
add("-H:IncludeResources=org/pkl/core/stdlib/.*\\.pkl")
|
add("-H:IncludeResources=org/pkl/core/stdlib/.*\\.pkl")
|
||||||
add("-H:IncludeResources=org/jline/utils/.*")
|
add("-H:IncludeResources=org/jline/utils/.*")
|
||||||
@@ -150,9 +148,10 @@ abstract class NativeImageBuild : DefaultTask() {
|
|||||||
}
|
}
|
||||||
// native-image rejects non-existing class path entries -> filter
|
// native-image rejects non-existing class path entries -> filter
|
||||||
add("--class-path")
|
add("--class-path")
|
||||||
val pathInput = classpath.filter {
|
val pathInput =
|
||||||
it.exists() && !exclusions.any { exclude -> it.name.contains(exclude) }
|
classpath.filter {
|
||||||
}
|
it.exists() && !exclusions.any { exclude -> it.name.contains(exclude) }
|
||||||
|
}
|
||||||
add(pathInput.asPath)
|
add(pathInput.asPath)
|
||||||
// make sure dev machine stays responsive (15% slowdown on my laptop)
|
// make sure dev machine stays responsive (15% slowdown on my laptop)
|
||||||
val processors =
|
val processors =
|
||||||
+1
-2
@@ -42,8 +42,7 @@ class PklFormatterFunc(@Transient private val configuration: Configuration) :
|
|||||||
|
|
||||||
private val classLoader by lazy {
|
private val classLoader by lazy {
|
||||||
val urls = configuration.files.map { it.toURI().toURL() }
|
val urls = configuration.files.map { it.toURI().toURL() }
|
||||||
// Use the platform classloader as parent to isolate from Gradle's classloader
|
URLClassLoader(urls.toTypedArray())
|
||||||
URLClassLoader(urls.toTypedArray(), ClassLoader.getPlatformClassLoader())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val formatterClass by lazy { classLoader.loadClass("org.pkl.formatter.Formatter") }
|
private val formatterClass by lazy { classLoader.loadClass("org.pkl.formatter.Formatter") }
|
||||||
+37
-36
@@ -63,58 +63,59 @@ fun Project.configurePklPomMetadata() {
|
|||||||
|
|
||||||
/** Configures POM validation task to check for unresolved versions and snapshots in releases. */
|
/** Configures POM validation task to check for unresolved versions and snapshots in releases. */
|
||||||
fun Project.configurePomValidation() {
|
fun Project.configurePomValidation() {
|
||||||
val validatePom by tasks.registering {
|
val validatePom by
|
||||||
if (tasks.findByName("generatePomFileForLibraryPublication") == null) {
|
tasks.registering {
|
||||||
return@registering
|
if (tasks.findByName("generatePomFileForLibraryPublication") == null) {
|
||||||
}
|
return@registering
|
||||||
val generatePomFileForLibraryPublication by tasks.existing(GenerateMavenPom::class)
|
}
|
||||||
val outputFile =
|
val generatePomFileForLibraryPublication by tasks.existing(GenerateMavenPom::class)
|
||||||
layout.buildDirectory.file("validatePom") // dummy output to satisfy up-to-date check
|
val outputFile =
|
||||||
|
layout.buildDirectory.file("validatePom") // dummy output to satisfy up-to-date check
|
||||||
|
|
||||||
dependsOn(generatePomFileForLibraryPublication)
|
dependsOn(generatePomFileForLibraryPublication)
|
||||||
inputs.file(generatePomFileForLibraryPublication.get().destination)
|
inputs.file(generatePomFileForLibraryPublication.get().destination)
|
||||||
outputs.file(outputFile)
|
outputs.file(outputFile)
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
outputFile.get().asFile.delete()
|
outputFile.get().asFile.delete()
|
||||||
|
|
||||||
val pomFile = generatePomFileForLibraryPublication.get().destination
|
val pomFile = generatePomFileForLibraryPublication.get().destination
|
||||||
assert(pomFile.exists())
|
assert(pomFile.exists())
|
||||||
|
|
||||||
val text = pomFile.readText()
|
val text = pomFile.readText()
|
||||||
|
|
||||||
run {
|
run {
|
||||||
val unresolvedVersion = Regex("<version>.*[+,()\\[\\]].*</version>")
|
val unresolvedVersion = Regex("<version>.*[+,()\\[\\]].*</version>")
|
||||||
val matches = unresolvedVersion.findAll(text).toList()
|
val matches = unresolvedVersion.findAll(text).toList()
|
||||||
if (matches.isNotEmpty()) {
|
if (matches.isNotEmpty()) {
|
||||||
throw org.gradle.api.GradleException(
|
throw org.gradle.api.GradleException(
|
||||||
"""
|
"""
|
||||||
Found unresolved version selector(s) in generated POM:
|
Found unresolved version selector(s) in generated POM:
|
||||||
${matches.joinToString("\n") { it.groupValues[0] }}
|
${matches.joinToString("\n") { it.groupValues[0] }}
|
||||||
"""
|
"""
|
||||||
.trimIndent()
|
.trimIndent()
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||||
if (buildInfo.isReleaseBuild) {
|
if (buildInfo.isReleaseBuild) {
|
||||||
val snapshotVersion = Regex("<version>.*-SNAPSHOT</version>")
|
val snapshotVersion = Regex("<version>.*-SNAPSHOT</version>")
|
||||||
val matches = snapshotVersion.findAll(text).toList()
|
val matches = snapshotVersion.findAll(text).toList()
|
||||||
if (matches.isNotEmpty()) {
|
if (matches.isNotEmpty()) {
|
||||||
throw org.gradle.api.GradleException(
|
throw org.gradle.api.GradleException(
|
||||||
"""
|
"""
|
||||||
Found snapshot version(s) in generated POM of Pkl release version:
|
Found snapshot version(s) in generated POM of Pkl release version:
|
||||||
${matches.joinToString("\n") { it.groupValues[0] }}
|
${matches.joinToString("\n") { it.groupValues[0] }}
|
||||||
"""
|
"""
|
||||||
.trimIndent()
|
.trimIndent()
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
outputFile.get().asFile.writeText("OK")
|
outputFile.get().asFile.writeText("OK")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
tasks.named("publish") { dependsOn(validatePom) }
|
tasks.named("publish") { dependsOn(validatePom) }
|
||||||
}
|
}
|
||||||
+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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+39
-20
@@ -15,19 +15,19 @@
|
|||||||
*/
|
*/
|
||||||
import com.diffplug.gradle.spotless.KotlinGradleExtension
|
import com.diffplug.gradle.spotless.KotlinGradleExtension
|
||||||
import org.gradle.accessors.dm.LibrariesForLibs
|
import org.gradle.accessors.dm.LibrariesForLibs
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||||
|
|
||||||
plugins { id("com.diffplug.spotless") }
|
plugins { id("com.diffplug.spotless") }
|
||||||
|
|
||||||
val buildInfo = extensions.create<BuildInfo>("buildInfo", project)
|
val buildInfo = extensions.create<BuildInfo>("buildInfo", project)
|
||||||
|
|
||||||
|
dependencyLocking { lockAllConfigurations() }
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
val rejectedVersionSuffix = Regex("-alpha|-beta|-eap|-m|-rc|-snapshot", RegexOption.IGNORE_CASE)
|
val rejectedVersionSuffix = Regex("-alpha|-beta|-eap|-m|-rc|-snapshot", RegexOption.IGNORE_CASE)
|
||||||
configureEach {
|
configureEach {
|
||||||
resolutionStrategy {
|
resolutionStrategy {
|
||||||
// forbid dependencies whose pom.xml's include version ranges, because this will lead to
|
|
||||||
// unreproducible builds.
|
|
||||||
|
|
||||||
failOnDynamicVersions()
|
|
||||||
componentSelection {
|
componentSelection {
|
||||||
all {
|
all {
|
||||||
if (rejectedVersionSuffix.containsMatchIn(candidate.version)) {
|
if (rejectedVersionSuffix.containsMatchIn(candidate.version)) {
|
||||||
@@ -42,9 +42,25 @@ configurations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType<JavaCompile>().configureEach {
|
configurations.all {
|
||||||
javaCompiler = buildInfo.javaCompiler
|
resolutionStrategy.eachDependency {
|
||||||
options.release = buildInfo.jvmTarget
|
if (requested.group == "org.jetbrains.kotlin") {
|
||||||
|
// prevent transitive deps from bumping Koltin version
|
||||||
|
useVersion(libs.versions.kotlin.get())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins.withType(JavaPlugin::class).configureEach {
|
||||||
|
tasks.withType<JavaCompile>().configureEach { options.release = 17 }
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType<KotlinJvmCompile>().configureEach {
|
||||||
|
compilerOptions {
|
||||||
|
jvmTarget = JvmTarget.JVM_17
|
||||||
|
freeCompilerArgs.addAll("-Xjsr305=strict", "-Xjvm-default=all")
|
||||||
|
freeCompilerArgs.add("-Xjdk-release=17")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins.withType(IdeaPlugin::class).configureEach {
|
plugins.withType(IdeaPlugin::class).configureEach {
|
||||||
@@ -79,6 +95,13 @@ plugins.withType(MavenPublishPlugin::class).configureEach {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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)
|
val allDependencies by tasks.registering(DependencyReportTask::class)
|
||||||
|
|
||||||
tasks.withType(Test::class).configureEach {
|
tasks.withType(Test::class).configureEach {
|
||||||
@@ -87,6 +110,7 @@ tasks.withType(Test::class).configureEach {
|
|||||||
}
|
}
|
||||||
debugOptions {
|
debugOptions {
|
||||||
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
|
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
|
||||||
|
@Suppress("UnstableApiUsage")
|
||||||
host = "*"
|
host = "*"
|
||||||
port = 5005
|
port = 5005
|
||||||
suspend = true
|
suspend = true
|
||||||
@@ -97,6 +121,7 @@ tasks.withType(Test::class).configureEach {
|
|||||||
tasks.withType(JavaExec::class).configureEach {
|
tasks.withType(JavaExec::class).configureEach {
|
||||||
debugOptions {
|
debugOptions {
|
||||||
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
|
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
|
||||||
|
@Suppress("UnstableApiUsage")
|
||||||
host = "*"
|
host = "*"
|
||||||
port = 5005
|
port = 5005
|
||||||
suspend = true
|
suspend = true
|
||||||
@@ -108,7 +133,7 @@ tasks.withType(JavaExec::class).configureEach {
|
|||||||
private val libs = the<LibrariesForLibs>()
|
private val libs = the<LibrariesForLibs>()
|
||||||
|
|
||||||
private val licenseHeaderFile by lazy {
|
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() {
|
private fun KotlinGradleExtension.configureFormatter() {
|
||||||
@@ -129,28 +154,22 @@ val ratchetBranchName =
|
|||||||
spotless {
|
spotless {
|
||||||
ratchetFrom = "$originalRemoteName/$ratchetBranchName"
|
ratchetFrom = "$originalRemoteName/$ratchetBranchName"
|
||||||
|
|
||||||
val revertYearOnlyChangesStep =
|
// When building root project, format buildSrc files too.
|
||||||
RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
|
// We need this because buildSrc is not a subproject of the root project, so a top-level
|
||||||
|
// `spotlessApply` will not trigger `buildSrc:spotlessApply`.
|
||||||
// When building root project, format build-logic files too.
|
if (project === rootProject) {
|
||||||
// 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) {
|
|
||||||
kotlinGradle {
|
kotlinGradle {
|
||||||
configureFormatter()
|
configureFormatter()
|
||||||
addStep(revertYearOnlyChangesStep)
|
target("*.kts", "buildSrc/*.kts", "buildSrc/src/*/kotlin/**/*.kts")
|
||||||
target("*.kts", "build-logic/*.kts", "build-logic/src/*/kotlin/**/*.kts")
|
|
||||||
}
|
}
|
||||||
kotlin {
|
kotlin {
|
||||||
ktfmt(libs.versions.ktfmt.get()).googleStyle()
|
ktfmt(libs.versions.ktfmt.get()).googleStyle()
|
||||||
target("build-logic/src/*/kotlin/**/*.kt")
|
target("buildSrc/src/*/kotlin/**/*.kt")
|
||||||
licenseHeaderFile(licenseHeaderFile)
|
licenseHeaderFile(licenseHeaderFile)
|
||||||
addStep(revertYearOnlyChangesStep)
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
kotlinGradle {
|
kotlinGradle {
|
||||||
configureFormatter()
|
configureFormatter()
|
||||||
addStep(revertYearOnlyChangesStep)
|
|
||||||
target("*.kts")
|
target("*.kts")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+29
-28
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -84,7 +84,7 @@ for ((key, value) in relocations) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val nonRelocations = listOf("com/oracle/truffle/", "org/graalvm/", "org/jspecify")
|
val nonRelocations = listOf("com/oracle/truffle/", "org/graalvm/")
|
||||||
|
|
||||||
tasks.shadowJar {
|
tasks.shadowJar {
|
||||||
inputs.property("relocations", relocations)
|
inputs.property("relocations", relocations)
|
||||||
@@ -148,36 +148,37 @@ val testFatJar by
|
|||||||
|
|
||||||
tasks.check { dependsOn(testFatJar) }
|
tasks.check { dependsOn(testFatJar) }
|
||||||
|
|
||||||
val validateFatJar by tasks.registering {
|
val validateFatJar by
|
||||||
val outputFile = layout.buildDirectory.file("validateFatJar/result.txt")
|
tasks.registering {
|
||||||
inputs.files(tasks.shadowJar)
|
val outputFile = layout.buildDirectory.file("validateFatJar/result.txt")
|
||||||
inputs.property("nonRelocations", nonRelocations)
|
inputs.files(tasks.shadowJar)
|
||||||
outputs.file(outputFile)
|
inputs.property("nonRelocations", nonRelocations)
|
||||||
|
outputs.file(outputFile)
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
val unshadowedFiles = mutableListOf<String>()
|
val unshadowedFiles = mutableListOf<String>()
|
||||||
zipTree(tasks.shadowJar.get().outputs.files.singleFile).visit {
|
zipTree(tasks.shadowJar.get().outputs.files.singleFile).visit {
|
||||||
val fileDetails = this
|
val fileDetails = this
|
||||||
val path = fileDetails.relativePath.pathString
|
val path = fileDetails.relativePath.pathString
|
||||||
if (
|
if (
|
||||||
!(fileDetails.isDirectory ||
|
!(fileDetails.isDirectory ||
|
||||||
path.startsWith("org/pkl/") ||
|
path.startsWith("org/pkl/") ||
|
||||||
path.startsWith("META-INF/") ||
|
path.startsWith("META-INF/") ||
|
||||||
nonRelocations.any { path.startsWith(it) })
|
nonRelocations.any { path.startsWith(it) })
|
||||||
) {
|
) {
|
||||||
// don't throw exception inside `visit`
|
// don't throw exception inside `visit`
|
||||||
// as this gives a misleading "Could not expand ZIP" error message
|
// as this gives a misleading "Could not expand ZIP" error message
|
||||||
unshadowedFiles.add(path)
|
unshadowedFiles.add(path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (unshadowedFiles.isEmpty()) {
|
||||||
|
outputFile.get().asFile.writeText("SUCCESS")
|
||||||
|
} else {
|
||||||
|
outputFile.get().asFile.writeText("FAILURE")
|
||||||
|
throw GradleException("Found unshadowed files:\n" + unshadowedFiles.joinToString("\n"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (unshadowedFiles.isEmpty()) {
|
|
||||||
outputFile.get().asFile.writeText("SUCCESS")
|
|
||||||
} else {
|
|
||||||
outputFile.get().asFile.writeText("FAILURE")
|
|
||||||
throw GradleException("Found unshadowed files:\n" + unshadowedFiles.joinToString("\n"))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
tasks.check { dependsOn(validateFatJar) }
|
tasks.check { dependsOn(validateFatJar) }
|
||||||
|
|
||||||
+1
-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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+1
-3
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -21,8 +21,6 @@ tasks.addRule("Pattern: compatibilityTest[All|Releases|Latest|Candidate|Nightly|
|
|||||||
val taskName = this
|
val taskName = this
|
||||||
val matchResult = Regex("compatibilityTest(.+)").matchEntire(taskName) ?: return@addRule
|
val matchResult = Regex("compatibilityTest(.+)").matchEntire(taskName) ?: return@addRule
|
||||||
|
|
||||||
// https://github.com/gradle/gradle/issues/32599
|
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
when (val taskNameSuffix = matchResult.groupValues[1]) {
|
when (val taskNameSuffix = matchResult.groupValues[1]) {
|
||||||
"All" ->
|
"All" ->
|
||||||
task("compatibilityTestAll") {
|
task("compatibilityTestAll") {
|
||||||
+7
-9
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -23,27 +23,25 @@ val validatorConfiguration: Configuration =
|
|||||||
configurations.create("validator") {
|
configurations.create("validator") {
|
||||||
resolutionStrategy.eachDependency {
|
resolutionStrategy.eachDependency {
|
||||||
if (requested.group == "log4j" && requested.name == "log4j") {
|
if (requested.group == "log4j" && requested.name == "log4j") {
|
||||||
useTarget(buildInfo.libs.findLibrary("log4j12Api").get())
|
@Suppress("UnstableApiUsage") useTarget(buildInfo.libs.findLibrary("log4j12Api").get())
|
||||||
because("mitigate critical security vulnerabilities")
|
because("mitigate critical security vulnerabilities")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@Suppress("UnstableApiUsage")
|
||||||
validatorConfiguration(buildInfo.libs.findLibrary("nuValidator").get()) {
|
validatorConfiguration(buildInfo.libs.findLibrary("nuValidator").get()) {
|
||||||
// remove unnecessary dependencies
|
// we only want jetty-util and jetty-util-ajax (with the right version)
|
||||||
// (some of the requested versions don't even exist on Maven Central)
|
// couldn't find a more robust way to express this
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-alpn-client")
|
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-continuation")
|
exclude(group = "org.eclipse.jetty", module = "jetty-continuation")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-http")
|
exclude(group = "org.eclipse.jetty", module = "jetty-http")
|
||||||
|
exclude(group = "org.eclipse.jetty", module = "jetty-io")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-security")
|
exclude(group = "org.eclipse.jetty", module = "jetty-security")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-server")
|
exclude(group = "org.eclipse.jetty", module = "jetty-server")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-servlets")
|
exclude(group = "org.eclipse.jetty", module = "jetty-servlets")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-jakarta-servlet-api")
|
|
||||||
exclude(group = "org.eclipse.jetty.toolchain")
|
|
||||||
exclude(group = "javax.servlet")
|
exclude(group = "javax.servlet")
|
||||||
exclude(group = "org.apache.commons", module = "commons-fileupload2-core")
|
exclude(group = "commons-fileupload")
|
||||||
exclude(group = "org.apache.commons", module = "commons-fileupload2-jakarta-servlet5")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+15
-14
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -47,19 +47,20 @@ fun Task.setupTestStartJavaExecutable(launcher: Provider<JavaLauncher>? = null)
|
|||||||
val outputFile = layout.buildDirectory.file("testStartJavaExecutable/$name")
|
val outputFile = layout.buildDirectory.file("testStartJavaExecutable/$name")
|
||||||
outputs.file(outputFile)
|
outputs.file(outputFile)
|
||||||
|
|
||||||
val execOutput = providers.exec {
|
val execOutput =
|
||||||
val executablePath = javaExecutable.get().outputs.files.singleFile
|
providers.exec {
|
||||||
if (launcher?.isPresent == true) {
|
val executablePath = javaExecutable.get().outputs.files.singleFile
|
||||||
commandLine(
|
if (launcher?.isPresent == true) {
|
||||||
launcher.get().executablePath.asFile.absolutePath,
|
commandLine(
|
||||||
"-jar",
|
launcher.get().executablePath.asFile.absolutePath,
|
||||||
executablePath.absolutePath,
|
"-jar",
|
||||||
"--version",
|
executablePath.absolutePath,
|
||||||
)
|
"--version",
|
||||||
} else {
|
)
|
||||||
commandLine(executablePath.absolutePath, "--version")
|
} else {
|
||||||
|
commandLine(executablePath.absolutePath, "--version")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
val outputText = execOutput.standardOutput.asText.get()
|
val outputText = execOutput.standardOutput.asText.get()
|
||||||
@@ -71,7 +72,7 @@ fun Task.setupTestStartJavaExecutable(launcher: Provider<JavaLauncher>? = null)
|
|||||||
outputFile.get().asFile.toPath().apply {
|
outputFile.get().asFile.toPath().apply {
|
||||||
try {
|
try {
|
||||||
parent.createDirectories()
|
parent.createDirectories()
|
||||||
} catch (_: java.nio.file.FileAlreadyExistsException) {}
|
} catch (ignored: java.nio.file.FileAlreadyExistsException) {}
|
||||||
writeText("OK")
|
writeText("OK")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+23
-7
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -50,18 +50,20 @@ artifacts {
|
|||||||
}
|
}
|
||||||
|
|
||||||
spotless {
|
spotless {
|
||||||
val revertYearOnlyChanges = RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
|
|
||||||
|
|
||||||
java {
|
java {
|
||||||
addStep(revertYearOnlyChanges)
|
|
||||||
googleJavaFormat(libs.versions.googleJavaFormat.get())
|
googleJavaFormat(libs.versions.googleJavaFormat.get())
|
||||||
target("src/*/java/**/*.java")
|
target("src/*/java/**/*.java")
|
||||||
licenseHeaderFile(
|
licenseHeaderFile(rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt"))
|
||||||
rootProject.file("build-logic/src/main/resources/license-header.star-block.txt")
|
}
|
||||||
)
|
kotlin {
|
||||||
|
ktfmt(libs.versions.ktfmt.get()).googleStyle()
|
||||||
|
target("src/*/kotlin/**/*.kt")
|
||||||
|
licenseHeaderFile(rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.compileKotlin { enabled = false }
|
||||||
|
|
||||||
tasks.jar {
|
tasks.jar {
|
||||||
manifest {
|
manifest {
|
||||||
attributes +=
|
attributes +=
|
||||||
@@ -79,6 +81,19 @@ tasks.javadoc {
|
|||||||
(options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet")
|
(options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val workAroundKotlinGradlePluginBug by
|
||||||
|
tasks.registering {
|
||||||
|
doLast {
|
||||||
|
// Works around this problem, which sporadically appears and disappears in different
|
||||||
|
// subprojects:
|
||||||
|
// A problem was found with the configuration of task ':pkl-executor:compileJava' (type
|
||||||
|
// 'JavaCompile').
|
||||||
|
// > Directory '[...]/pkl/pkl-executor/build/classes/kotlin/main'
|
||||||
|
// specified for property 'compileKotlinOutputClasses' does not exist.
|
||||||
|
layout.buildDirectory.dir("classes/kotlin/main").get().asFile.mkdirs()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val truffleJavacArgs =
|
val truffleJavacArgs =
|
||||||
listOf(
|
listOf(
|
||||||
// TODO: determine correct limits for Truffle specializations
|
// TODO: determine correct limits for Truffle specializations
|
||||||
@@ -88,6 +103,7 @@ val truffleJavacArgs =
|
|||||||
|
|
||||||
tasks.compileJava {
|
tasks.compileJava {
|
||||||
javaCompiler = info.javaCompiler
|
javaCompiler = info.javaCompiler
|
||||||
|
dependsOn(workAroundKotlinGradlePluginBug)
|
||||||
options.compilerArgs.addAll(truffleJavacArgs + info.jpmsAddModulesFlags)
|
options.compilerArgs.addAll(truffleJavacArgs + info.jpmsAddModulesFlags)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* 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 org.gradle.accessors.dm.LibrariesForLibs
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("pklJavaLibrary")
|
||||||
|
kotlin("jvm")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build configuration.
|
||||||
|
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||||
|
|
||||||
|
// Version Catalog library symbols.
|
||||||
|
val libs = the<LibrariesForLibs>()
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
// At least some of our kotlin APIs contain Kotlin stdlib types
|
||||||
|
// that aren't compiled away by kotlinc (e.g., `kotlin.Function`).
|
||||||
|
// So let's be conservative and default to `api` for now.
|
||||||
|
// For Kotlin APIs that only target Kotlin users (e.g., pkl-config-kotlin),
|
||||||
|
// it won't make a difference.
|
||||||
|
api(buildInfo.libs.findLibrary("kotlinStdLib").get())
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.compileKotlin {
|
||||||
|
enabled = true // disabled by pklJavaLibrary
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType<KotlinJvmCompile>().configureEach {
|
||||||
|
compilerOptions {
|
||||||
|
languageVersion = KotlinVersion.KOTLIN_2_1
|
||||||
|
jvmTarget = JvmTarget.fromTarget(buildInfo.jvmTarget.toString())
|
||||||
|
freeCompilerArgs.addAll("-Xjdk-release=${buildInfo.jvmTarget}")
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-5
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -19,7 +19,7 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
|||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`jvm-test-suite`
|
`jvm-test-suite`
|
||||||
id("pklKotlinBase")
|
kotlin("jvm")
|
||||||
}
|
}
|
||||||
|
|
||||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||||
@@ -27,11 +27,10 @@ val buildInfo = project.extensions.getByType<BuildInfo>()
|
|||||||
val libs = the<LibrariesForLibs>()
|
val libs = the<LibrariesForLibs>()
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
testImplementation(libs.kotlinStdLib)
|
|
||||||
|
|
||||||
testImplementation(libs.assertj)
|
testImplementation(libs.assertj)
|
||||||
testImplementation(libs.junitApi)
|
testImplementation(libs.junitApi)
|
||||||
testImplementation(libs.junitParams)
|
testImplementation(libs.junitParams)
|
||||||
|
testImplementation(libs.kotlinStdLib)
|
||||||
|
|
||||||
testRuntimeOnly(libs.junitEngine)
|
testRuntimeOnly(libs.junitEngine)
|
||||||
testRuntimeOnly(libs.junitLauncher)
|
testRuntimeOnly(libs.junitLauncher)
|
||||||
@@ -45,7 +44,7 @@ tasks.withType<Test>().configureEach {
|
|||||||
// enable checking of stdlib return types
|
// enable checking of stdlib return types
|
||||||
systemProperty("org.pkl.testMode", "true")
|
systemProperty("org.pkl.testMode", "true")
|
||||||
|
|
||||||
reports.named("html") { required = true }
|
reports.named("html") { enabled = true }
|
||||||
|
|
||||||
testLogging { exceptionFormat = TestExceptionFormat.FULL }
|
testLogging { exceptionFormat = TestExceptionFormat.FULL }
|
||||||
|
|
||||||
+59
-56
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -37,15 +37,16 @@ val stagedLinuxAarch64Executable: Configuration by configurations.creating
|
|||||||
val stagedAlpineLinuxAmd64Executable: Configuration by configurations.creating
|
val stagedAlpineLinuxAmd64Executable: Configuration by configurations.creating
|
||||||
val stagedWindowsAmd64Executable: Configuration by configurations.creating
|
val stagedWindowsAmd64Executable: Configuration by configurations.creating
|
||||||
|
|
||||||
val nativeImageClasspath by configurations.creating {
|
val nativeImageClasspath by
|
||||||
extendsFrom(configurations.runtimeClasspath.get())
|
configurations.creating {
|
||||||
// Ensure native-image version uses GraalVM C SDKs instead of Java FFI or JNA
|
extendsFrom(configurations.runtimeClasspath.get())
|
||||||
// (comes from artifact `mordant-jvm-graal-ffi`).
|
// Ensure native-image version uses GraalVM C SDKs instead of Java FFI or JNA
|
||||||
exclude("com.github.ajalt.mordant", "mordant-jvm-ffm")
|
// (comes from artifact `mordant-jvm-graal-ffi`).
|
||||||
exclude("com.github.ajalt.mordant", "mordant-jvm-ffm-jvm")
|
exclude("com.github.ajalt.mordant", "mordant-jvm-ffm")
|
||||||
exclude("com.github.ajalt.mordant", "mordant-jvm-jna")
|
exclude("com.github.ajalt.mordant", "mordant-jvm-ffm-jvm")
|
||||||
exclude("com.github.ajalt.mordant", "mordant-jvm-jna-jvm")
|
exclude("com.github.ajalt.mordant", "mordant-jvm-jna")
|
||||||
}
|
exclude("com.github.ajalt.mordant", "mordant-jvm-jna-jvm")
|
||||||
|
}
|
||||||
|
|
||||||
val libs = the<LibrariesForLibs>()
|
val libs = the<LibrariesForLibs>()
|
||||||
|
|
||||||
@@ -139,63 +140,65 @@ val windowsExecutableAmd64 by
|
|||||||
|
|
||||||
val assembleNative by tasks.existing
|
val assembleNative by tasks.existing
|
||||||
|
|
||||||
val testStartNativeExecutable by tasks.registering {
|
val testStartNativeExecutable by
|
||||||
dependsOn(assembleNative)
|
tasks.registering {
|
||||||
|
dependsOn(assembleNative)
|
||||||
|
|
||||||
// dummy file for up-to-date checking
|
// dummy file for up-to-date checking
|
||||||
val outputFile = project.layout.buildDirectory.file("testStartNativeExecutable/output.txt")
|
val outputFile = project.layout.buildDirectory.file("testStartNativeExecutable/output.txt")
|
||||||
outputs.file(outputFile)
|
outputs.file(outputFile)
|
||||||
|
|
||||||
val execOutput = providers.exec {
|
val execOutput =
|
||||||
commandLine(assembleNative.get().outputs.files.singleFile, "--version")
|
providers.exec { commandLine(assembleNative.get().outputs.files.singleFile, "--version") }
|
||||||
}
|
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
val outputText = execOutput.standardOutput.asText.get()
|
val outputText = execOutput.standardOutput.asText.get()
|
||||||
if (!outputText.contains(buildInfo.pklVersionNonUnique)) {
|
if (!outputText.contains(buildInfo.pklVersionNonUnique)) {
|
||||||
throw GradleException(
|
throw GradleException(
|
||||||
"Expected version output to contain current version (${buildInfo.pklVersionNonUnique}), but got '$outputText'"
|
"Expected version output to contain current version (${buildInfo.pklVersionNonUnique}), but got '$outputText'"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
outputFile.get().asFile.toPath().apply {
|
outputFile.get().asFile.toPath().apply {
|
||||||
try {
|
try {
|
||||||
parent.createDirectories()
|
parent.createDirectories()
|
||||||
} catch (_: java.nio.file.FileAlreadyExistsException) {}
|
} catch (ignored: java.nio.file.FileAlreadyExistsException) {}
|
||||||
writeText("OK")
|
writeText("OK")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
val requiredGlibcVersion: Version = Version.parse("2.17")
|
val requiredGlibcVersion: Version = Version.parse("2.17")
|
||||||
|
|
||||||
val checkGlibc by tasks.registering {
|
val checkGlibc by
|
||||||
enabled = buildInfo.os.isLinux && !buildInfo.musl
|
tasks.registering {
|
||||||
dependsOn(assembleNative)
|
enabled = buildInfo.os.isLinux && !buildInfo.musl
|
||||||
doLast {
|
dependsOn(assembleNative)
|
||||||
val exec = providers.exec {
|
doLast {
|
||||||
commandLine("objdump", "-T", assembleNative.get().outputs.files.singleFile)
|
val exec =
|
||||||
}
|
providers.exec {
|
||||||
val output = exec.standardOutput.asText.get()
|
commandLine("objdump", "-T", assembleNative.get().outputs.files.singleFile)
|
||||||
val minimumGlibcVersion =
|
|
||||||
output
|
|
||||||
.split("\n")
|
|
||||||
.mapNotNull { line ->
|
|
||||||
val match = Regex("GLIBC_([.0-9]*)").find(line)
|
|
||||||
match?.groups[1]?.let { Version.parse(it.value) }
|
|
||||||
}
|
}
|
||||||
.maxOrNull()
|
val output = exec.standardOutput.asText.get()
|
||||||
if (minimumGlibcVersion == null) {
|
val minimumGlibcVersion =
|
||||||
throw GradleException(
|
output
|
||||||
"Could not determine glibc version from executable. objdump output: $output"
|
.split("\n")
|
||||||
)
|
.mapNotNull { line ->
|
||||||
}
|
val match = Regex("GLIBC_([.0-9]*)").find(line)
|
||||||
if (minimumGlibcVersion > requiredGlibcVersion) {
|
match?.groups[1]?.let { Version.parse(it.value) }
|
||||||
throw GradleException(
|
}
|
||||||
"Incorrect glibc version. Found: $minimumGlibcVersion, required: $requiredGlibcVersion"
|
.maxOrNull()
|
||||||
)
|
if (minimumGlibcVersion == null) {
|
||||||
|
throw GradleException(
|
||||||
|
"Could not determine glibc version from executable. objdump output: $output"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if (minimumGlibcVersion > requiredGlibcVersion) {
|
||||||
|
throw GradleException(
|
||||||
|
"Incorrect glibc version. Found: $minimumGlibcVersion, required: $requiredGlibcVersion"
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Expose underlying task's outputs
|
// Expose underlying task's outputs
|
||||||
private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
val assembleNativeMacOsAarch64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeMacOsAmd64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeLinuxAarch64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeLinuxAmd64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeAlpineLinuxAmd64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeWindowsAmd64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val testNativeMacOsAarch64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeMacOsAmd64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeLinuxAarch64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeLinuxAmd64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeAlpineLinuxAmd64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeWindowsAmd64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||||
|
|
||||||
|
private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
||||||
|
dependsOn(other)
|
||||||
|
outputs.files(other)
|
||||||
|
}
|
||||||
|
|
||||||
|
val assembleNative by
|
||||||
|
tasks.registering {
|
||||||
|
group = "build"
|
||||||
|
|
||||||
|
if (!buildInfo.isCrossArchSupported && buildInfo.isCrossArch) {
|
||||||
|
throw GradleException("Cross-arch builds are not supported on ${buildInfo.os.name}")
|
||||||
|
}
|
||||||
|
|
||||||
|
when {
|
||||||
|
buildInfo.os.isMacOsX && buildInfo.targetArch == "aarch64" -> {
|
||||||
|
wraps(assembleNativeMacOsAarch64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isMacOsX && buildInfo.targetArch == "amd64" -> {
|
||||||
|
wraps(assembleNativeMacOsAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isLinux && buildInfo.targetArch == "aarch64" -> {
|
||||||
|
wraps(assembleNativeLinuxAarch64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isLinux && buildInfo.targetArch == "amd64" -> {
|
||||||
|
if (buildInfo.musl) wraps(assembleNativeAlpineLinuxAmd64)
|
||||||
|
else wraps(assembleNativeLinuxAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isWindows && buildInfo.targetArch == "amd64" -> {
|
||||||
|
wraps(assembleNativeWindowsAmd64)
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
doLast {
|
||||||
|
throw GradleException(
|
||||||
|
"Cannot build targeting ${buildInfo.os.name}/${buildInfo.targetArch} with musl=${buildInfo.musl}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val testNative by
|
||||||
|
tasks.registering {
|
||||||
|
group = "verification"
|
||||||
|
dependsOn(assembleNative)
|
||||||
|
|
||||||
|
if (!buildInfo.isCrossArchSupported && buildInfo.isCrossArch) {
|
||||||
|
throw GradleException("Cross-arch builds are not supported on ${buildInfo.os.name}")
|
||||||
|
}
|
||||||
|
|
||||||
|
when {
|
||||||
|
buildInfo.os.isMacOsX && buildInfo.targetArch == "aarch64" -> {
|
||||||
|
dependsOn(testNativeMacOsAarch64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isMacOsX && buildInfo.targetArch == "amd64" -> {
|
||||||
|
dependsOn(testNativeMacOsAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isLinux && buildInfo.targetArch == "aarch64" -> {
|
||||||
|
dependsOn(testNativeLinuxAarch64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isLinux && buildInfo.targetArch == "amd64" -> {
|
||||||
|
if (buildInfo.musl) dependsOn(testNativeAlpineLinuxAmd64)
|
||||||
|
else dependsOn(testNativeLinuxAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isWindows && buildInfo.targetArch == "amd64" -> {
|
||||||
|
dependsOn(testNativeWindowsAmd64)
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
doLast {
|
||||||
|
throw GradleException(
|
||||||
|
"Cannot build targeting ${buildInfo.os.name}/${buildInfo.targetArch} with musl=${buildInfo.musl}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val checkNative by
|
||||||
|
tasks.registering {
|
||||||
|
group = "verification"
|
||||||
|
dependsOn(testNative)
|
||||||
|
}
|
||||||
|
|
||||||
|
val buildNative by
|
||||||
|
tasks.registering {
|
||||||
|
group = "build"
|
||||||
|
dependsOn(checkNative)
|
||||||
|
}
|
||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -24,7 +24,7 @@ spotless {
|
|||||||
target("**/*.pkl")
|
target("**/*.pkl")
|
||||||
addStep(PklFormatterStep(pklFormatter).create())
|
addStep(PklFormatterStep(pklFormatter).create())
|
||||||
licenseHeaderFile(
|
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
|
// disable ratcheting for Pkl sources
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
name: main
|
name: main
|
||||||
title: Main Project
|
title: Main Project
|
||||||
version: 0.32.0-dev
|
version: 0.31.1
|
||||||
prerelease: true
|
prerelease: false
|
||||||
nav:
|
nav:
|
||||||
- nav.adoc
|
- 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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,8 +16,8 @@
|
|||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklKotlinTest")
|
pklKotlinTest
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# 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.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,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.0=testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:collections:25.0.0=testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:word:25.0.0=testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,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.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=testRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=testRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,apiDependenciesMetadata,compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,runtimeClasspath,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -3,10 +3,10 @@
|
|||||||
// the following attributes must be updated immediately before a release
|
// the following attributes must be updated immediately before a release
|
||||||
|
|
||||||
// pkl version corresponding to current git commit without -dev suffix or git hash
|
// pkl version corresponding to current git commit without -dev suffix or git hash
|
||||||
:pkl-version-no-suffix: 0.32.0
|
:pkl-version-no-suffix: 0.31.1
|
||||||
// tells whether pkl version corresponding to current git commit
|
// tells whether pkl version corresponding to current git commit
|
||||||
// is a release version (:is-release-version: '') or dev version (:!is-release-version:)
|
// is a release version (:is-release-version: '') or dev version (:!is-release-version:)
|
||||||
:!is-release-version:
|
:is-release-version: ''
|
||||||
|
|
||||||
// the remaining attributes do not need to be updated regularly
|
// the remaining attributes do not need to be updated regularly
|
||||||
|
|
||||||
|
|||||||
@@ -255,7 +255,8 @@ String literals are enclosed in double quotes:
|
|||||||
"Hello, World!"
|
"Hello, World!"
|
||||||
----
|
----
|
||||||
|
|
||||||
TIP: Except for a few minor differences footnote:[Pkl's string literals have fewer character escape sequences and stricter rules for line indentation in multiline strings.],
|
TIP: Except for a few minor differences footnote:[Pkl's string literals have fewer character escape sequences,
|
||||||
|
have stricter rules for line indentation in multiline strings, and do not have a line continuation character.],
|
||||||
String literals have the same syntax and semantics as in Swift 5. Learn one of them, know both of them!
|
String literals have the same syntax and semantics as in Swift 5. Learn one of them, know both of them!
|
||||||
|
|
||||||
Inside a string literal, the following character escape sequences have special meaning:
|
Inside a string literal, the following character escape sequences have special meaning:
|
||||||
@@ -361,23 +362,6 @@ str = """
|
|||||||
"""
|
"""
|
||||||
----
|
----
|
||||||
|
|
||||||
To prevent line breaks from becoming part of the string's value, use a backslash (`\`) to end those lines.
|
|
||||||
|
|
||||||
[source%tested,{pkl}]
|
|
||||||
----
|
|
||||||
str = """
|
|
||||||
Although the Dodo is extinct, \
|
|
||||||
the species will be remembered.
|
|
||||||
"""
|
|
||||||
----
|
|
||||||
|
|
||||||
This multiline string is equivalent to the following single-line string:
|
|
||||||
|
|
||||||
[source%parsed,{pkl-expr}]
|
|
||||||
----
|
|
||||||
"Although the Dodo is extinct, the species will be remembered."
|
|
||||||
----
|
|
||||||
|
|
||||||
[[custom-string-delimiters]]
|
[[custom-string-delimiters]]
|
||||||
=== Custom String Delimiters
|
=== Custom String Delimiters
|
||||||
|
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
= Pkl 0.32.0 Release Notes
|
|
||||||
:version: 0.32
|
|
||||||
:version-minor: 0.32.0
|
|
||||||
:release-date: TBD
|
|
||||||
:version-next: 0.33
|
|
||||||
:version-next-date: TBD
|
|
||||||
|
|
||||||
include::partial$intro.adoc[]
|
|
||||||
|
|
||||||
== Highlights [small]#💖#
|
|
||||||
|
|
||||||
News you don't want to miss.
|
|
||||||
|
|
||||||
.XXX
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
XXX
|
|
||||||
====
|
|
||||||
|
|
||||||
== Noteworthy [small]#🎶#
|
|
||||||
|
|
||||||
Ready when you need them.
|
|
||||||
|
|
||||||
.XXX
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
XXX
|
|
||||||
====
|
|
||||||
|
|
||||||
== Breaking Changes [small]#💔#
|
|
||||||
|
|
||||||
Things to watch out for when upgrading.
|
|
||||||
|
|
||||||
=== Removed Java APIs
|
|
||||||
|
|
||||||
The following APIs have been removed without replacement.
|
|
||||||
|
|
||||||
* `org.pkl.config.java.Config#makeConfig` (pr:https://github.com/apple/pkl/pull/1531[])
|
|
||||||
|
|
||||||
.XXX
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
XXX
|
|
||||||
====
|
|
||||||
|
|
||||||
== Work In Progress [small]#🚆#
|
|
||||||
|
|
||||||
They missed the train but deserve a mention.
|
|
||||||
|
|
||||||
.XXX
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
XXX
|
|
||||||
====
|
|
||||||
|
|
||||||
== Contributors [small]#🙏#
|
|
||||||
|
|
||||||
We would like to thank the contributors to this release (in alphabetical order):
|
|
||||||
|
|
||||||
* XXX
|
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
= Changelog
|
= Changelog
|
||||||
include::ROOT:partial$component-attributes.adoc[]
|
include::ROOT:partial$component-attributes.adoc[]
|
||||||
|
|
||||||
[[release-0.32.0]]
|
|
||||||
== 0.32.0 (UNRELEASED)
|
|
||||||
|
|
||||||
[[release-0.31.1]]
|
[[release-0.31.1]]
|
||||||
== 0.31.1 (2026-03-26)
|
== 0.31.1 (2026-03-26)
|
||||||
|
|
||||||
@@ -38,6 +35,7 @@ Thank you to all the contributors for this release!
|
|||||||
== 0.31.0 (2026-02-26)
|
== 0.31.0 (2026-02-26)
|
||||||
|
|
||||||
xref:0.31.adoc[Release Notes]
|
xref:0.31.adoc[Release Notes]
|
||||||
|
|
||||||
[[release-0.30.2]]
|
[[release-0.30.2]]
|
||||||
|
|
||||||
== 0.30.2 (2025-12-15)
|
== 0.30.2 (2025-12-15)
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
The Pkl team aims to release a new version of Pkl in February, June, and October of each year.
|
The Pkl team aims to release a new version of Pkl in February, June, and October of each year.
|
||||||
|
|
||||||
* xref:0.32.adoc[0.32 Release Notes]
|
|
||||||
* xref:0.31.adoc[0.31 Release Notes]
|
* xref:0.31.adoc[0.31 Release Notes]
|
||||||
* xref:0.30.adoc[0.30 Release Notes]
|
* xref:0.30.adoc[0.30 Release Notes]
|
||||||
* xref:0.29.adoc[0.29 Release Notes]
|
* xref:0.29.adoc[0.29 Release Notes]
|
||||||
|
|||||||
@@ -52,3 +52,10 @@ XXX
|
|||||||
We would like to thank the contributors to this release (in alphabetical order):
|
We would like to thank the contributors to this release (in alphabetical order):
|
||||||
|
|
||||||
* XXX
|
* XXX
|
||||||
|
|
||||||
|
== Closed Radars [small]#🔒#
|
||||||
|
|
||||||
|
XXX Radars down, Inbox Zero in sight ...
|
||||||
|
|
||||||
|
[smaller]
|
||||||
|
. XXX (https://github.com/apple/pkl/issues/new[XXX])
|
||||||
|
|||||||
@@ -41,7 +41,6 @@
|
|||||||
* xref:ROOT:evolution-and-roadmap.adoc[Evolution and Roadmap]
|
* xref:ROOT:evolution-and-roadmap.adoc[Evolution and Roadmap]
|
||||||
|
|
||||||
* xref:release-notes:index.adoc[Release Notes]
|
* xref:release-notes:index.adoc[Release Notes]
|
||||||
** xref:release-notes:0.32.adoc[0.32 Release Notes]
|
|
||||||
** xref:release-notes:0.31.adoc[0.31 Release Notes]
|
** xref:release-notes:0.31.adoc[0.31 Release Notes]
|
||||||
** xref:release-notes:0.30.adoc[0.30 Release Notes]
|
** xref:release-notes:0.30.adoc[0.30 Release Notes]
|
||||||
** xref:release-notes:0.29.adoc[0.29 Release Notes]
|
** xref:release-notes:0.29.adoc[0.29 Release Notes]
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
# suppress inspection "UnusedProperty" for whole file
|
# suppress inspection "UnusedProperty" for whole file
|
||||||
|
|
||||||
group=org.pkl-lang
|
group=org.pkl-lang
|
||||||
version=0.32.0
|
version=0.31.1
|
||||||
|
|
||||||
# google-java-format requires jdk.compiler exports
|
# google-java-format requires jdk.compiler exports
|
||||||
org.gradle.jvmargs= \
|
org.gradle.jvmargs= \
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
#This file is generated by updateDaemonJvm
|
|
||||||
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
|
|
||||||
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
|
|
||||||
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
|
|
||||||
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
|
|
||||||
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/d4fd992c9557644e637ebe98263e0ae7/redirect
|
|
||||||
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/faa12903720d410b387cc69ccafb1a74/redirect
|
|
||||||
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
|
|
||||||
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
|
|
||||||
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/8e1d9ee5d0f13e442218f6884a306da1/redirect
|
|
||||||
toolchainVendor=ADOPTIUM
|
|
||||||
toolchainVersion=25
|
|
||||||
+55
-73
@@ -1,69 +1,61 @@
|
|||||||
[versions] # ordered alphabetically
|
[versions] # ordered alphabetically
|
||||||
assertj = "3.27.7"
|
assertj = "3.+"
|
||||||
checksumPlugin = "1.4.0"
|
checksumPlugin = "1.4.0"
|
||||||
# 5.0.3 is the last version compatible with Kotlin 2.2
|
clikt = "5.+"
|
||||||
clikt = "5.0.3"
|
commonMark = "0.+"
|
||||||
commonMark = "0.28.0"
|
downloadTaskPlugin = "5.6.0"
|
||||||
downloadTaskPlugin = "5.7.0"
|
geantyref = "1.+"
|
||||||
errorProne = "2.48.0"
|
googleJavaFormat = "1.25.2"
|
||||||
errorPronePlugin = "5.1.0"
|
# must not use `+` because used in download URL
|
||||||
geantyref = "1.3.16"
|
# 23.1.x requires JDK 20+
|
||||||
|
graalVm = "25.0.0"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
#noinspection UnusedVersionCatalogEntry
|
||||||
googleJavaFormat = "1.35.0"
|
graalVmJdkVersion = "25.0.0"
|
||||||
# 25.0.2 no longer supports macos-x64
|
|
||||||
graalVm = "25.0.1"
|
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
graalVmJdkVersion = "25.0.1"
|
|
||||||
# slightly hacky but convenient place so we remember to update the checksum
|
# slightly hacky but convenient place so we remember to update the checksum
|
||||||
#noinspection UnusedVersionCatalogEntry
|
#noinspection UnusedVersionCatalogEntry
|
||||||
graalVmSha256-macos-x64 = "a3d895b4cd1c783badbd277ec70409806bd4102fca0d2a60dbaeb0bab41aec30"
|
graalVmSha256-macos-x64 = "04278cf867d040e29dc71dd7727793f0ea67eb72adce8a35d04b87b57906778d"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
#noinspection UnusedVersionCatalogEntry
|
||||||
graalVmSha256-macos-aarch64 = "066339f24a8ab5c161548491a9400f7344e7761a1e46f8979e76c7ef11d5bc76"
|
graalVmSha256-macos-aarch64 = "c446d5aaeda98660a4c14049d299e9fba72105a007df89f19d27cf3979d37158"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
#noinspection UnusedVersionCatalogEntry
|
||||||
graalVmSha256-linux-x64 = "01e39fe1a87f28b842a3e4e3b77be9b544dca3a58fa6e93b924a6106c8bac7fb"
|
graalVmSha256-linux-x64 = "1862f2ce97387a303cae4c512cb21baf36fafd2457c3cbbc10d87db94b89d3dd"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
#noinspection UnusedVersionCatalogEntry
|
||||||
graalVmSha256-linux-aarch64 = "7aa0b9935a80e67f37c6025678393dbd123bb6f2226811decbc1a13093fc8ae2"
|
graalVmSha256-linux-aarch64 = "6c3c8b7617006c5d174d9cf7d357ccfb4bae77a4df1294ee28084fcb6eea8921"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
#noinspection UnusedVersionCatalogEntry
|
||||||
graalVmSha256-windows-x64 = "fde83c5ceec2c75560c747ccd9f314f90e4cf5c5287416e67c4ce442e344ca27"
|
graalVmSha256-windows-x64 = "33ef1d186b5c1e95465fcc97e637bc26e72d5f2250a8615b9c5d667ed5c17fd0"
|
||||||
# pklGraalVm.gradle.kts assumes this entry exists
|
ideaExtPlugin = "1.1.9"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
intellijPlugin = "2.10.1"
|
||||||
graalVmSha256-windows-aarch64 = "unavailable"
|
intellij = "2025.2.3"
|
||||||
ideaExtPlugin = "1.4.1"
|
javaPoet = "0.+"
|
||||||
javaPoet = "0.14.0"
|
|
||||||
javaxInject = "1"
|
javaxInject = "1"
|
||||||
jimfs = "1.3.1"
|
jansi = "2.+"
|
||||||
jline = "4.0.12"
|
jimfs = "1.+"
|
||||||
jmh = "1.37"
|
# later versions don't work with native image
|
||||||
jmhPlugin = "0.7.3"
|
# (at least not without additional configuration; tested with 3.25.1 and 3.27.1)
|
||||||
jspecify = "1.0.0"
|
jline = "3.23.0"
|
||||||
jsr305 = "3.0.2"
|
jmh = "1.+"
|
||||||
junit = "6.0.3"
|
jmhPlugin = "0.7.2"
|
||||||
|
jsr305 = "3.+"
|
||||||
|
junit = "5.+"
|
||||||
|
junitPlatform = "1.+"
|
||||||
|
kotlin = "2.2.20"
|
||||||
# 1.7+ generates much more verbose code
|
# 1.7+ generates much more verbose code
|
||||||
kotlinPoet = "2.3.0"
|
kotlinPoet = "1.6.+"
|
||||||
kotlinStdLib = "2.2.21"
|
kotlinxHtml = "0.11.0"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
kotlinxSerialization = "1.8.0"
|
||||||
kotlinTarget = "2.2"
|
kotlinxCoroutines = "1.+"
|
||||||
kotlinToolchain = "2.3.20"
|
ktfmt = "0.53"
|
||||||
kotlinxHtml = "0.12.0"
|
|
||||||
# 1.9.0 is the last version compatible with Kotlin 2.2
|
|
||||||
kotlinxSerialization = "1.9.0"
|
|
||||||
kotlinxCoroutines = "1.10.2"
|
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
ktfmt = "0.62"
|
|
||||||
# replaces nuValidator's log4j dependency
|
# replaces nuValidator's log4j dependency
|
||||||
# 2.17.1 is the last version compatible with nuValidator
|
# something related to log4j-1.2-api is apparently broken in 2.17.2
|
||||||
log4j = "2.17.1"
|
log4j = "2.17.1"
|
||||||
msgpack = "0.9.11"
|
msgpack = "0.9.8"
|
||||||
nexusPublishPlugin = "2.0.0"
|
nexusPublishPlugin = "2.0.0"
|
||||||
nullaway = "0.13.2"
|
nuValidator = "20.+"
|
||||||
nullawayPlugin = "3.0.0"
|
paguro = "3.+"
|
||||||
nuValidator = "26.4.2"
|
shadowPlugin = "9.+"
|
||||||
paguro = "3.10.3"
|
slf4j = "1.+"
|
||||||
shadowPlugin = "9.4.1"
|
snakeYaml = "2.+"
|
||||||
slf4j = "2.0.17"
|
spotlessPlugin = "6.25.0"
|
||||||
snakeYaml = "3.0.1"
|
wiremock = "3.+"
|
||||||
spotlessPlugin = "8.4.0"
|
|
||||||
wiremock = "3.13.2"
|
|
||||||
|
|
||||||
[libraries] # ordered alphabetically
|
[libraries] # ordered alphabetically
|
||||||
assertj = { group = "org.assertj", name = "assertj-core", version.ref = "assertj" }
|
assertj = { group = "org.assertj", name = "assertj-core", version.ref = "assertj" }
|
||||||
@@ -72,33 +64,29 @@ cliktMarkdown = { group = "com.github.ajalt.clikt", name = "clikt-markdown", ver
|
|||||||
commonMark = { group = "org.commonmark", name = "commonmark", version.ref = "commonMark" }
|
commonMark = { group = "org.commonmark", name = "commonmark", version.ref = "commonMark" }
|
||||||
commonMarkTables = { group = "org.commonmark", name = "commonmark-ext-gfm-tables", version.ref = "commonMark" }
|
commonMarkTables = { group = "org.commonmark", name = "commonmark-ext-gfm-tables", version.ref = "commonMark" }
|
||||||
downloadTaskPlugin = { group = "de.undercouch", name = "gradle-download-task", version.ref = "downloadTaskPlugin" }
|
downloadTaskPlugin = { group = "de.undercouch", name = "gradle-download-task", version.ref = "downloadTaskPlugin" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
errorProne = { group = "com.google.errorprone", name = "error_prone_core", version.ref = "errorProne" }
|
|
||||||
errorPronePlugin = { group = "net.ltgt.gradle", name = "gradle-errorprone-plugin", version.ref = "errorPronePlugin" }
|
|
||||||
geantyref = { group = "io.leangen.geantyref", name = "geantyref", version.ref = "geantyref" }
|
geantyref = { group = "io.leangen.geantyref", name = "geantyref", version.ref = "geantyref" }
|
||||||
graalCompiler = { group = "org.graalvm.compiler", name = "compiler", version.ref = "graalVm" }
|
graalCompiler = { group = "org.graalvm.compiler", name = "compiler", version.ref = "graalVm" }
|
||||||
graalSdk = { group = "org.graalvm.sdk", name = "graal-sdk", version.ref = "graalVm" }
|
graalSdk = { group = "org.graalvm.sdk", name = "graal-sdk", version.ref = "graalVm" }
|
||||||
graalJs = { group = "org.graalvm.js", name = "js", version.ref = "graalVm" }
|
graalJs = { group = "org.graalvm.js", name = "js", version.ref = "graalVm" }
|
||||||
|
#noinspection UnusedVersionCatalogEntry
|
||||||
|
intellij = { group = "com.jetbrains.intellij.idea", name = "ideaIC", version.ref = "intellij" }
|
||||||
javaPoet = { group = "com.palantir.javapoet", name = "javapoet", version.ref = "javaPoet" }
|
javaPoet = { group = "com.palantir.javapoet", name = "javapoet", version.ref = "javaPoet" }
|
||||||
javaxInject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" }
|
javaxInject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" }
|
||||||
|
jansi = { group = "org.fusesource.jansi", name = "jansi", version.ref = "jansi" }
|
||||||
jimfs = { group = "com.google.jimfs", name = "jimfs", version.ref = "jimfs" }
|
jimfs = { group = "com.google.jimfs", name = "jimfs", version.ref = "jimfs" }
|
||||||
jlineReader = { group = "org.jline", name = "jline-reader", version.ref = "jline" }
|
jlineReader = { group = "org.jline", name = "jline-reader", version.ref = "jline" }
|
||||||
jlineTerminal = { group = "org.jline", name = "jline-terminal", version.ref = "jline" }
|
jlineTerminal = { group = "org.jline", name = "jline-terminal", version.ref = "jline" }
|
||||||
jlineTerminalJni = { group = "org.jline", name = "jline-terminal-jni", version.ref = "jline" }
|
jlineTerminalJansi = { group = "org.jline", name = "jline-terminal-jansi", version.ref = "jline" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
jspecify = { group = "org.jspecify", name = "jspecify", version.ref = "jspecify" }
|
|
||||||
jsr305 = { group = "com.google.code.findbugs", name = "jsr305", version.ref = "jsr305" }
|
jsr305 = { group = "com.google.code.findbugs", name = "jsr305", version.ref = "jsr305" }
|
||||||
junitApi = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" }
|
junitApi = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" }
|
||||||
junitEngine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" }
|
junitEngine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" }
|
||||||
junitParams = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" }
|
junitParams = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
junitLauncher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junitPlatform" }
|
||||||
junitLauncher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junit" }
|
kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
|
||||||
kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlinToolchain" }
|
|
||||||
kotlinPoet = { group = "com.squareup", name = "kotlinpoet", version.ref = "kotlinPoet" }
|
kotlinPoet = { group = "com.squareup", name = "kotlinpoet", version.ref = "kotlinPoet" }
|
||||||
kotlinReflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlinStdLib" }
|
kotlinReflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
|
||||||
kotlinScripting = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlinStdLib" }
|
kotlinScripting = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlin" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
kotlinStdLib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" }
|
||||||
kotlinStdLib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlinStdLib" }
|
|
||||||
kotlinxHtml = { group = "org.jetbrains.kotlinx", name = "kotlinx-html-jvm", version.ref = "kotlinxHtml" }
|
kotlinxHtml = { group = "org.jetbrains.kotlinx", name = "kotlinx-html-jvm", version.ref = "kotlinxHtml" }
|
||||||
kotlinxSerializationJson = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
|
kotlinxSerializationJson = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
|
||||||
kotlinxCoroutinesCore = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
|
kotlinxCoroutinesCore = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
|
||||||
@@ -107,9 +95,6 @@ log4j12Api = { group = "org.apache.logging.log4j", name = "log4j-1.2-api", versi
|
|||||||
msgpack = { group = "org.msgpack", name = "msgpack-core", version.ref = "msgpack" }
|
msgpack = { group = "org.msgpack", name = "msgpack-core", version.ref = "msgpack" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
#noinspection UnusedVersionCatalogEntry
|
||||||
nuValidator = { group = "nu.validator", name = "validator", version.ref = "nuValidator" }
|
nuValidator = { group = "nu.validator", name = "validator", version.ref = "nuValidator" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
nullaway = { group = "com.uber.nullaway", name = "nullaway", version.ref = "nullaway" }
|
|
||||||
nullawayPlugin = { group = "net.ltgt.gradle", name = "gradle-nullaway-plugin", version.ref = "nullawayPlugin" }
|
|
||||||
# to be replaced with https://github.com/usethesource/capsule or https://github.com/lacuna/bifurcan
|
# to be replaced with https://github.com/usethesource/capsule or https://github.com/lacuna/bifurcan
|
||||||
paguro = { group = "org.organicdesign", name = "Paguro", version.ref = "paguro" }
|
paguro = { group = "org.organicdesign", name = "Paguro", version.ref = "paguro" }
|
||||||
pklConfigJavaAll025 = { group = "org.pkl-lang", name = "pkl-config-java-all", version = "0.25.0" }
|
pklConfigJavaAll025 = { group = "org.pkl-lang", name = "pkl-config-java-all", version = "0.25.0" }
|
||||||
@@ -127,12 +112,9 @@ wiremock = { group = "org.wiremock", name = "wiremock", version.ref = "wiremock"
|
|||||||
|
|
||||||
[plugins] # ordered alphabetically
|
[plugins] # ordered alphabetically
|
||||||
checksum = { id = "org.gradle.crypto.checksum", version.ref = "checksumPlugin" }
|
checksum = { id = "org.gradle.crypto.checksum", version.ref = "checksumPlugin" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
errorProne = { id = "net.ltgt.errorprone", version.ref = "errorPronePlugin" }
|
|
||||||
ideaExt = { id = "org.jetbrains.gradle.plugin.idea-ext", version.ref = "ideaExtPlugin" }
|
ideaExt = { id = "org.jetbrains.gradle.plugin.idea-ext", version.ref = "ideaExtPlugin" }
|
||||||
jmh = { id = "me.champeau.jmh", version.ref = "jmhPlugin" }
|
jmh = { id = "me.champeau.jmh", version.ref = "jmhPlugin" }
|
||||||
kotlinxSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinToolchain" }
|
kotlinxSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
||||||
nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublishPlugin" }
|
nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublishPlugin" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
nullaway = { id = "net.ltgt.nullaway", version.ref = "nullawayPlugin" }
|
|
||||||
shadow = { id = "com.gradleup.shadow", version.ref = "shadowPlugin" }
|
shadow = { id = "com.gradleup.shadow", version.ref = "shadowPlugin" }
|
||||||
|
intellij = { id = "org.jetbrains.intellij.platform", version.ref = "intellijPlugin" }
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionSha256Sum=2ab2958f2a1e51120c326cad6f385153bb11ee93b3c216c5fccebfdfbb7ec6cb
|
distributionSha256Sum=a17ddd85a26b6a7f5ddb71ff8b05fc5104c0202c6e64782429790c933686c806
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright © 2015 the original authors.
|
# Copyright © 2015-2021 the original authors.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (3) This script is generated from the Groovy template
|
||||||
# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
# within the Gradle project.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
@@ -114,6 +114,7 @@ case "$( uname )" in #(
|
|||||||
NONSTOP* ) nonstop=true ;;
|
NONSTOP* ) nonstop=true ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
CLASSPATH="\\\"\\\""
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
# Determine the Java command to use to start the JVM.
|
||||||
@@ -171,6 +172,7 @@ fi
|
|||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
if "$cygwin" || "$msys" ; then
|
if "$cygwin" || "$msys" ; then
|
||||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||||
|
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||||
|
|
||||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||||
|
|
||||||
@@ -210,6 +212,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|||||||
|
|
||||||
set -- \
|
set -- \
|
||||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
|
-classpath "$CLASSPATH" \
|
||||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||||
"$@"
|
"$@"
|
||||||
|
|
||||||
|
|||||||
Vendored
+2
-1
@@ -70,10 +70,11 @@ goto fail
|
|||||||
:execute
|
:execute
|
||||||
@rem Setup the command line
|
@rem Setup the command line
|
||||||
|
|
||||||
|
set CLASSPATH=
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
@rem Execute Gradle
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
||||||
|
|
||||||
:end
|
:end
|
||||||
@rem End local scope for the variables with windows NT shell
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
`java-platform`
|
`java-platform`
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
signing
|
signing
|
||||||
|
|||||||
@@ -0,0 +1,145 @@
|
|||||||
|
# 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.10.3=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.core:jackson-annotations:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.core:jackson-core:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.core:jackson-databind:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson:jackson-bom:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-core:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown:5.0.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core-jvm:3.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||||
|
com.github.jknack:handlebars-helpers:4.3.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.jknack:handlebars:4.3.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||||
|
com.google.errorprone:error_prone_annotations:2.36.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.guava:failureaccess:1.0.3=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.guava:guava:33.4.8-jre=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.j2objc:j2objc-annotations:3.0.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.jayway.jsonpath:json-path:2.9.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.networknt:json-schema-validator:1.5.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
commons-fileupload:commons-fileupload:1.6.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
commons-io:commons-io:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,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.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
net.javacrumbs.json-unit:json-unit-core:2.40.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.minidev:accessors-smart:2.5.0=testRuntimeClasspath
|
||||||
|
net.minidev:json-smart:2.5.0=testRuntimeClasspath
|
||||||
|
net.sf.jopt-simple:jopt-simple:5.0.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apache.httpcomponents.client5:httpclient5:5.5=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apache.httpcomponents.core5:httpcore5:5.3.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,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.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty.http2:http2-hpack:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty.http2:http2-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-alpn-client:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-alpn-java-client:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-alpn-java-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-alpn-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-bom:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-client:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-http:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-io:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-proxy:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-security:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-servlet:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-servlets:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-util:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-webapp:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-xml:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.fusesource.jansi:jansi:2.4.2=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.polyglot:polyglot:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:collections:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:jniutils:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:word:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-compiler:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-runtime:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.hamcrest:hamcrest-core:2.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.hamcrest:hamcrest:2.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,nativeImageClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,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:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jline:jline-reader:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jline:jline-terminal-jansi:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jline:jline-terminal:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jspecify:jspecify:1.0.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.slf4j:slf4j-api:2.0.17=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.wiremock:wiremock:3.13.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.xmlunit:xmlunit-core:2.10.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.xmlunit:xmlunit-legacy:2.10.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.xmlunit:xmlunit-placeholders:2.10.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.yaml:snakeyaml:2.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,intransitiveDependenciesMetadata,javaExecutable,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,stagedAlpineLinuxAmd64Executable,stagedLinuxAarch64Executable,stagedLinuxAmd64Executable,stagedMacAarch64Executable,stagedMacAmd64Executable,stagedWindowsAmd64Executable,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -18,14 +18,14 @@ import java.io.OutputStream
|
|||||||
import org.gradle.kotlin.dsl.support.serviceOf
|
import org.gradle.kotlin.dsl.support.serviceOf
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklKotlinLibrary")
|
pklKotlinLibrary
|
||||||
id("pklPublishLibrary")
|
pklPublishLibrary
|
||||||
id("pklJavaExecutable")
|
pklJavaExecutable
|
||||||
id("pklNativeExecutable")
|
pklNativeExecutable
|
||||||
`maven-publish`
|
`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
|
// hence must only specify plugin ID here
|
||||||
id(libs.plugins.shadow.get().pluginId)
|
id(libs.plugins.shadow.get().pluginId)
|
||||||
|
|
||||||
@@ -56,9 +56,10 @@ dependencies {
|
|||||||
api(projects.pklCommonsCli)
|
api(projects.pklCommonsCli)
|
||||||
|
|
||||||
implementation(projects.pklCommons)
|
implementation(projects.pklCommons)
|
||||||
|
implementation(libs.jansi)
|
||||||
implementation(libs.jlineReader)
|
implementation(libs.jlineReader)
|
||||||
implementation(libs.jlineTerminal)
|
implementation(libs.jlineTerminal)
|
||||||
implementation(libs.jlineTerminalJni)
|
implementation(libs.jlineTerminalJansi)
|
||||||
implementation(projects.pklServer)
|
implementation(projects.pklServer)
|
||||||
implementation(projects.pklFormatter)
|
implementation(projects.pklFormatter)
|
||||||
implementation(libs.clikt)
|
implementation(libs.clikt)
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ constructor(
|
|||||||
private val errWriter: Writer = System.err.writer(),
|
private val errWriter: Writer = System.err.writer(),
|
||||||
) : CliCommand(CliBaseOptions()) {
|
) : CliCommand(CliBaseOptions()) {
|
||||||
private fun format(contents: String): String {
|
private fun format(contents: String): String {
|
||||||
return Formatter(grammarVersion).format(contents)
|
return Formatter().format(contents, grammarVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun writeErrLine(error: String) {
|
private fun writeErrLine(error: String) {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import java.net.URI
|
|||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
import kotlin.io.path.deleteIfExists
|
import kotlin.io.path.deleteIfExists
|
||||||
|
import org.fusesource.jansi.Ansi
|
||||||
import org.jline.reader.EndOfFileException
|
import org.jline.reader.EndOfFileException
|
||||||
import org.jline.reader.Highlighter
|
import org.jline.reader.Highlighter
|
||||||
import org.jline.reader.LineReader
|
import org.jline.reader.LineReader
|
||||||
@@ -51,7 +52,7 @@ class PklHighlighter : Highlighter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal class Repl(workingDir: Path, private val server: ReplServer, private val color: Boolean) {
|
internal class Repl(workingDir: Path, private val server: ReplServer, private val color: Boolean) {
|
||||||
private val terminal = TerminalBuilder.builder().apply { jni(true) }.build()
|
private val terminal = TerminalBuilder.builder().apply { jansi(true) }.build()
|
||||||
private val history = DefaultHistory()
|
private val history = DefaultHistory()
|
||||||
private val reader =
|
private val reader =
|
||||||
LineReaderBuilder.builder()
|
LineReaderBuilder.builder()
|
||||||
@@ -248,20 +249,14 @@ internal class Repl(workingDir: Path, private val server: ReplServer, private va
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun highlight(str: String): String {
|
private fun highlight(str: String): String {
|
||||||
// Inserting ANSI codes into a string that may already contain ANSI codes is problematic.
|
val ansi = Ansi.ansi()
|
||||||
// This code preserves existing behavior but should eventually be removed.
|
var normal = true
|
||||||
val builder = StringBuilder()
|
|
||||||
var bold = false
|
|
||||||
for (part in str.split("`", "```")) {
|
for (part in str.split("`", "```")) {
|
||||||
if (bold) {
|
ansi.a(part)
|
||||||
builder.append("\u001B[1m")
|
normal = !normal
|
||||||
builder.append(part)
|
if (!normal) ansi.bold() else ansi.boldOff()
|
||||||
builder.append("\u001B[22m")
|
|
||||||
} else {
|
|
||||||
builder.append(part)
|
|
||||||
}
|
|
||||||
bold = !bold
|
|
||||||
}
|
}
|
||||||
return builder.toString()
|
ansi.reset()
|
||||||
|
return ansi.toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,85 @@
|
|||||||
|
# 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.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-core:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown:5.0.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||||
|
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||||
|
com.palantir.javapoet:javapoet:0.7.0=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
|
||||||
|
io.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.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,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.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:collections:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:word:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,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,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains:markdown:0.7.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=runtimeClasspath,testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,18 +14,18 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklKotlinLibrary")
|
pklKotlinLibrary
|
||||||
id("pklPublishLibrary")
|
pklPublishLibrary
|
||||||
id("pklJavaExecutable")
|
pklJavaExecutable
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// CliJavaCodeGeneratorOptions exposes pkl-commons-cli and pkl-base
|
// CliJavaCodeGeneratorOptions exposes CliBaseOptions
|
||||||
api(projects.pklCommonsCli)
|
api(projects.pklCommonsCli)
|
||||||
api(projects.pklCore)
|
|
||||||
|
|
||||||
implementation(projects.pklCommons)
|
implementation(projects.pklCommons)
|
||||||
|
implementation(projects.pklCore)
|
||||||
implementation(libs.javaPoet)
|
implementation(libs.javaPoet)
|
||||||
|
|
||||||
testImplementation(projects.pklConfigJava)
|
testImplementation(projects.pklConfigJava)
|
||||||
@@ -56,7 +56,7 @@ publishing {
|
|||||||
"""
|
"""
|
||||||
Java source code generator that generates corresponding Java classes for Pkl classes,
|
Java source code generator that generates corresponding Java classes for Pkl classes,
|
||||||
simplifying consumption of Pkl configuration as statically typed Java objects.
|
simplifying consumption of Pkl configuration as statically typed Java objects.
|
||||||
"""
|
"""
|
||||||
.trimIndent()
|
.trimIndent()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ data class JavaCodeGeneratorOptions(
|
|||||||
*
|
*
|
||||||
* The specified annotation type must have a [java.lang.annotation.Target] of
|
* The specified annotation type must have a [java.lang.annotation.Target] of
|
||||||
* [java.lang.annotation.ElementType.TYPE_USE] or the generated code may not compile. If set to
|
* [java.lang.annotation.ElementType.TYPE_USE] or the generated code may not compile. If set to
|
||||||
* `null`, `org.pkl.config.java.mapper.NonNull` will be used.
|
* `null`, [org.pkl.config.java.mapper.NonNull] will be used.
|
||||||
*/
|
*/
|
||||||
val nonNullAnnotation: String? = null,
|
val nonNullAnnotation: String? = null,
|
||||||
|
|
||||||
@@ -105,7 +105,7 @@ class JavaCodeGenerator(
|
|||||||
) {
|
) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val OBJECT = ClassName.get(Any::class.java)
|
private val OBJECT = ClassName.get(Object::class.java)
|
||||||
private val STRING = ClassName.get(String::class.java)
|
private val STRING = ClassName.get(String::class.java)
|
||||||
private val DURATION = ClassName.get(Duration::class.java)
|
private val DURATION = ClassName.get(Duration::class.java)
|
||||||
private val DURATION_UNIT = ClassName.get(DurationUnit::class.java)
|
private val DURATION_UNIT = ClassName.get(DurationUnit::class.java)
|
||||||
@@ -295,7 +295,7 @@ class JavaCodeGenerator(
|
|||||||
MethodSpec.methodBuilder("equals")
|
MethodSpec.methodBuilder("equals")
|
||||||
.addModifiers(Modifier.PUBLIC)
|
.addModifiers(Modifier.PUBLIC)
|
||||||
.addAnnotation(Override::class.java)
|
.addAnnotation(Override::class.java)
|
||||||
.addParameter(Any::class.java, "obj")
|
.addParameter(Object::class.java, "obj")
|
||||||
.returns(Boolean::class.java)
|
.returns(Boolean::class.java)
|
||||||
.addStatement("if (this == obj) return true")
|
.addStatement("if (this == obj) return true")
|
||||||
.addStatement("if (obj == null) return false")
|
.addStatement("if (obj == null) return false")
|
||||||
@@ -418,7 +418,7 @@ class JavaCodeGenerator(
|
|||||||
val hasJavadoc =
|
val hasJavadoc =
|
||||||
docComment != null && codegenOptions.generateJavadoc && !codegenOptions.generateGetters
|
docComment != null && codegenOptions.generateJavadoc && !codegenOptions.generateGetters
|
||||||
if (hasJavadoc) {
|
if (hasJavadoc) {
|
||||||
builder.addJavadoc(renderAsJavadoc(docComment))
|
builder.addJavadoc(renderAsJavadoc(docComment!!))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (codegenOptions.generateGetters) {
|
if (codegenOptions.generateGetters) {
|
||||||
@@ -466,7 +466,7 @@ class JavaCodeGenerator(
|
|||||||
val docComment = property.docComment
|
val docComment = property.docComment
|
||||||
val hasJavadoc = docComment != null && codegenOptions.generateJavadoc
|
val hasJavadoc = docComment != null && codegenOptions.generateJavadoc
|
||||||
if (hasJavadoc) {
|
if (hasJavadoc) {
|
||||||
builder.addJavadoc(renderAsJavadoc(docComment))
|
builder.addJavadoc(renderAsJavadoc(docComment!!))
|
||||||
}
|
}
|
||||||
|
|
||||||
generateDeprecation(
|
generateDeprecation(
|
||||||
@@ -583,7 +583,7 @@ class JavaCodeGenerator(
|
|||||||
val docComment = pClass.docComment
|
val docComment = pClass.docComment
|
||||||
val hasJavadoc = docComment != null && codegenOptions.generateJavadoc
|
val hasJavadoc = docComment != null && codegenOptions.generateJavadoc
|
||||||
if (hasJavadoc) {
|
if (hasJavadoc) {
|
||||||
builder.addJavadoc(renderAsJavadoc(docComment))
|
builder.addJavadoc(renderAsJavadoc(docComment!!))
|
||||||
}
|
}
|
||||||
|
|
||||||
generateDeprecation(
|
generateDeprecation(
|
||||||
@@ -707,7 +707,7 @@ class JavaCodeGenerator(
|
|||||||
.addModifiers(Modifier.STATIC)
|
.addModifiers(Modifier.STATIC)
|
||||||
.addParameter(StringBuilder::class.java, "builder")
|
.addParameter(StringBuilder::class.java, "builder")
|
||||||
.addParameter(String::class.java, "name")
|
.addParameter(String::class.java, "name")
|
||||||
.addParameter(Any::class.java, "value")
|
.addParameter(Object::class.java, "value")
|
||||||
.addStatement("builder.append(\"\\n \").append(name).append(\" = \")")
|
.addStatement("builder.append(\"\\n \").append(name).append(\" = \")")
|
||||||
.addStatement(
|
.addStatement(
|
||||||
"\$T lines = \$T.toString(value).split(\"\\n\")",
|
"\$T lines = \$T.toString(value).split(\"\\n\")",
|
||||||
|
|||||||
@@ -0,0 +1,86 @@
|
|||||||
|
# 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.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-core:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown:5.0.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||||
|
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||||
|
com.squareup:kotlinpoet:1.6.0=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,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.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,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.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:collections:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:word:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jsr223:2.2.20=testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm-host:2.2.20=testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
|
||||||
|
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,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains:markdown:0.7.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=runtimeClasspath,testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,10 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklKotlinLibrary")
|
pklKotlinLibrary
|
||||||
id("pklPublishLibrary")
|
pklPublishLibrary
|
||||||
id("pklJavaExecutable")
|
pklJavaExecutable
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
@@ -29,7 +29,7 @@ publishing {
|
|||||||
"""
|
"""
|
||||||
Kotlin source code generator that generates corresponding Kotlin classes for Pkl classes,
|
Kotlin source code generator that generates corresponding Kotlin classes for Pkl classes,
|
||||||
simplifying consumption of Pkl configuration as statically typed Kotlin objects.
|
simplifying consumption of Pkl configuration as statically typed Kotlin objects.
|
||||||
"""
|
"""
|
||||||
.trimIndent()
|
.trimIndent()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,96 @@
|
|||||||
|
# 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.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-core:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown:5.0.3=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown:3.0.1=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||||
|
com.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.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,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.0=svmClasspath
|
||||||
|
org.graalvm.espresso:espresso-svm:25.0.0=svmClasspath
|
||||||
|
org.graalvm.nativeimage:native-image-base:25.0.0=svmClasspath
|
||||||
|
org.graalvm.nativeimage:objectfile:25.0.0=svmClasspath
|
||||||
|
org.graalvm.nativeimage:pointsto:25.0.0=svmClasspath
|
||||||
|
org.graalvm.nativeimage:svm-capnproto-runtime:25.0.0=svmClasspath
|
||||||
|
org.graalvm.nativeimage:svm-configure:25.0.0=svmClasspath
|
||||||
|
org.graalvm.nativeimage:svm:25.0.0=svmClasspath
|
||||||
|
org.graalvm.nativeimage:truffle-runtime-svm:25.0.0=svmClasspath
|
||||||
|
org.graalvm.polyglot:polyglot:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:collections:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:jniutils:25.0.0=svmClasspath
|
||||||
|
org.graalvm.sdk:nativeimage-libgraal:25.0.0=svmClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:word:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=runtimeClasspath,svmClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-compiler:25.0.0=svmClasspath
|
||||||
|
org.graalvm.truffle:truffle-runtime:25.0.0=svmClasspath
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,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,kotlinCompilerPluginClasspathSvm,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains:markdown-jvm:0.7.3=runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains:markdown:0.7.3=implementationDependenciesMetadata,runtimeClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=runtimeClasspath,svmClasspath,testRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=runtimeClasspath,svmClasspath,testRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=runtimeClasspath,svmClasspath,testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,signatures,sourcesJar,svmAnnotationProcessor,svmApiDependenciesMetadata,svmCompileClasspath,svmCompileOnlyDependenciesMetadata,svmImplementationDependenciesMetadata,svmIntransitiveDependenciesMetadata,svmKotlinScriptDefExtensions,svmRuntimeClasspath,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,9 +14,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklKotlinLibrary")
|
pklKotlinLibrary
|
||||||
id("pklPublishLibrary")
|
pklPublishLibrary
|
||||||
}
|
}
|
||||||
|
|
||||||
val svmClasspath: Configuration by configurations.creating
|
val svmClasspath: Configuration by configurations.creating
|
||||||
|
|||||||
@@ -24,8 +24,6 @@ import kotlin.io.path.writeText
|
|||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.assertThrows
|
import org.junit.jupiter.api.assertThrows
|
||||||
import org.junit.jupiter.api.condition.DisabledOnJre
|
|
||||||
import org.junit.jupiter.api.condition.JRE
|
|
||||||
import org.junit.jupiter.api.io.TempDir
|
import org.junit.jupiter.api.io.TempDir
|
||||||
import org.pkl.commons.cli.commands.BaseCommand
|
import org.pkl.commons.cli.commands.BaseCommand
|
||||||
import org.pkl.commons.cli.commands.ProjectOptions
|
import org.pkl.commons.cli.commands.ProjectOptions
|
||||||
@@ -115,8 +113,8 @@ class CliCommandTest {
|
|||||||
.resolve("PklProject")
|
.resolve("PklProject")
|
||||||
.writeText(
|
.writeText(
|
||||||
"""
|
"""
|
||||||
amends "pkl:Project"
|
amends "pkl:Project"
|
||||||
"""
|
"""
|
||||||
.trimIndent()
|
.trimIndent()
|
||||||
)
|
)
|
||||||
cmd.parse(arrayOf("--working-dir=$tempDir"))
|
cmd.parse(arrayOf("--working-dir=$tempDir"))
|
||||||
@@ -131,8 +129,8 @@ class CliCommandTest {
|
|||||||
.resolve("PklProject")
|
.resolve("PklProject")
|
||||||
.writeText(
|
.writeText(
|
||||||
"""
|
"""
|
||||||
amends "pkl:Project"
|
amends "pkl:Project"
|
||||||
"""
|
"""
|
||||||
.trimIndent()
|
.trimIndent()
|
||||||
)
|
)
|
||||||
cmd.parse(arrayOf("--working-dir=$tempDir"))
|
cmd.parse(arrayOf("--working-dir=$tempDir"))
|
||||||
@@ -150,15 +148,15 @@ class CliCommandTest {
|
|||||||
.resolve("PklProject")
|
.resolve("PklProject")
|
||||||
.writeText(
|
.writeText(
|
||||||
"""
|
"""
|
||||||
amends "pkl:Project"
|
amends "pkl:Project"
|
||||||
|
|
||||||
package {
|
package {
|
||||||
name = "foo"
|
name = "foo"
|
||||||
baseUri = "package://example.com/foo"
|
baseUri = "package://example.com/foo"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
packageZipUrl = "https://example.com/foo@\(version).zip"
|
packageZipUrl = "https://example.com/foo@\(version).zip"
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
.trimIndent()
|
.trimIndent()
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -189,14 +187,14 @@ class CliCommandTest {
|
|||||||
.resolve("PklProject")
|
.resolve("PklProject")
|
||||||
.writeText(
|
.writeText(
|
||||||
"""
|
"""
|
||||||
amends "pkl:Project"
|
amends "pkl:Project"
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
["foo"] {
|
["foo"] {
|
||||||
uri = "package://example.com/foo@1.2.3"
|
uri = "package://example.com/foo@1.2.3"
|
||||||
}
|
|
||||||
}
|
}
|
||||||
"""
|
}
|
||||||
|
"""
|
||||||
.trimIndent()
|
.trimIndent()
|
||||||
)
|
)
|
||||||
cmd.parse(arrayOf("--working-dir=$tempDir"))
|
cmd.parse(arrayOf("--working-dir=$tempDir"))
|
||||||
@@ -238,12 +236,10 @@ class CliCommandTest {
|
|||||||
}
|
}
|
||||||
traceMode = "pretty"
|
traceMode = "pretty"
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
.trimIndent()
|
.trimIndent()
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
// TODO: why does assertThat(builder.color).isFalse fail on these JDKs?
|
|
||||||
@DisabledOnJre(JRE.JAVA_22, JRE.JAVA_23, JRE.JAVA_24)
|
|
||||||
fun `test that --omit-project-settings actually omits project settings`(@TempDir tempDir: Path) {
|
fun `test that --omit-project-settings actually omits project settings`(@TempDir tempDir: Path) {
|
||||||
val project = tempDir.resolve("PklProject").writeString(projectWithAllEvaluatorSettings)
|
val project = tempDir.resolve("PklProject").writeString(projectWithAllEvaluatorSettings)
|
||||||
cmd.parse(arrayOf("--working-dir=$tempDir", "--omit-project-settings"))
|
cmd.parse(arrayOf("--working-dir=$tempDir", "--omit-project-settings"))
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# 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.17.7=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,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.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,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,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=compileClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,8 +16,8 @@
|
|||||||
import java.security.MessageDigest
|
import java.security.MessageDigest
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklKotlinLibrary")
|
pklKotlinLibrary
|
||||||
}
|
}
|
||||||
|
|
||||||
// note: no need to publish this library
|
// note: no need to publish this library
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
# 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.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,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.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,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,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,compileOnlyDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,9 +14,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklKotlinLibrary")
|
pklKotlinLibrary
|
||||||
id("pklPublishLibrary")
|
pklPublishLibrary
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -26,7 +26,7 @@ fun <This, Return> lazyWithReceiver(
|
|||||||
class LazyWithReceiver<This, out Return>(val initializer: This.() -> Return) {
|
class LazyWithReceiver<This, out Return>(val initializer: This.() -> Return) {
|
||||||
private val values = WeakHashMap<This, Return>()
|
private val values = WeakHashMap<This, Return>()
|
||||||
|
|
||||||
private val lock = Any()
|
private val lock = Object()
|
||||||
|
|
||||||
operator fun getValue(thisValue: This, property: KProperty<*>): Return =
|
operator fun getValue(thisValue: This, property: KProperty<*>): Return =
|
||||||
synchronized(lock) { values.getOrPut(thisValue) { thisValue.initializer() } }
|
synchronized(lock) { values.getOrPut(thisValue) { thisValue.initializer() } }
|
||||||
|
|||||||
@@ -0,0 +1,86 @@
|
|||||||
|
# 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.ajalt.clikt:clikt-core-jvm:5.0.3=pklCodegenJava
|
||||||
|
com.github.ajalt.clikt:clikt-core:5.0.3=pklCodegenJava
|
||||||
|
com.github.ajalt.clikt:clikt-jvm:5.0.3=pklCodegenJava
|
||||||
|
com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=pklCodegenJava
|
||||||
|
com.github.ajalt.clikt:clikt-markdown:5.0.3=pklCodegenJava
|
||||||
|
com.github.ajalt.clikt:clikt:5.0.3=pklCodegenJava
|
||||||
|
com.github.ajalt.colormath:colormath-jvm:3.6.0=pklCodegenJava
|
||||||
|
com.github.ajalt.colormath:colormath:3.6.0=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-core-jvm:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-core:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-jvm:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant-markdown:3.0.1=pklCodegenJava
|
||||||
|
com.github.ajalt.mordant:mordant:3.0.1=pklCodegenJava
|
||||||
|
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||||
|
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||||
|
com.palantir.javapoet:javapoet:0.7.0=pklCodegenJava
|
||||||
|
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
|
||||||
|
io.leangen.geantyref:geantyref:1.3.16=compileClasspath,implementationDependenciesMetadata,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
|
||||||
|
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
|
||||||
|
javax.inject:javax.inject:1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.java.dev.jna:jna:5.14.0=pklCodegenJava
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,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.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:collections:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:word:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=pklCodegenJava,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=pklCodegenJava,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,pklCodegenJava,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,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,pklCodegenJava,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains:markdown-jvm:0.7.3=pklCodegenJava
|
||||||
|
org.jetbrains:markdown:0.7.3=pklCodegenJava
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=compileClasspath,pklCodegenJava,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=pklCodegenJava,runtimeClasspath,testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,apiDependenciesMetadata,compileOnlyDependenciesMetadata,fatJar,firstPartySourcesJars,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,11 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklJavaLibrary")
|
pklJavaLibrary
|
||||||
id("pklFatJar")
|
pklFatJar
|
||||||
id("pklPublishLibrary")
|
pklPublishLibrary
|
||||||
id("pklJSpecify")
|
|
||||||
signing
|
signing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -17,17 +17,18 @@ package org.pkl.config.java;
|
|||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import org.jspecify.annotations.Nullable;
|
import java.util.Map;
|
||||||
import org.pkl.config.java.mapper.ConversionException;
|
import org.pkl.config.java.mapper.ConversionException;
|
||||||
import org.pkl.config.java.mapper.ValueMapper;
|
import org.pkl.config.java.mapper.ValueMapper;
|
||||||
|
import org.pkl.core.Composite;
|
||||||
import org.pkl.core.Evaluator;
|
import org.pkl.core.Evaluator;
|
||||||
|
import org.pkl.core.PklBinaryDecoder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A root, intermediate, or leaf node in a configuration tree. Child nodes can be obtained by name
|
* A root, intermediate, or leaf node in a configuration tree. Child nodes can be obtained by name
|
||||||
* using {@link #get(String)}. To consume the node's composite or scalar value, convert the value to
|
* using {@link #get(String)}. To consume the node's composite or scalar value, convert the value to
|
||||||
* the desired Java type, using one of the provided {@link #as} methods.
|
* the desired Java type, using one of the provided {@link #as} methods.
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings({"DeprecatedIsStillUsed"})
|
|
||||||
public interface Config {
|
public interface Config {
|
||||||
/**
|
/**
|
||||||
* The dot-separated name of this node. For example, the node reached using {@code
|
* The dot-separated name of this node. For example, the node reached using {@code
|
||||||
@@ -54,7 +55,7 @@ public interface Config {
|
|||||||
*
|
*
|
||||||
* @throws ConversionException if the value cannot be converted to the given type
|
* @throws ConversionException if the value cannot be converted to the given type
|
||||||
*/
|
*/
|
||||||
<T extends @Nullable Object> T as(Class<T> type);
|
<T> T as(Class<T> type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts this node's value to the given {@link Type}.
|
* Converts this node's value to the given {@link Type}.
|
||||||
@@ -63,60 +64,59 @@ public interface Config {
|
|||||||
*
|
*
|
||||||
* @throws ConversionException if the value cannot be converted to the given type
|
* @throws ConversionException if the value cannot be converted to the given type
|
||||||
*/
|
*/
|
||||||
<T extends @Nullable Object> T as(Type type);
|
<T> T as(Type type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts this node's value to the given {@link JavaType}.
|
* Converts this node's value to the given {@link JavaType}.
|
||||||
*
|
*
|
||||||
* @throws ConversionException if the value cannot be converted to the given type
|
* @throws ConversionException if the value cannot be converted to the given type
|
||||||
*/
|
*/
|
||||||
<T extends @Nullable Object> T as(JavaType<T> type);
|
<T> T as(JavaType<T> type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes a config from the supplied byte array.
|
* Decode a config from the supplied byte array.
|
||||||
*
|
*
|
||||||
* @return the decoded config
|
* @return the encoded config
|
||||||
* @deprecated Use {@code ConfigDecoderBuilder...build().decode(bytes)} instead. For a direct
|
|
||||||
* equivalent, use {@code ConfigDecoder.preconfigured().setValueMapper(mapper).decode(bytes)}.
|
|
||||||
*/
|
*/
|
||||||
@Deprecated(forRemoval = true)
|
|
||||||
static Config fromPklBinary(byte[] bytes, ValueMapper mapper) {
|
static Config fromPklBinary(byte[] bytes, ValueMapper mapper) {
|
||||||
return ConfigDecoder.preconfigured().setValueMapper(mapper).decode(bytes);
|
return makeConfig(PklBinaryDecoder.decode(bytes), mapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes a config from the supplied byte array using a preconfigured {@link ValueMapper}.
|
* Decode a config from the supplied byte array using a preconfigured {@link ValueMapper}.
|
||||||
*
|
*
|
||||||
* @return the decoded config
|
* @return the encoded config
|
||||||
* @deprecated Use {@code ConfigDecoder.preconfigured().decode(bytes)} instead.
|
|
||||||
*/
|
*/
|
||||||
@Deprecated(forRemoval = true)
|
|
||||||
static Config fromPklBinary(byte[] bytes) {
|
static Config fromPklBinary(byte[] bytes) {
|
||||||
return ConfigDecoder.preconfigured().decode(bytes);
|
return fromPklBinary(bytes, ValueMapper.preconfigured());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes a config from the supplied {@link InputStream} using a preconfigured {@link
|
* Decode a config from the supplied {@link InputStream} using a preconfigured {@link
|
||||||
* ValueMapper}.
|
* ValueMapper}.
|
||||||
*
|
*
|
||||||
* @return the decoded config
|
* @return the encoded config
|
||||||
* @deprecated Use {@code ConfigDecoderBuilder...build().decode(inputStream)} instead. For a
|
|
||||||
* direct equivalent, use {@code
|
|
||||||
* ConfigDecoder.preconfigured().setValueMapper(mapper).decode(inputStream)}.
|
|
||||||
*/
|
*/
|
||||||
@Deprecated(forRemoval = true)
|
|
||||||
static Config fromPklBinary(InputStream inputStream, ValueMapper mapper) {
|
static Config fromPklBinary(InputStream inputStream, ValueMapper mapper) {
|
||||||
return ConfigDecoder.preconfigured().setValueMapper(mapper).decode(inputStream);
|
return makeConfig(PklBinaryDecoder.decode(inputStream), mapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes a config from the supplied {@link InputStream}.
|
* Decode a config from the supplied {@link InputStream}.
|
||||||
*
|
*
|
||||||
* @return the decoded config
|
* @return the encoded config
|
||||||
* @deprecated Use {@code ConfigDecoder.preconfigured().decode(inputStream)} instead.
|
|
||||||
*/
|
*/
|
||||||
@Deprecated(forRemoval = true)
|
|
||||||
static Config fromPklBinary(InputStream inputStream) {
|
static Config fromPklBinary(InputStream inputStream) {
|
||||||
return ConfigDecoder.preconfigured().decode(inputStream);
|
return fromPklBinary(inputStream, ValueMapper.preconfigured());
|
||||||
|
}
|
||||||
|
|
||||||
|
static Config makeConfig(Object decoded, ValueMapper mapper) {
|
||||||
|
if (decoded instanceof Composite composite) {
|
||||||
|
return new CompositeConfig("", mapper, composite);
|
||||||
|
}
|
||||||
|
if (decoded instanceof Map<?, ?> map) {
|
||||||
|
return new MapConfig("", mapper, map);
|
||||||
|
}
|
||||||
|
return new LeafConfig("", mapper, decoded);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.pkl.config.java;
|
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import org.pkl.config.java.mapper.ValueMapper;
|
|
||||||
|
|
||||||
/** Decodes Pkl binary data into {@link Config} objects. */
|
|
||||||
public interface ConfigDecoder {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a preconfigured decoder that uses {@link ValueMapper#preconfigured()}.
|
|
||||||
*
|
|
||||||
* <p>For more control over configuration, use {@link ConfigDecoderBuilder}.
|
|
||||||
*
|
|
||||||
* @return a preconfigured decoder
|
|
||||||
*/
|
|
||||||
static ConfigDecoder preconfigured() {
|
|
||||||
return ConfigDecoderBuilder.preconfigured().build();
|
|
||||||
}
|
|
||||||
|
|
||||||
ValueMapper getValueMapper();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a copy of this decoder with the supplied value mapper.
|
|
||||||
*
|
|
||||||
* @param mapper the value mapper to use
|
|
||||||
* @return a decoder with the supplied value mapper
|
|
||||||
*/
|
|
||||||
ConfigDecoder setValueMapper(ValueMapper mapper);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Decodes configuration from the supplied byte array.
|
|
||||||
*
|
|
||||||
* @param bytes the data to decode
|
|
||||||
* @return the decoded configuration
|
|
||||||
*/
|
|
||||||
Config decode(byte[] bytes);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Decodes configuration from the supplied input stream.
|
|
||||||
*
|
|
||||||
* <p>This method does not close the stream; the caller is responsible for closing it.
|
|
||||||
*
|
|
||||||
* @param inputStream the data to decode
|
|
||||||
* @return the decoded configuration
|
|
||||||
*/
|
|
||||||
Config decode(InputStream inputStream);
|
|
||||||
}
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.pkl.config.java;
|
|
||||||
|
|
||||||
import org.pkl.config.java.mapper.ValueMapperBuilder;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Builder for {@link ConfigDecoder} instances.
|
|
||||||
*
|
|
||||||
* <p>Use {@link #preconfigured()} to obtain a preconfigured builder, or {@link #unconfigured()} for
|
|
||||||
* full control over its configuration.
|
|
||||||
*/
|
|
||||||
public final class ConfigDecoderBuilder {
|
|
||||||
private ValueMapperBuilder mapperBuilder;
|
|
||||||
|
|
||||||
private ConfigDecoderBuilder(ValueMapperBuilder mapperBuilder) {
|
|
||||||
this.mapperBuilder = mapperBuilder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a preconfigured builder that uses {@link ValueMapperBuilder#preconfigured()}.
|
|
||||||
*
|
|
||||||
* @return a preconfigured builder
|
|
||||||
*/
|
|
||||||
public static ConfigDecoderBuilder preconfigured() {
|
|
||||||
return new ConfigDecoderBuilder(ValueMapperBuilder.preconfigured());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns an unconfigured builder that uses {@link ValueMapperBuilder#unconfigured()}.
|
|
||||||
*
|
|
||||||
* @return an unconfigured builder
|
|
||||||
*/
|
|
||||||
public static ConfigDecoderBuilder unconfigured() {
|
|
||||||
return new ConfigDecoderBuilder(ValueMapperBuilder.unconfigured());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the value mapper builder used by this decoder builder.
|
|
||||||
*
|
|
||||||
* @return the value mapper builder
|
|
||||||
*/
|
|
||||||
public ValueMapperBuilder getValueMapperBuilder() {
|
|
||||||
return mapperBuilder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value mapper builder used by this decoder builder.
|
|
||||||
*
|
|
||||||
* @param mapperBuilder the value mapper builder to use
|
|
||||||
* @return this builder
|
|
||||||
*/
|
|
||||||
public ConfigDecoderBuilder setValueMapperBuilder(ValueMapperBuilder mapperBuilder) {
|
|
||||||
this.mapperBuilder = mapperBuilder;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Builds a {@link ConfigDecoder} using the current configuration.
|
|
||||||
*
|
|
||||||
* @return the configured decoder
|
|
||||||
*/
|
|
||||||
public ConfigDecoder build() {
|
|
||||||
return new ConfigDecoderImpl(mapperBuilder.build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.pkl.config.java;
|
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import org.pkl.config.java.mapper.ValueMapper;
|
|
||||||
import org.pkl.core.PklBinaryDecoder;
|
|
||||||
|
|
||||||
final class ConfigDecoderImpl implements ConfigDecoder {
|
|
||||||
private final ValueMapper mapper;
|
|
||||||
|
|
||||||
ConfigDecoderImpl(ValueMapper mapper) {
|
|
||||||
this.mapper = mapper;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ValueMapper getValueMapper() {
|
|
||||||
return mapper;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ConfigDecoder setValueMapper(ValueMapper mapper) {
|
|
||||||
return new ConfigDecoderImpl(mapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Config decode(byte[] bytes) {
|
|
||||||
return ConfigUtils.createConfig(PklBinaryDecoder.decode(bytes), mapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Config decode(InputStream inputStream) {
|
|
||||||
return ConfigUtils.createConfig(PklBinaryDecoder.decode(inputStream), mapper);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -21,7 +21,6 @@ import java.util.Collection;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import org.jspecify.annotations.Nullable;
|
|
||||||
import org.pkl.config.java.mapper.ValueMapperBuilder;
|
import org.pkl.config.java.mapper.ValueMapperBuilder;
|
||||||
import org.pkl.core.EvaluatorBuilder;
|
import org.pkl.core.EvaluatorBuilder;
|
||||||
import org.pkl.core.SecurityManager;
|
import org.pkl.core.SecurityManager;
|
||||||
@@ -29,6 +28,7 @@ import org.pkl.core.StackFrameTransformer;
|
|||||||
import org.pkl.core.http.HttpClient;
|
import org.pkl.core.http.HttpClient;
|
||||||
import org.pkl.core.project.DeclaredDependencies;
|
import org.pkl.core.project.DeclaredDependencies;
|
||||||
import org.pkl.core.project.Project;
|
import org.pkl.core.project.Project;
|
||||||
|
import org.pkl.core.util.Nullable;
|
||||||
|
|
||||||
/** A builder for {@link ConfigEvaluator}s. */
|
/** A builder for {@link ConfigEvaluator}s. */
|
||||||
@SuppressWarnings({"UnusedReturnValue", "unused"})
|
@SuppressWarnings({"UnusedReturnValue", "unused"})
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -15,8 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.pkl.config.java;
|
package org.pkl.config.java;
|
||||||
|
|
||||||
import static org.pkl.config.java.ConfigUtils.createConfig;
|
|
||||||
|
|
||||||
import org.pkl.config.java.mapper.ValueMapper;
|
import org.pkl.config.java.mapper.ValueMapper;
|
||||||
import org.pkl.core.Evaluator;
|
import org.pkl.core.Evaluator;
|
||||||
import org.pkl.core.ModuleSource;
|
import org.pkl.core.ModuleSource;
|
||||||
@@ -39,13 +37,13 @@ final class ConfigEvaluatorImpl implements ConfigEvaluator {
|
|||||||
@Override
|
@Override
|
||||||
public Config evaluateOutputValue(ModuleSource moduleSource) {
|
public Config evaluateOutputValue(ModuleSource moduleSource) {
|
||||||
var value = evaluator.evaluateOutputValue(moduleSource);
|
var value = evaluator.evaluateOutputValue(moduleSource);
|
||||||
return createConfig(value, mapper);
|
return Config.makeConfig(value, mapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Config evaluateExpression(ModuleSource moduleSource, String expression) {
|
public Config evaluateExpression(ModuleSource moduleSource, String expression) {
|
||||||
var value = evaluator.evaluateExpression(moduleSource, expression);
|
var value = evaluator.evaluateExpression(moduleSource, expression);
|
||||||
return createConfig(value, mapper);
|
return Config.makeConfig(value, mapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.pkl.config.java;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import org.pkl.config.java.mapper.ValueMapper;
|
|
||||||
import org.pkl.core.Composite;
|
|
||||||
|
|
||||||
final class ConfigUtils {
|
|
||||||
private ConfigUtils() {}
|
|
||||||
|
|
||||||
static Config createConfig(Object value, ValueMapper mapper) {
|
|
||||||
if (value instanceof Composite composite) {
|
|
||||||
return new CompositeConfig("", mapper, composite);
|
|
||||||
}
|
|
||||||
if (value instanceof Map<?, ?> map) {
|
|
||||||
return new MapConfig("", mapper, map);
|
|
||||||
}
|
|
||||||
return new LeafConfig("", mapper, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -18,9 +18,9 @@ package org.pkl.config.java;
|
|||||||
import java.lang.reflect.ParameterizedType;
|
import java.lang.reflect.ParameterizedType;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import org.jspecify.annotations.Nullable;
|
|
||||||
import org.pkl.config.java.mapper.Types;
|
import org.pkl.config.java.mapper.Types;
|
||||||
import org.pkl.core.Pair;
|
import org.pkl.core.Pair;
|
||||||
|
import org.pkl.core.util.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runtime representation of a possibly parameterized Java type. Factory methods are provided to
|
* Runtime representation of a possibly parameterized Java type. Factory methods are provided to
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -20,10 +20,10 @@ import java.io.UncheckedIOException;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import org.jspecify.annotations.Nullable;
|
|
||||||
import org.pkl.config.java.InvalidMappingException;
|
import org.pkl.config.java.InvalidMappingException;
|
||||||
import org.pkl.core.PClassInfo;
|
import org.pkl.core.PClassInfo;
|
||||||
import org.pkl.core.util.IoUtils;
|
import org.pkl.core.util.IoUtils;
|
||||||
|
import org.pkl.core.util.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Describes mappings of Pkl class names to their corresponding Java classes.
|
* Describes mappings of Pkl class names to their corresponding Java classes.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user