52 lines
4.7 KiB
Markdown
52 lines
4.7 KiB
Markdown
# Toolchain für den technischen Prototyp
|
||
|
||
Stand 2026-09-08. Auswahl und publizierte Artefakte sind geprüft; ein erfolgreicher Projektbuild oder native Integration wird hier noch nicht behauptet. Der maschinenlesbare Versionssatz liegt in `gradle/libs.versions.toml`.
|
||
|
||
| Bestandteil | Festlegung | Begründung / Lizenzfamilie |
|
||
|---|---|---|
|
||
| Vaadin Flow / Gradle Plugin | 25.2.7 | veröffentlichte stabile Version; Core-Komponenten Apache-2.0 |
|
||
| Spring Boot | 4.1.1 | Vaadin-Kompatibilitätslinie; Apache-2.0 |
|
||
| Kotlin JVM + Spring Plugin | 2.3.21 | Version des Boot-BOM; Apache-2.0 |
|
||
| Gradle Wrapper | 9.3.0 | innerhalb Kotlin-Kompatibilitätsmatrix; Java 25 Buildlaufzeit; Apache-2.0 |
|
||
| GraalVM Community (optional zurückgestellt) | 25.3.4.1 / JDK 25.0.4.1 | Community-Distribution, nicht Oracle GFTC; GPLv2 mit Classpath-Ausnahme und mitgelieferte Drittanbieterhinweise |
|
||
| JVM-Bytecode-Ziel | 21 | Flow-Mindestniveau; native Buildlaufzeit dennoch GraalVM 25 |
|
||
| Native Build Tools | 1.1.8 | von Boot 4.1.1 dokumentierte Version; Apache-2.0 |
|
||
| H2 | 2.4.240 | Boot-BOM, File-Modus; MPL-2.0 oder EPL-1.0 |
|
||
| Liquibase | 4.33.0 | Apache-2.0; ausdrücklicher Override der Boot-Vorgabe 5.0.3 |
|
||
| JUnit Jupiter/Platform | Boot-BOM (Jupiter 6.0.3) | EPL-2.0; keine konkurrierende manuelle JUnit-Plattformversion |
|
||
| Cucumber JVM | 7.34.8 | ausführbare englische Gherkin-Szenarien; MIT |
|
||
| Playwright Java | 1.62.0 | freie Browserautomatisierung; Apache-2.0 |
|
||
|
||
Keine Vaadin-TestBench-/kommerziellen Komponenten als Voraussetzung verwenden. `vaadin-core` statt ungeprüftem Gesamtpaket auswählen. Playwright ist für deterministische Browserprüfung vorgesehen; die verlangte echte Chrome/Firefox- und Android-Abnahme bleibt zusätzlich bestehen. Vollständige transitive Lizenzprüfung erfolgt am tatsächlich aufgelösten Buildgraphen vor Freigabe, nicht bloß anhand dieser Tabelle.
|
||
|
||
## Reproduzierbare Distributionen
|
||
|
||
Gradle: https://services.gradle.org/distributions/gradle-9.3.0-bin.zip
|
||
|
||
SHA-256: `0d585f69da091fc5b2beced877feab55a3064d43b8a1d46aeb07996b0915e0e0` (offizielle `.sha256` abgerufen). Im Wrapper übernehmen.
|
||
|
||
GraalVM Community Linux x64: https://github.com/graalvm/graalvm-ce-builds/releases/download/graal-25.3.4.1/graalvm-community-jdk-25i3-25.0.4.1_linux-x64_bin.tar.gz
|
||
|
||
Für den Imagebau die zugehörige `.sha256` herunterladen, prüfen und im Buildmanifest fixieren. CPU-Baseline und glibc-Kompatibilität auf Bookworm tatsächlich testen; kein `-march=native` für das Deployment voraussetzen. Node-Version entsprechend Vaadin-Buildanforderungen im Prototyp fixieren und dokumentieren; die vom Plugin verwaltete Version ist gegenüber einem zufälligen Host-Node zu bevorzugen.
|
||
|
||
## Bewusste Ausnahme: Liquibase
|
||
|
||
Boot verwaltet Liquibase 5.0.3. Liquibase bezeichnet Versionen ab 5 als FSL-1.1-ALv2; sie erfüllen die hier vereinbarte reine Open-Source-Auswahl derzeit nicht. Daher 4.33.0 explizit erzwingen und die tatsächliche Dependency Resolution prüfen. SQL-Changelogs und H2 bleiben unverändert das Ziel. Kompatibilität mit Boot-Autokonfiguration und nativer Ressourcenregistrierung ist ein konkretes Gate des db-spike. Falls dieses Gate scheitert, keine stille Umstellung auf FSL oder einen anderen Migrationstreiber.
|
||
|
||
## Nachweise
|
||
|
||
- https://vaadin.com/docs/latest/compatibility
|
||
- https://repo.maven.apache.org/maven2/com/vaadin/vaadin-bom/maven-metadata.xml (25.3.0-beta1 ausgeschlossen)
|
||
- https://docs.spring.io/spring-boot/system-requirements.html (Gradle 8.14+/9.x, GraalVM 25, Native Build Tools 1.1.8)
|
||
- https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/4.1.1/spring-boot-dependencies-4.1.1.pom (Kotlin, H2, JUnit und Liquibase-Versionen direkt gelesen)
|
||
- https://kotlinlang.org/docs/gradle-configure-project.html (Kotlin 2.3.20–2.3.21 mit Gradle bis 9.3.0)
|
||
- https://api.github.com/repos/graalvm/graalvm-ce-builds/releases/latest (zum Prüfzeitpunkt graal-25.3.4.1, konkrete URL oben fixiert)
|
||
- https://docs.liquibase.com/oss/user-guide-4-33/faq
|
||
- https://www.liquibase.com/blog/liquibase-community-for-the-future-fsl
|
||
|
||
Die Prüfung dieses Knotens umfasst Auswahl und Versions-/Lizenzgrundlagen. Native Funktion, aufgelöste transitive Abhängigkeiten und Tests sind getrennte folgende Arbeitspakete.
|
||
|
||
## Aktuelle JVM-Laufzeitentscheidung
|
||
|
||
Seit der Nutzerentscheidung vom 2026-09-08 wird ein Produktions-JAR mit eigenem Temurin JDK 25.0.4.1+1 ausgeliefert. Quelle und SHA-256 stehen in packaging/jdk.properties; Quelle der Metadaten ist die offizielle Adoptium-API für Linux x64/JDK 25. Temurin ist OpenJDK (GPLv2 mit Classpath-Ausnahme); die Lizenzdateien werden mit dem JDK installiert. Buildimage und remote-Installer verwenden dieselbe Fixierung. GraalVM bleibt optional, seine Native-Image-Tests sind kein Freigabekriterium der ersten Version.
|