dependabot[bot]
11b65e4d7a
Bump actions/setup-java from 5.1.0 to 5.2.0 ( #1416 )
2026-01-26 08:55:53 -08:00
Jen Basch
73264e8fd1
SPICE-0024: Annotation converters ( #1333 )
...
This enables defining declarative key and/or value transformations in
cases where neither `Class`- nor path-based converters can be applied
gracefully. It is also the only way to express transforming the
resulting property names in `Typed` objects without applying a converter
to the entire containing type, which is cumbersome at best.
SPICE: https://github.com/apple/pkl-evolution/pull/26
2026-01-23 12:44:41 -08:00
Daniel Chao
ed0cad668f
Fix Function.toString ( #1411 )
...
Fixes an issue where the underlying default Java toString() is leaking
through
2026-01-21 07:29:58 -08:00
Daniel Chao
03a7676e64
Implement power assertions ( #1384 )
...
This adds power assertions to Pkl!
This implements the SPICE described in
https://github.com/apple/pkl-evolution/pull/29
This follows the power assertions style of reporting also found in
Groovy, Kotlin, and others.
* Literal values are not emitted in the diagram
* Stdlib constructors of literals like `List(1, 2)` are also considered
literals
Power assertions are added to:
* Failing type constraints
* Failing test facts
Power assertions are implemented as a truffle instrument to observe
execution.
When an assertion fails, the instrument is created and the assertion is
run again to observe facts.
This incurs runtime overhead to collect facts, but has no impact on code
in the non-error case.
---------
Co-authored-by: Islon Scherer <islonscherer@gmail.com >
2026-01-20 21:41:33 -08:00
Daniel Chao
3cd294b62a
Add 'let' to list of control keywords ( #1409 )
...
Small improvement to syntax highlighting
2026-01-19 20:00:21 -08:00
Jen Basch
f6cfc82201
Bump pkl.impl.ghactions to version 1.3.3 ( #1408 )
...
Updates pkl.impl.ghactions package to version 1.3.3
2026-01-15 12:06:56 -08:00
Jen Basch
fd66438828
Bump pkl.impl.ghactions to version 1.3.2 ( #1403 )
...
Updates pkl.impl.ghactions package to version 1.3.2
2026-01-12 18:01:46 -08:00
Daniel Chao
b4bd292511
Handle IOException when creating PklProject.deps.json ( #1405 )
...
Fixes an issue that otherwise bubbles up as "An unexpected error has
occured".
2026-01-12 15:08:38 -08:00
Daniel Chao
f1c71bc9bb
Emit error stack trace on non Pkl exceptions ( #1402 )
...
If the thrown error is not a Pkl exception, some internal error
occurred, and we need to emit the stack trace for visibility.
2026-01-12 13:45:39 -08:00
Akshat Anand
9d385f2194
Fix super method call inside let expression ( #1383 )
...
Fixes #1309
The issue was that super calls were blocked inside let expressions
because:
1. The compiler's isClassMemberScope() check didn't skip over lambda
scopes created by let expressions
2. The runtime's findSupermethod() didn't traverse past VmFunction
owners to find the actual class prototype
Changes:
- SymbolTable.java: Updated isClassMemberScope() to skip lambda scopes
before checking if the parent is a class or module scope
- InvokeSuperMethodNode.java: Updated findSupermethod() to skip
VmFunction owners when looking for the class prototype
Added regression tests covering:
- Super method calls inside let expressions
- Super property access inside let expressions
- Nested let expressions with super calls
---------
Co-authored-by: Jen Basch <jbasch@apple.com >
2026-01-09 19:59:20 -08:00
Jen Basch
3595c03078
Fix spotless ratcheting on release branches ( #1401 )
2026-01-09 14:18:18 -08:00
Jen Basch
9b6f72d5d0
Fix doc links from pkl:base to pkl:math ( #1400 )
2026-01-09 11:30:56 -08:00
Daniel Chao
ac4f2fd9a6
Add isNotEmpty, isNotBlank methods ( #1396 )
...
Adds convenience methods `isNotEmpty` and `isNotBlank`. This borrows the
same methods from Kotlin.
This helps users write more fluent constraints, for example,
`foo.isNotEmpty.implies(bar)`.
Adds:
* List#isNotEmpty
* Map#isNotEmpty
* Set#isNotEmpty
* Mapping#isNotEmpty
* Listing#isNotEmpty
* String#isNotEmpty
* String#isNotBlank
2026-01-08 13:22:43 -08:00
Daniel Chao
14d58a17b0
Address warning diagnostics ( #1395 )
...
This addressess various warning diagnostics throughout the codebase.
2026-01-07 22:11:24 -08:00
Daniel Chao
474305c7b9
Use gradle/actions/setup-gradle ( #1397 )
...
This adds the setup-gradle action; which has the following improvements:
* Improved cacheing (compared to setup-java's Gradle cache)
* Validates the gradle wrapper jar
2026-01-07 21:10:07 -08:00
Daniel Chao
6b9c670cfd
Add syntax highlighting of Pkl code ( #1385 )
...
This adds syntax highlighting of Pkl code!
It adds highlighting for:
* Stack frames within error messages
* CLI REPL (highlights as you type, highlights error output)
* Power assertions (coming in https://github.com/apple/pkl/pull/1384 )
This uses the lexer for highlighting. It will highlight strings,
numbers, keywords, but doesn't understand how to highlight nodes like
types, function params, etc.
The reason for this is because a single line of code by itself may not
be grammatically valid.
2026-01-06 10:33:11 -08:00
Daniel Chao
4f4f03dbca
Fix cacheing of module type ( #1393 )
...
This fixes an issue where the `module` type is incorrectly cached.
2026-01-05 14:49:07 -08:00
Eduardo Aguilar Moreno
6cd03c7f56
Add pkl bom module ( #1390 )
...
This adds a module that will publish a bom file that will help consumers
align versions for all pkl artifacts using the single bom.
2026-01-05 14:47:28 -08:00
Daniel Chao
8f83885c75
Fix default value for non-final module type ( #1392 )
...
This fixes an issue where the `module` type produces the wrong default
value.
Closes #1391
2026-01-05 11:39:24 -08:00
Stefan M.
0a4281366f
Do not throw if output dir is symlink ( #1389 )
2026-01-05 10:16:32 -08:00
dependabot[bot]
35861240a0
Bump EnricoMi/publish-unit-test-result-action from 2.21.0 to 2.22.0 ( #1382 )
...
Bumps
[EnricoMi/publish-unit-test-result-action](https://github.com/enricomi/publish-unit-test-result-action )
from 2.21.0 to 2.22.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/enricomi/publish-unit-test-result-action/releases ">EnricoMi/publish-unit-test-result-action's
releases</a>.</em></p>
<blockquote>
<h2>v2.22.0</h2>
<p>Adds the following improvements:</p>
<ul>
<li>Upgrade all Python dependencies to latest version <a
href="https://redirect.github.com/enricomi/publish-unit-test-result-action/issues/710 ">#710</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/EnricoMi/publish-unit-test-result-action/compare/v2.21.0...v2.22.0 ">https://github.com/EnricoMi/publish-unit-test-result-action/compare/v2.21.0...v2.22.0 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="27d65e188e "><code>27d65e1</code></a>
Releasing v2.22.0</li>
<li><a
href="2deae407d7 "><code>2deae40</code></a>
Upgrade transient dependencies (<a
href="https://redirect.github.com/enricomi/publish-unit-test-result-action/issues/710 ">#710</a>)</li>
<li><a
href="a6d8f3d6ca "><code>a6d8f3d</code></a>
Add Ubuntu slim runner (<a
href="https://redirect.github.com/enricomi/publish-unit-test-result-action/issues/709 ">#709</a>)</li>
<li><a
href="d3ed9acf9b "><code>d3ed9ac</code></a>
CI: Merge check upgrades jobs into single job (<a
href="https://redirect.github.com/enricomi/publish-unit-test-result-action/issues/700 ">#700</a>)</li>
<li>See full diff in <a
href="34d7c956a5...27d65e188e ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-22 09:34:57 -08:00
Daniel Chao
3f4e894e43
Import release notes from 0.30.2 ( #1375 )
2025-12-15 13:14:18 -08:00
Daniel Chao
dcf3f24e3b
Sort list of repos alphabetically ( #1376 )
2025-12-15 12:48:26 -08:00
Daniel Chao
6614cf11fb
Add highlight.js and pkl-readers repo entries to README ( #1371 )
...
Co-authored-by: Jen Basch <jbasch94@gmail.com >
2025-12-15 11:28:30 -08:00
Daniel Chao
b92c773555
Bump pkl.impl.ghactions ( #1366 )
2025-12-12 11:30:47 -08:00
Daniel Chao
f528927797
Fix building of pkl-doc ( #1365 )
...
Ensure that `assembleNative` is called before testing the native
executable
2025-12-12 09:36:38 -08:00
Islon Scherer
41cf485ffb
Fix bug in parsing of super expression ( #1364 )
2025-12-12 18:02:48 +01:00
Daniel Chao
cd9cfaae8f
Bump pkl.impl.ghactions, update lockfile to not run ( #1362 )
2025-12-10 21:39:18 -08:00
Daniel Chao
2578703081
Bump versions, fix dependabot updates ( #1361 )
2025-12-10 18:03:32 -08:00
Daniel Chao
b170968e9e
Bump pkl.impl.ghactions to 1.1.0, add version locking. ( #1359 )
...
This adopts the version locking introduced in pkl.impl.ghactions@1.1.0.
2025-12-10 16:35:15 -08:00
Daniel Chao
32e9087da9
Fix formatting of nodes with no children ( #1351 )
...
For example, this fixes an issue where an empty module turns into ` \n`.
Closes https://github.com/apple/pkl/issues/1348
---------
Co-authored-by: Jen Basch <jbasch94@gmail.com >
2025-12-09 11:03:50 -08:00
Daniel Chao
9d41518553
Bump pkl.impl.ghactions to 1.0.1 ( #1358 )
2025-12-09 10:53:04 -08:00
Daniel Chao
b7ccc67bd8
Adjust CI to not publish test results for deploy-snapshot ( #1357 )
2025-12-08 09:56:57 -08:00
Daniel Chao
252f44728e
Adjust native lifecycle builds to not throw during configuration phase ( #1356 )
...
Allow Gradle to run other tasks on unsupported machines, but throw when
running native lifecycle tasks (e.g. `buildNative`).
2025-12-07 11:35:14 -08:00
Jen Basch
139f70bb79
Change pkl format --write to exit 0 when formatting violations are found ( #1340 )
2025-12-05 16:01:09 -08:00
Daniel Chao
2de1d5b9d2
Build linux executables that link to glibc 2.17 ( #1352 )
...
Fixes an unintentional breakage in 0.30.1 that bumped the required glibc to 2.34.
2025-12-05 15:24:27 -08:00
Jen Basch
81a4e687b4
Fix IDEA gradle project sync on Windows Aarch64 ( #1353 )
2025-12-05 14:53:06 -08:00
Daniel Chao
e1559c66ad
Fix CI build for pkldoc ( #1349 )
...
Fixes an issue where the executable is not built.
Haven't dug into why this broke; this was working just a little bit ago
(see
https://github.com/apple/pkl/actions/runs/19911073549/job/57079605641?pr=1342 ).
Nevertheless, the lifecycle job dependencies were a little wonky (test
should assemble first).
[native-pkl-doc]
2025-12-05 09:54:57 -08:00
Daniel Chao
c2d672e943
Omit superfluous newline when writing formatted content to stdout ( #1350 )
...
Fixes an issue where an extra newline is added when writing formatted
code to stdout.
Closes https://github.com/apple/pkl/issues/1346
2025-12-05 09:54:31 -08:00
Jen Basch
1d94ab5c3c
Prepare 0.30.1 release ( #1345 )
2025-12-03 21:13:36 -08:00
Jen Basch
c73fc87583
Fix release publishing ( #1343 )
2025-12-03 15:13:31 -08:00
Daniel Chao
bcbe1b8995
Fix testing of pkldoc executables ( #1342 )
...
These tests are actually not running right now.
2025-12-03 15:12:08 -08:00
Daniel Chao
c5b98d6510
CI job polish ( #1341 )
...
Avoids issues where setup-java post-task cacheing will hang with "device
or resource busy".
2025-12-03 15:11:33 -08:00
Jen Basch
db6ff394d7
Fix fetch depth for gradle-compatibility and java-executables-* CI jobs ( #1339 )
2025-12-03 10:34:03 -08:00
Daniel Chao
53f3be64f3
Fix parsing of URLs with plus signs ( #1335 )
...
This fixes an issue where URLs with schemes that contain `+`, `-`, and
`.` would not be parsed correctly.
For example, `foo+bar:///?baz.pkl` would turn into
`foo+bar:///%3Fbaz.pkl`. The query param is lost, and turned into the
path.
2025-12-03 10:11:23 -08:00
Jen Basch
d1c652f736
Vendor paguro's RrbTree, fix an int overflow breaking large Lists ( #1337 )
2025-12-03 09:02:17 -08:00
Islon Scherer
6c3683c55e
Fix snapshot publishing ( #1330 )
2025-11-26 09:17:14 +01:00
Spencer Phillip Young
cc02b6b685
Fix newline checks in parser ( #1328 )
2025-11-24 14:40:54 +01:00
Jen Basch
f4938dccca
Add support for evaluating module output and expressions to ConfigEvaluator ( #1297 )
2025-11-19 15:47:12 -08:00
Jen Basch
67f1ff5ab8
Update CLI docs to clarify that --version only applies to the root command ( #1326 )
2025-11-18 21:08:03 -08:00