Skip to content

build(deps): bump org.jline:jansi-core from 3.30.6 to 4.0.0#677

Closed
dependabot[bot] wants to merge 1 commit intodevelopfrom
dependabot/maven/develop/org.jline-jansi-core-4.0.0
Closed

build(deps): bump org.jline:jansi-core from 3.30.6 to 4.0.0#677
dependabot[bot] wants to merge 1 commit intodevelopfrom
dependabot/maven/develop/org.jline-jansi-core-4.0.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Mar 3, 2026

Bumps org.jline:jansi-core from 3.30.6 to 4.0.0.

Release notes

Sourced from org.jline:jansi-core's releases.

JLine 4.0.0

Breaking Changes

  • Maven 4 requirement: Upgraded to POM model 4.1.0
  • Java 11+ required: Raised minimum runtime requirement from Java 8 to Java 11
  • JPMS migration: Complete Java Platform Module System migration with Java 24 support (#1374)
  • JNA provider removed: Only JNI and FFM terminal providers remain
  • Removed deprecated elements: All previously deprecated APIs removed (#1384)
  • Standard Java SPI: Terminal providers now use standard Java ServiceLoader (#1523)
  • Terminal lifecycle enforcement: Terminals throw exceptions when used after close (#1575)
  • DefaultParser behavior: No longer emits trailing empty word for non-completion contexts (#1489)

New Features

Terminal Graphics & Display

  • Comprehensive terminal graphics protocol support with runtime detection (#1378)
  • Mode 2027 (grapheme cluster) support with DECRQM probing (#1637)
  • True-color detection from COLORTERM environment variable
  • ASCII fallback for box-drawing characters when alt charset is unsupported (#1638)
  • Web and Swing terminal implementations (#1348)

Shell & Command Processing

  • New jline-shell module with extensible shell foundations, variable expansion, subcommands, I/O redirection, signals, scripts, and builtins integration
  • New jline-components module for composable UI components
  • PipelineParser supports custom operator symbols and pseudo pipe operators (#1391, #1393)
  • zsh-like history search navigation (#1449)

Prompts & UI

  • New jline-prompt module with comprehensive prompt API and modern builder patterns (#1377)
  • Multi-character padding in secondary prompt pattern %P{...}
  • Ctrl+C propagated as UserInterruptException in console-ui prompts

Platform Support

  • GraalVM native image support for JNI provider across GraalVM 17, 21, and 25
  • Modernized graal module to use FFM provider and Shell API
  • Comprehensive ClassLoader support for TerminalBuilder (#1432)

Other

  • Multi-version website deployment with version switcher
  • WCWidth tables updated to Unicode 16.0 (#1650)
  • System property support for line reader options (#1413)
  • PosixCommands: POSIX ** globstar semantics, glob arguments, grep enhancements

Bug Fixes

  • Display.resize() handles terminals with buffer wider than visible window (#1210)
  • Preserve terminal content during resize with status bar (#1604)
  • Restored Windows console codepage auto-detection (#1366)
  • Expanded MSYS2 environment detection (#1445)
  • Fixed quoted word completion buffer cleanup (#1644)

... (truncated)

Commits
  • 18611fe fix: Add MVX_USE_SYSTEM_JAVA and GPG import to release workflow
  • d4e7cd3 Merge pull request #1678 from jline/fix/key-binding-docs-1668
  • 60aaafd fix: Use KeyMap.key() for capability-based key bindings in example (fixes #1668)
  • 71f0f98 Merge pull request #1665 from jline/feat/modernize-graal-module
  • 610af9c fix: Enable native access for JNI provider in GraalVM native image
  • 7219e4d Merge pull request #1669 from jline/fix/msys2-backspace-1445
  • 8cac7e8 Merge pull request #1670 from jline/fix/windows-unicode-encoding-1366
  • e06da6c refactor: Replace reflection-based codepage detection with TerminalProvider m...
  • 3ad1234 fix: Address code review feedback for Windows codepage auto-detection
  • 1a85d58 fix: Restore Windows console codepage auto-detection (fixes #1366)
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

Bumps [org.jline:jansi-core](https://github.com/jline/jline3) from 3.30.6 to 4.0.0.
- [Release notes](https://github.com/jline/jline3/releases)
- [Commits](jline/jline3@jline-3.30.6...4.0.0)

---
updated-dependencies:
- dependency-name: org.jline:jansi-core
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update Java code labels Mar 3, 2026
@dependabot dependabot Bot requested a review from david-waltermire as a code owner March 3, 2026 21:54
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update Java code labels Mar 3, 2026
david-waltermire added a commit to david-waltermire/metaschema-java that referenced this pull request Apr 19, 2026
Adds a minimal internal ANSI escape-code builder (dev.metaschema.cli.processor.ansi.Ansi)
that covers the subset of jline:jansi functionality used by the CLI — fluent text/color
appending, bold/boldOff, reset, fgRed/fgBrightRed/fgBrightYellow/fgBrightBlue/fgBrightCyan,
fgBright(Color), and a global setEnabled toggle.

The existing Ansi import is renamed to the new package across the three call sites:

- cli-processor/CLIProcessor (version banner formatting and --no-color toggle)
- cli-processor/CallingContext (sub-command list rendering; jline's render("@|bold ...|@ ...")
  is replaced with explicit fluent bold()/boldOff() calls)
- metaschema-cli/LoggingValidationHandler (severity-colored log preambles and findings)

The jline:jansi-core dependency is removed from the parent POM's dependencyManagement,
cli-processor/pom.xml, and cli-processor/module-info.java. The new ansi package is
exported from cli-processor for metaschema-cli to consume.

Motivation: jline 4.0.0 (dependabot PR metaschema-framework#677) is a breaking upgrade requiring Maven 4,
complete JPMS migration, and JNA removal. The CLI's use of jansi is limited and
well-isolated, so replacing it with ~230 lines of maintained code is lower-risk and
eliminates the dependency entirely. Test coverage: 22 unit tests in AnsiTest covering
color codes, bold, reset, chaining, format(), and the setEnabled(false) suppression path.
david-waltermire added a commit that referenced this pull request Apr 19, 2026
* chore: replace jline:jansi-core with internal Ansi builder

Adds a minimal internal ANSI escape-code builder (dev.metaschema.cli.processor.ansi.Ansi)
that covers the subset of jline:jansi functionality used by the CLI — fluent text/color
appending, bold/boldOff, reset, fgRed/fgBrightRed/fgBrightYellow/fgBrightBlue/fgBrightCyan,
fgBright(Color), and a global setEnabled toggle.

The existing Ansi import is renamed to the new package across the three call sites:

- cli-processor/CLIProcessor (version banner formatting and --no-color toggle)
- cli-processor/CallingContext (sub-command list rendering; jline's render("@|bold ...|@ ...")
  is replaced with explicit fluent bold()/boldOff() calls)
- metaschema-cli/LoggingValidationHandler (severity-colored log preambles and findings)

The jline:jansi-core dependency is removed from the parent POM's dependencyManagement,
cli-processor/pom.xml, and cli-processor/module-info.java. The new ansi package is
exported from cli-processor for metaschema-cli to consume.

Motivation: jline 4.0.0 (dependabot PR #677) is a breaking upgrade requiring Maven 4,
complete JPMS migration, and JNA removal. The CLI's use of jansi is limited and
well-isolated, so replacing it with ~230 lines of maintained code is lower-risk and
eliminates the dependency entirely. Test coverage: 22 unit tests in AnsiTest covering
color codes, bold, reset, chaining, format(), and the setEnabled(false) suppression path.

* chore: use AtomicBoolean for Ansi.enabled flag

PMD's AvoidUsingVolatile rule flags the volatile boolean; AtomicBoolean
is idiomatic for thread-safe flag flipping and passes the same tests.
@david-waltermire
Copy link
Copy Markdown
Contributor

Superseded by #682, which replaces jline:jansi-core with an internal ANSI builder. jline 4.0.0 would require a coordinated migration (Maven 4 requirement, complete JPMS rewrite, JNA provider removed). Removing the dependency entirely is a lower-risk outcome for the CLI's limited use of ANSI formatting.

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github Apr 19, 2026

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot Bot deleted the dependabot/maven/develop/org.jline-jansi-core-4.0.0 branch April 19, 2026 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update Java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant