Commit Graph

108 Commits

Author SHA1 Message Date
Islon Scherer
8dc258ef7d fix bug with for generator variables in mixin (#297) 2024-03-07 20:47:21 +01:00
Daniel Chao
9defe868c0 Clean up http-client changes (#295)
* pkl-excutor tests: symlink 0.25.0 distribution into pkl-executable/build
* Use `IoUtils.getPklHomeDir` in HttpClientBuilder
* Simplify Exceptions.java
* Enable testing for older pkl-executor distribution
2024-03-07 10:43:04 -08:00
d4wae89d498
3fb1f03780 Fix missing closing quotes in Local dependencies #298 (#299)
Fix missing closing quotes in 'Local Dependencies' section of index.adoc to ensure syntax correctness.
2024-03-07 10:42:10 -08:00
translatenix
3f3dfdeb1e Use java.net.http.HttpClient instead of java.net.Http(s)URLConnection (#217)
Moving to java.net.http.HttpClient brings many benefits, including
HTTP/2 support and the ability to make asynchronous requests.

Major additions and changes:
- Introduce a lightweight org.pkl.core.http.HttpClient API.
  This keeps some flexibility and allows to enforce behavior
  such as setting the User-Agent header.
- Provide an implementation that delegates to java.net.http.HttpClient.
- Use HttpClient for all HTTP(s) requests across the codebase.
  This required adding an HttpClient parameter to constructors and
  factory methods of multiple classes, some of which are public APIs.
- Manage CA certificates per HTTP client instead of per JVM.
  This makes it unnecessary to set JVM-wide system/security properties
  and default SSLSocketFactory's.
- Add executor v2 options to the executor SPI
- Add pkl-certs as a new artifact, and remove certs from pkl-commons-cli artifact

Each HTTP client maintains its own connection pool and SSLContext.
For efficiency reasons, It's best to reuse clients whenever feasible.
To avoid memory leaks, clients are not stored in static fields.

HTTP clients are expensive to create. For this reason,
EvaluatorBuilder defaults to a "lazy" client that creates the underlying
java.net.http.HttpClient on the first send (which may never happen).
2024-03-06 10:25:56 -08:00
Daniel Chao
106743354c Improve CircleCI builds (#294)
* Prevent build_artifacts.txt files from being published as
  GitHub releases
* Bump version to 1.0.2; make PRBs not depend on flakey pr-approval job
2024-03-06 09:25:40 -08:00
Daniel Chao
11f07d1ce8 Revert "Add setting for Kotlin package to codegen (#194)" (#271)
This reverts commit 7f404fff49.

The package is derived from the module name.
Having `module com.example.Foo` in Pkl
will create Kotlin `package com.example`.

Eventually, we may want to introduce a way to map
Pkl names to package names that provides finer
controls to the code generator.
2024-03-04 07:51:39 -08:00
Daniel Chao
4f3858aaaf Docs fix: Container is not a type, add more types (#282)
Adjusts documentation to remove legacy `Container` type,
and add the rest of the generic types in the stdlib.
2024-03-04 07:49:44 -08:00
Daniel Chao
d7196e1207 Docs fix: Java 8 is not supported (#283)
Java 11 is the minimum version, rather than 8.
2024-03-04 07:49:20 -08:00
Islon Scherer
9c3a761cfa add test for checking out of sync snippets (#240) 2024-03-01 16:44:36 +01:00
Daniel Chao
0ae9e0c5c0 Add homebrew instructions to docs (#270) 2024-02-29 11:02:36 -08:00
Daniel Chao
6746040362 Fix: add missing "const" and "fixed" modifiers to reflect API (#265)
This fixes an issue where the reflect API does not show fixed or const modifiers on a property.
2024-02-29 07:02:09 -08:00
Daniel Chao
ddfab2a280 Add CI check to test patch file (#253)
This tests that the patch file can apply in CI.
2024-02-28 08:10:54 -08:00
Daniel Chao
b0161a4777 Add specification for language binding API (#257)
This adds documentation for how the language bindings works, for those that wish to create their own bindings.
2024-02-28 08:10:16 -08:00
Daniel Chao
2499e2c493 Fix patch file (#252)
This fixes an issue that is perventing our patch from from being
applied.
2024-02-27 07:50:00 -08:00
translatenix
813572f0d2 Add Pkl logo to README (#242) 2024-02-26 18:28:29 +01:00
Islon Scherer
90dedb7837 remove file with \ on the name as windows does not support it (#251) 2024-02-26 15:03:46 +01:00
translatenix
b7b0e65cc6 Delete unused image (#243)
This image is not used anywhere.
2024-02-23 14:50:48 -08:00
Daniel Chao
96c0e5fb03 Add com.oracle.truffle to shaded libs (#238)
This allows two libraries that use Truffle to coexist
in a host application.
2024-02-23 09:07:18 -08:00
translatenix
32bc75bf50 Add targets for org.pkl.core.util.Nullable (#235)
Also, change `java.time.@Nullable Duration` to `@Nullable java.time.Duration` to reduce the chance
of false positive errors in IDEs.
2024-02-23 07:07:08 -08:00
Sam Gammon
7f404fff49 Add setting for Kotlin package to codegen (#194) 2024-02-23 11:54:05 +01:00
translatenix
48a000aa1a Fix Gradle test tasks in pkl-server (#176)
Before: "test" runs no tests, "unitTests" runs all tests
After : "test" runs all tests
2024-02-22 19:58:06 -08:00
translatenix
2c54643037 Breaking: rename some CLI classes for consistency (#169)
CliDownloadPackageCommand -> CliPackageDownloader (consistent with CliProjectPackager/CliProjectResolver)
CliAbstractProjectCommand -> CliProjectCommand (consistent with CliCommand)
2024-02-22 19:53:01 -08:00
translatenix
a85ffd3cab Order entries alphabetically (as stated) (#236)
Also remove an obsolete comment.
2024-02-22 17:04:20 -08:00
translatenix
115e775d1b Fix Gradle build warning (#232)
The warning was introduced by 1e502009.
2024-02-22 15:06:17 -08:00
translatenix
d756dff0e7 Delete stale files in LanguageSnippetTests/output
When I delete pkl-core/src/test/files/LanguageSnippetTests/output and
run "gw test", most output files are regenerated, but 46 of them aren't.
I assume these are stale files that should be deleted.
2024-02-22 15:05:14 +00:00
Mitch Capper
9cc1796429 Minor development/contributing/ci doc links / additions 2024-02-22 15:04:12 +00:00
Sam Gammon
eb170017f6 Fix dropped implementSerializable flag
Fixes and closes apple/pkl#191

Signed-off-by: Sam Gammon <sam@elide.ventures>
2024-02-22 13:23:09 +00:00
Zack McCauley
8f130d8d49 Fix multiple output example code (#205) 2024-02-22 10:28:23 +01:00
Islon Scherer
c652bbe5cd fix typo in doc for Listing default (#224) 2024-02-21 18:56:11 +01:00
Sam Gammon
ca31185302 Move tool versions to Version Catalog
- fix: make version catalog accessible from `buildSrc` plugins
- chore: declare `googleFormatVersion` in version catalog
- chore: declare `ktfmt` in version catalog

Relates-To: apple/pkl#204
Signed-off-by: Sam Gammon <sam@elide.ventures>
2024-02-21 12:01:49 +00:00
translatenix
21e0e149ac Tweak User-Agent header
It is customary to separate elements with a semicolon.
2024-02-21 11:40:46 +00:00
Sam Gammon
1e50200969 Use Gradle typed project accessors
This change activates the `TYPESAFE_PROJECT_ACCESSORS` feature
preview in Gradle, and switches to such accessors instead of
string-based project references, where possible

Relates-To: apple/pkl#204
Signed-off-by: Sam Gammon <sam@elide.ventures>
2024-02-21 11:36:02 +00:00
Sam Gammon
cb33a7cdb0 Skip POM validation for unpublished projects
This small change fixes a bug introduced by the `validatePom` task
within the `pklPublishLibrary` plugin. When running project-wide
tasks like `./gradle tasks`, projects which don't provide a POM
fail the build, because the `generatePomFileForLibraryPublication`
cannot be found, but it is expected to be present.

Fixes and closes apple/pkl#215

Signed-off-by: Sam Gammon <sam@elide.ventures>
2024-02-21 11:32:47 +00:00
Sam Gammon
fc0f6f1ef0 Add IDEA project icon
Adds an icon for the Pkl project which is used in IDEA's "New UI"
when opening Pkl
2024-02-21 11:31:22 +00:00
Islon Scherer
611ab3b55c make reflected values renderable (#170) 2024-02-21 09:57:08 +01:00
GrantA
1cfcc5ec38 Fix incorrect filename in tutorial
The referenced filename should be `ispklTutorialPart3.pkl`, not `pklTutorial.pkl`.

Also, changes dates from 2023 to 2024

Co-authored-by: grant-abbott <gaabbott@apple.com>
2024-02-20 21:09:08 -08:00
Manuel Blanco
dd49236e00 Breaking: add private final modifier to InvalidMappingException fields. (#218)
This makes the class more closely follow Java conventions.
2024-02-20 21:04:25 -08:00
translatenix
6175d16d6a Update Gradle syntax in docs (#210)
Replace the legacy "compile" scope with "implementation".
This matches Maven Central's recommended syntax:
https://central.sonatype.com/artifact/org.pkl-lang/pkl-core
2024-02-20 21:02:45 -08:00
translatenix
91367ed065 Fix unnecessary temp path resolution in PackageResolvers (#219)
The only call site already resolved the path against tmpDir.
2024-02-20 20:47:28 -08:00
translatenix
ffc629f28f Fix concurrency bug in PackageResolvers (#220)
Access to field "isClosed" must be guarded.
2024-02-20 16:46:09 -08:00
translatenix
277f1e0cdb Mark generated/truffle as generated source dir in IntelliJ
This fixes many "unknown symbol" errors in Java source files.
2024-02-20 15:18:39 +00:00
translatenix
50a006b1b5 Simplify code in ResourceReaders (#175) 2024-02-19 13:48:56 +01:00
Lily Ballard
bbb4d828a0 Update Reserved keywords list in the Language Reference (#171)
`const` is not reserved, it has a meaning already. And `match` is not a keyword at all.
2024-02-19 13:37:47 +01:00
translatenix
3b2feb45cf Replace some if-statements with if-expressions (#168) 2024-02-16 14:41:41 +01:00
Josh B
0405db8d80 [pkl-doc] Sort stdlib first on the main page (#165) 2024-02-16 14:25:49 +01:00
Kushal Pisavadia
3d1db25864 Fix name resolution in typealias with constraint (#144)
The body of a typealias gets inlined into wherever the typealias
is used. This fixes a bug where the references in the typealias body can
resolve to the wrong value.
2024-02-15 13:28:10 -08:00
translatenix
1c29287344 Fix usage of wrong lock object (#163)
This changes the lock object to `lock`, which every other method is locking on.
2024-02-15 13:25:43 -08:00
Kushal Pisavadia
699cdc623e Update GraalVM to 22.3.3 (from 22.3.1) (#156)
This bumps GraalVM's version.

References:
- https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-22.3.3
- https://github.com/oracle/graal/compare/vm-22.3.1...vm-22.3.3
- https://www.graalvm.org/release-notes/22_3/
2024-02-15 09:48:15 -08:00
translatenix
810a755702 Fix typo in constructor parameter name (#162)
Breaking change: changes param name `noTranstive` to `noTransitive`.
2024-02-15 09:35:21 -08:00
translatenix
c3473cc626 Add Gradle task "testNative"
Support running native tests with "gw testNative" for consistency with "gw test".
2024-02-14 19:53:40 +00:00