Skip to content

Commit

Permalink
Update release notes, and versions.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jcflack committed Jun 13, 2023
1 parent 27a597e commit 59afb0f
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 17 deletions.
16 changes: 10 additions & 6 deletions src/site/markdown/build/versions.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Versions of external packages needed to build and use PL/Java

As of mid-2020, the following version constraints are known.
As of mid-2023, the following version constraints are known.

## Java

Expand All @@ -24,6 +24,11 @@ itself was built with, as long as that later JRE version is used at run time.
That also allows PL/Java to take advantage of recent Java implementation
advances such as [class data sharing][cds].

Some builds of Java 20 are affected by a bug, [JDK-8309515][]. PL/Java will
report an error if detects it is affected by that bug, and the solution can be
to use a Java version earlier than 20, or one recent enough to have the bug
fixed.

PL/Java has been successfully used with [Oracle Java][orj] and with
[OpenJDK][], which is available with
[either the Hotspot or the OpenJ9 JVM][hsj9]. It can also be built and used
Expand All @@ -38,6 +43,7 @@ the `mvn` command line.
[OpenJDK]: https://adoptopenjdk.net/
[hsj9]: https://www.eclipse.org/openj9/oj9_faq.html
[GraalVM]: https://www.graalvm.org/
[JDK-8309515]: https://bugs.openjdk.org/browse/JDK-8309515

## Maven

Expand All @@ -56,13 +62,11 @@ versions 4.3.0 or later are recommended in order to avoid a

## PostgreSQL

PL/Java 1.6.0 does not commit to support PostgreSQL earlier than 9.5.
(Support for 9.4 or even 9.3 might be feasible to add if there is a pressing
need.)
The PL/Java 1.6 series does not commit to support PostgreSQL earlier than 9.5.

More current PostgreSQL versions, naturally, are the focus of development
and receive more attention in testing.

PL/Java 1.6.0 has been successfully built and run on at least one platform
with PostgreSQL versions from 13 to 9.5, the latest maintenance
PL/Java 1.6.5 has been successfully built and run on at least one platform
with PostgreSQL versions from 15 to 9.5, the latest maintenance
release for each.
109 changes: 98 additions & 11 deletions src/site/markdown/releasenotes.md.vm
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,104 @@
#set($ghbug = 'https://github.com/tada/pljava/issues/')
#set($ghpull = 'https://github.com/tada/pljava/pull/')

$h2 PL/Java 1.6.5

This is the fifth minor update in the PL/Java 1.6 series. It adds support
for PostgreSQL 15 and fixes some bugs, with few other notable changes. Further
information on the changes may be found below.

$h3 Version compatibility

PL/Java 1.6.5 can be built against recent PostgreSQL versions including 15, and
older ones back to 9.5, using Java SE 9 or later. The Java version used at
runtime does not have to be the same version used for building. PL/Java itself
can run on any Java version 9 or later. PL/Java functions can be
written for, and use features of, whatever Java version will be loaded at run
time. See [version compatibility][versions] for more detail.

Some builds of Java 20 are affected by a bug, [JDK-8309515][]. PL/Java will
report an error if detects it is affected by that bug, and the solution can be
to use a Java version earlier than 20, or one recent enough to have the bug
fixed.

$h3 Changes

$h4 Changes affecting administration

$h5 Bugs affecting `install_jar` from http/https URLs fixed

CI testing now makes sure that http URLs work and the appropriate
`java.net.URLPermission` can be granted in `pljava.policy` where the comments
indicate.

$h4 Improvements to the annotation-driven SQL generator

$h5 PL/Java functions can be declared on interfaces as well as classes

The SQL/JRT specification has always only said 'class', but it could be
debated whether 'class' was intended strictly or inclusively. As there is
no technical obstacle to using static methods declared on an interface,
and PL/Java's runtime already could do so, the SQL generator no longer
disallows `@Function` annotations on them.

$h5 SQL generator reports compatibility with a more recent Java source version

Because PL/Java 1.6 retains compatibility for building on Java versions
back to 9, the SQL generator previously reported 9 as the source version
supported. This produced warnings building user code to target a later version
of Java, which were only an issue for sites using a fail-on-warning policy.

The SQL generator now reports its supported source version as the earlier of:
the Java version being used, or the latest Java version on which it has been
successfully tested. In this release, that is Java 20.

$h4 Improvements to documentation

$h5 Use of `--add-modules` to access Java modules not read by default, explained

By default, PL/Java starts up with a fairly small set of Java modules readable.
The documentation did not explain the use of `--add-modules` in
`pljava.vmoptions` to expand that set when user code will refer to other
modules. That is [now documented][addm].

$h3 Enhancement requests addressed

* [Allow functions from an interface](${ghbug}426)

$h3 Bugs fixed

* [Crash on startup with `SQL_ASCII` database and bad `vmoptions`](${ghbug}416)
* [Installed by `LOAD` then packaged as extension broken in recent PostgreSQL updates](${ghbug}434)
* [Java 20 breaks `LexicalsTest.testSeparator`](${ghbug}435)
* [Not found JDK 11 `java.net.http.HttpClient`](${ghbug}419) (documentation added)
* [`SocketPermission` on `install_jar`](${ghbug}425)
* [The timer in `_destroyJavaVM` does not take effect](${ghbug}407)
* PostgreSQL 15 support [410](${ghbug}410), [412](${ghbug}412)
* [Cannot specify java release other than '9' for `maven-compiler-plugin`](${ghbug}403)
* [Fail validation if function declares `TRANSFORM FOR TYPE`](${ghbug}402)
* ["cannot parse AS string" for 1-letter identifiers](${ghbug}438)

$h3 Credits

Thanks in release 1.6.5 to Francisco Miguel Biete Banon, Christoph Berg, Frank
Blanning, Stephen Frost, Casey Lai, Krzysztof Nienartowicz, Yuril Rashkovskii,
Tim Van Holder, `aadrian`, `sincatter`, `tayalrun1`.

[addm]: install/vmoptions.html#Adding_to_the_set_of_readable_modules
[versions]: build/versions.html
[JDK-8309515]: https://bugs.openjdk.org/browse/JDK-8309515

$h2 Earlier releases

## A nice thing about using Velocity is that each release can be entered at
## birth using h2 as its main heading, h3 and below within ... and then, when
## it is moved under 'earlier releases', just define those variables to be
## one heading level finer. Here goes:
#set($h2 = '###')
#set($h3 = '####')
#set($h4 = '#####')
#set($h5 = '######')

$h2 PL/Java 1.6.4

This is the fourth minor update in the PL/Java 1.6 series. It is a minor
Expand Down Expand Up @@ -79,17 +177,6 @@ $h3 Bugs fixed

[exoneout]: pljava-examples/apidocs/org/postgresql/pljava/example/annotation/ReturnComposite.html#method.summary

$h2 Earlier releases

## A nice thing about using Velocity is that each release can be entered at
## birth using h2 as its main heading, h3 and below within ... and then, when
## it is moved under 'earlier releases', just define those variables to be
## one heading level finer. Here goes:
#set($h2 = '###')
#set($h3 = '####')
#set($h4 = '#####')
#set($h5 = '######')

$h2 PL/Java 1.6.3 (10 October 2021)

This is the third minor update in the PL/Java 1.6 series. It adds support
Expand Down

0 comments on commit 59afb0f

Please sign in to comment.