Skip to content

JLine 4.2.0

Choose a tag to compare

@github-actions github-actions released this 16 Jun 11:46
a5b4ca6

JLine 4.2.0 is a minor release that bumps the version to reflect API and behavioral changes since the 4.1.x series.

Highlights:

  • java.logging module dependency dropped — JLine now uses System.Logger (JEP 264), removing the java.logging module requirement and making JLine friendlier in custom JPMS runtimes (#1934)
  • ScreenTerminal unified — the two divergent copies (builtins vs terminal) are consolidated into org.jline.utils.ScreenTerminal, with a fix for stale status rows when using bordered status displays (#1971)
  • Exit command made configurable — the built-in exit command is now a regular, configurable command rather than hardcoded (#1870)
  • Prompt module — list and checkbox prompts now support per-item footers (#1933)
  • Robustness fixes — EOF propagation in PtyInputStream, signal handling with ISIG cleared, resize sync, graphics protocol detection on basic terminals, and several out-of-bounds guards

🚀 New features and improvements

  • refactor: unify ScreenTerminal — move from builtins to terminal module (#1971) @gnodet
  • feat(prompt): add optional per-item footer to list and checkbox prompts (#1933) @ingokegel
  • refactor: drop the java.logging module dependency and use System.Logger instead (#1934) @ingokegel
  • refactor: make exit command a regular, configurable command (#1870) @Elec332
  • feat: add custom name parameter to PicocliCommandRegistry (#1947) @gnodet

🐛 Bug Fixes

  • fix: sync LineReader display model on resize (fixes #1940) (#1941) @zikolach
  • fix: propagate EOF in PtyInputStream to avoid infinite loop (#1963) @gnodet
  • fix: override bulk write in NonCloseableOutputStream to avoid byte-at-a-time writes (#1962) @gnodet
  • fix: restore signal handling when ISIG is cleared (#1942) (#1959) @gnodet
  • fix: skip graphics protocol detection for basic terminal types (#1957) @gnodet
  • fix: keep polling the terminal probe response past a spurious EOF (#1944) @WouterGritter
  • fix: guard ScreenTerminal.poke() against out-of-bounds cursor position (#1946) @gnodet
  • fix: clamp cx in dumb_echo to prevent out-of-bounds cursor position (#1953) @gnodet
  • fix: validate version format in release workflow (#1954) @gnodet

📦 Dependency updates

👻 Maintenance

🚦 Tests

  • test: add LineReader EOF tests for different terminal providers (#1961) (#1968) @gnodet