Commits
Tarun Sukhani authored 40d2381c8a3
feat: enforce Java 25 source-level + new-app skeleton polish
Skeleton (resources/application-skel/conf/application.conf):
- Add application.version=1.0.0 directly under application.name so apps
ship with a meaningful default version they can bump.
- Uncomment java.source=25 so the configured source level is explicit
in every new app (matches the framework default but documents intent).
- Update valid-values comment to "25 or higher".
Frontend skeleton (resources/nuxt-skel):
- ApiController.status() exposes applicationVersion (from config) in
addition to the existing version field (Play framework version).
- pages/index.vue replaces the raw JSON dump with a labeled <dl>
showing Status, Application, Application version, Mode, Play version
— clear distinction between the two version fields.
CLI (framework/pym/play/commands/base.py):
- Simplify --frontend flag to a bare boolean (was --frontend=nuxt).
Since Nuxt is the only supported frontend, the value was redundant.
- Update CLI tests to use the bare flag.
- Replace test_version_outputs_version_number's hard-coded '1.11'
assertion with a regex on the version format (was already stale
on 1.12.x).
Compiler (framework/src/play/classloading/ApplicationCompiler.java):
- compatibleJavaVersions trimmed to {25} only so java.source=18 (or
any pre-25 value) errors at startup instead of being silently
accepted.
- Runtime version-check rejection list extended through 24 so a
pre-25 JVM fails with a clear error message rather than later
emitting an UnsupportedClassVersionError on the compiled bytecode.
- Map shape preserved so adding Java 26 (when JDT supports it) is a
one-line addition.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>