Skip to content

Commit 273ac1d

Browse files
committed
docs: remove obsolete sponsor section, fix broken links, clarify Exe/Nsis alias
- Remove "Sponsor: Automatic GraalVM Reflection Plugin" from index (already implemented) - Fix all graalvm-native-image.md links to point to graalvm/ subpages - Clarify that TargetFormat.Exe is an alias for TargetFormat.Nsis
1 parent e1dfb63 commit 273ac1d

4 files changed

Lines changed: 24 additions & 32 deletions

File tree

docs/changelog.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ nativeDistributions {
325325
- **L2 (Oracle Reachability Metadata Repository)** — Automatic resolution of metadata for all runtime classpath dependencies from the [Oracle GraalVM Reachability Metadata Repository](https://github.com/oracle/graalvm-reachability-metadata). Covers popular libraries like ktor, kotlinx.serialization, SLF4J, Logback, and many others. Enabled by default.
326326
- **L3 (plugin platform metadata)** — Platform-specific AWT/Java2D/font/security metadata for macOS, Windows, and Linux, shipped inside the Gradle plugin. Written to the build directory at compile time — no per-platform `when` block needed in your build script.
327327

328-
Users no longer need to copy thousands of reflection entries from the example app. Most applications will work without any manual reflection configuration. See [Centralized Reflection Metadata](graalvm-native-image.md#centralized-reflection-metadata).
328+
Users no longer need to copy thousands of reflection entries from the example app. Most applications will work without any manual reflection configuration. See [Centralized Reflection Metadata](graalvm/index.md#centralized-reflection-metadata).
329329

330330
- **`metadataRepository {}` DSL** — New configuration block in `graalvm {}` to control the Oracle Reachability Metadata Repository integration. Supports `enabled`, `version`, `excludedModules`, and `moduleToConfigVersion`. Enabled by default with version `0.10.6`.
331331

@@ -359,7 +359,7 @@ nativeDistributions {
359359

360360
### Breaking Changes
361361

362-
- **Sample app `reachability-metadata.json` files drastically reduced** — If you copied metadata from the example or jewel-sample apps, the source files are now nearly empty (framework entries moved to L1/L3). This is not a code-breaking change, but you should clean up your own metadata files — see the [migration guide](graalvm-native-image.md#migration-from-v15x).
362+
- **Sample app `reachability-metadata.json` files drastically reduced** — If you copied metadata from the example or jewel-sample apps, the source files are now nearly empty (framework entries moved to L1/L3). This is not a code-breaking change, but you should clean up your own metadata files — see the [migration guide](graalvm/index.md#migration-from-v15x).
363363

364364
- **Removed old-format config files from samples**`predefined-classes-config.json`, `proxy-config.json`, `resource-config.json`, and `serialization-config.json` have been removed. All configuration is consolidated in `reachability-metadata.json`.
365365

@@ -377,7 +377,7 @@ nativeDistributions {
377377

378378
### Breaking Changes
379379

380-
- **Remove release build type for GraalVM** — GraalVM native-image tasks no longer have `release` variants (`packageReleaseGraalvmNative`, etc.). ProGuard is redundant with native-image's closed-world dead code elimination and harmful because it can rename classes referenced in `reachability-metadata.json`. See [No Release Build Type](graalvm-native-image.md#no-release-build-type).
380+
- **Remove release build type for GraalVM** — GraalVM native-image tasks no longer have `release` variants (`packageReleaseGraalvmNative`, etc.). ProGuard is redundant with native-image's closed-world dead code elimination and harmful because it can rename classes referenced in `reachability-metadata.json`. See [No Release Build Type](graalvm/index.md#no-release-build-type).
381381

382382
---
383383

@@ -387,7 +387,7 @@ nativeDistributions {
387387

388388
### New Features
389389

390-
- **Automatic resource inclusion for GraalVM native-image**`graalvm-runtime` now ships a `native-image.properties` that auto-includes all `.svg`, `.ttf`, `.otf` resources, `nucleus/native/*` JNI libraries, and `META-INF/services/*` descriptors via glob patterns. Projects no longer need to run the tracing agent just to discover icon and font resources — they are embedded in the native binary automatically. The tracing agent is still required for reflection, JNI, resource bundles, and non-standard resources. See [Automatic Resource Inclusion](graalvm-native-image.md#automatic-resource-inclusion).
390+
- **Automatic resource inclusion for GraalVM native-image**`graalvm-runtime` now ships a `native-image.properties` that auto-includes all `.svg`, `.ttf`, `.otf` resources, `nucleus/native/*` JNI libraries, and `META-INF/services/*` descriptors via glob patterns. Projects no longer need to run the tracing agent just to discover icon and font resources — they are embedded in the native binary automatically. The tracing agent is still required for reflection, JNI, resource bundles, and non-standard resources. See [Automatic Resource Inclusion](graalvm/index.md#automatic-resource-inclusion).
391391

392392
---
393393

@@ -729,7 +729,7 @@ No user-facing changes (tag only).
729729

730730
### New Features
731731

732-
- **GraalVM Native Image support (experimental)** — Compile Compose Desktop apps into standalone native binaries with instant cold boot (~0.5 s), lower memory usage (~100–150 MB vs ~300–400 MB on JVM), and smaller bundles. New `graalvm {}` DSL block, `runWithNativeAgent` task for reflection metadata collection, and `packageGraalvmNative` / `packageGraalvmDeb` / `packageGraalvmDmg` / `packageGraalvmNsis` packaging tasks. Requires [BellSoft Liberica NIK 25](https://bell-sw.com/liberica-native-image-kit/). See [GraalVM Native Image](graalvm-native-image.md).
732+
- **GraalVM Native Image support (experimental)** — Compile Compose Desktop apps into standalone native binaries with instant cold boot (~0.5 s), lower memory usage (~100–150 MB vs ~300–400 MB on JVM), and smaller bundles. New `graalvm {}` DSL block, `runWithNativeAgent` task for reflection metadata collection, and `packageGraalvmNative` / `packageGraalvmDeb` / `packageGraalvmDmg` / `packageGraalvmNsis` packaging tasks. Requires [BellSoft Liberica NIK 25](https://bell-sw.com/liberica-native-image-kit/). See [GraalVM Native Image](graalvm/index.md).
733733
- **New `graalvm-runtime` module** (`nucleus.graalvm-runtime`) — Centralizes native-image bootstrap logic into a single `GraalVmInitializer.initialize()` call: Metal L&F, `java.home`/`java.library.path` setup, charset/fontmanager early init, Linux HiDPI detection, and GraalVM `@TargetClass` font substitutions for Windows and Linux.
734734
- **Decorated Window module split**`decorated-window` split into `decorated-window-core`, `decorated-window-jbr` (JBR-based, same behavior as before), and `decorated-window-jni` (JBR-free, works with GraalVM). See [Migration Guide](#migration-guide-12x--13x) below.
735735
- **`decorated-window-jni` module** — New JNI-based implementation of `DecoratedWindow` that works without JetBrains Runtime, including support for Linux via native JNI bridge. Compatible with GraalVM Native Image.

docs/configuration.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -67,24 +67,24 @@ nucleus.application {
6767

6868
All available formats:
6969

70-
| Format | Platform | Backend | Task Name |
71-
|--------|----------|---------|-----------|
72-
| `TargetFormat.Dmg` | macOS | electron-builder | `packageDmg` |
73-
| `TargetFormat.Pkg` | macOS | electron-builder | `packagePkg` |
74-
| `TargetFormat.Exe` | Windows | electron-builder | `packageExe` |
75-
| `TargetFormat.Msi` | Windows | electron-builder | `packageMsi` |
76-
| `TargetFormat.Nsis` | Windows | electron-builder | `packageNsis` |
77-
| `TargetFormat.NsisWeb` | Windows | electron-builder | `packageNsisWeb` |
78-
| `TargetFormat.Portable` | Windows | electron-builder | `packagePortable` |
79-
| `TargetFormat.AppX` | Windows | electron-builder | `packageAppX` |
80-
| `TargetFormat.Deb` | Linux | electron-builder | `packageDeb` |
81-
| `TargetFormat.Rpm` | Linux | electron-builder | `packageRpm` |
82-
| `TargetFormat.AppImage` | Linux | electron-builder | `packageAppImage` |
83-
| `TargetFormat.Snap` | Linux | electron-builder | `packageSnap` |
84-
| `TargetFormat.Flatpak` | Linux | electron-builder | `packageFlatpak` |
85-
| `TargetFormat.Zip` | All | electron-builder | `packageZip` |
86-
| `TargetFormat.Tar` | All | electron-builder | `packageTar` |
87-
| `TargetFormat.SevenZ` | All | electron-builder | `packageSevenZ` |
70+
| Format | Platform | Task Name | Notes |
71+
|--------|----------|-----------|-------|
72+
| `TargetFormat.Dmg` | macOS | `packageDmg` | |
73+
| `TargetFormat.Pkg` | macOS | `packagePkg` | |
74+
| `TargetFormat.Nsis` | Windows | `packageNsis` | NSIS installer (`.exe`) |
75+
| `TargetFormat.Exe` | Windows | `packageExe` | Alias for `Nsis` — same output |
76+
| `TargetFormat.NsisWeb` | Windows | `packageNsisWeb` | NSIS web installer |
77+
| `TargetFormat.Msi` | Windows | `packageMsi` | |
78+
| `TargetFormat.Portable` | Windows | `packagePortable` | |
79+
| `TargetFormat.AppX` | Windows | `packageAppX` | MSIX format |
80+
| `TargetFormat.Deb` | Linux | `packageDeb` | |
81+
| `TargetFormat.Rpm` | Linux | `packageRpm` | |
82+
| `TargetFormat.AppImage` | Linux | `packageAppImage` | |
83+
| `TargetFormat.Snap` | Linux | `packageSnap` | |
84+
| `TargetFormat.Flatpak` | Linux | `packageFlatpak` | |
85+
| `TargetFormat.Zip` | All | `packageZip` | |
86+
| `TargetFormat.Tar` | All | `packageTar` | |
87+
| `TargetFormat.SevenZ` | All | `packageSevenZ` | |
8888

8989
Target all formats at once:
9090

docs/index.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,6 @@ Here's what you'll see:
100100

101101
The demo source code is in the [`example/`](https://github.com/kdroidFilter/Nucleus/tree/main/example) directory.
102102

103-
## Sponsor: Automatic GraalVM Reflection Plugin
104-
105-
Nucleus already supports [GraalVM Native Image](graalvm-native-image.md) for instant startup and low memory usage — but configuring reflection metadata remains a major pain point.
106-
107-
**I'm looking for sponsors** to fund the development of an **automatic reflection resolution plugin** that would eliminate most of the manual configuration work. This would make native-image practical for large Compose Desktop applications while keeping full compatibility with the Java ecosystem.
108-
109-
If you or your company are interested, please reach out via [GitHub Issues](https://github.com/kdroidFilter/Nucleus/issues) or [GitHub Discussions](https://github.com/kdroidFilter/Nucleus/discussions). Read more about this in the [GraalVM Native Image docs](graalvm-native-image.md#future-automatic-reflection-resolution-plugin).
110-
111103
## Requirements
112104

113105
| Requirement | Version | Note |

docs/runtime/linux-hidpi.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This module was originally designed for running Compose Desktop applications com
1010
If your application runs on a standard JVM (not a native image), prefer using **JetBrains Runtime (JBR)** which handles HiDPI detection natively and provides stable, battle-tested support across Linux desktop environments. This module is only necessary when JBR is not an option — typically with GraalVM Native Image or other non-JBR runtimes.
1111

1212
!!! note "Already handled by `GraalVmInitializer`"
13-
If you use the [`graalvm-runtime`](../graalvm-native-image.md#graalvm-runtime-module) module, `GraalVmInitializer.initialize()` already calls `getLinuxNativeScaleFactor()` and applies the scale factor automatically. You do **not** need to add `linux-hidpi` as a separate dependency or call the function manually — it is included transitively.
13+
If you use the [`graalvm-runtime`](../graalvm/runtime-bootstrap.md) module, `GraalVmInitializer.initialize()` already calls `getLinuxNativeScaleFactor()` and applies the scale factor automatically. You do **not** need to add `linux-hidpi` as a separate dependency or call the function manually — it is included transitively.
1414

1515
## Installation
1616

0 commit comments

Comments
 (0)