Skip to content

Bump Terminal.Gui from 2.4.17 to 2.5.0 - #54

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/Terminal.Gui-2.5.0
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/Terminal.Gui-2.5.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 11, 2026

Copy link
Copy Markdown
Contributor

Updated Terminal.Gui from 2.4.17 to 2.5.0.

Release notes

Sourced from Terminal.Gui's releases.

2.5.0

Breaking changes

This is a minor bump because v2 still accepts planned API breaks. Apps that compiled against 2.4.17 may need source changes.

  1. View.Text is no longer virtual (#​5371 / #​5366)

    • Use OnTextChanging(string proposedValue) / TextChanging to validate or cancel.
    • Use OnTextChanged() for post-change sync.
    • TextField uses View.Text directly (no new hider).
  2. IAcceptTarget moved to Terminal.Gui.Input (#​5395 / #​5369)

    • Add using Terminal.Gui.Input;.
  3. Legacy ConfigurationManager removed (#​5416 / #​4367)

    • Replacement: TuiConfigurationBuilder and Settings POCOs (ButtonSettings.Current, etc.).
    • config.json is nested only. Convert old flat-key files with Tools/MigrateConfig.
    • Types marked [Obsolete] in 2.4.17 (#​5411) are gone.

See docfx/docs/breaking-changes-2.5.0.md and the configuration deep dive.

Highlights

  • Editable NumericUpDown
  • TableView horizontal scrolling for wide content
  • Native ANSI size detection; platform detection cleanup
  • SynchronizationContext fix
  • Kitty protocol: preserve repeated legacy input after detection
  • DropDownList: hide active popover on DeRegister (#​5635)
  • NativeAOT: RuneJsonConverter no longer trips IL2026 (#​5659)

What's Changed

2.5.0-beta.1

Breaking changes

This is a beta pre-release of a minor bump. v2 still accepts planned API breaks. Apps that compiled against 2.4.17 may need source changes.

  1. View.Text is no longer virtual (#​5371 / #​5366)

    • Use OnTextChanging(string proposedValue) / TextChanging to validate or cancel.
    • Use OnTextChanged() for post-change sync.
    • TextField uses View.Text directly (no new hider).
  2. IAcceptTarget moved to Terminal.Gui.Input (#​5395 / #​5369)

    • Add using Terminal.Gui.Input;.
  3. Legacy ConfigurationManager removed (#​5416 / #​4367)

    • Replacement: TuiConfigurationBuilder and Settings POCOs (ButtonSettings.Current, etc.).
    • config.json is nested only. Convert old flat-key files with Tools/MigrateConfig.
    • Types marked [Obsolete] in 2.4.17 (#​5411) are gone.

See Breaking changes 2.5.0 and Migrating ConfigurationManager to TuiConfigurationBuilder.

Highlights

  • Editable NumericUpDown
  • TableView horizontal scrolling for wide content
  • Native ANSI size detection; platform detection cleanup
  • SynchronizationContext fix
  • Kitty protocol: preserve repeated legacy input after detection
  • DropDownList: hide active popover on DeRegister (stale cells, #​5635)
  • NativeAOT: RuneJsonConverter no longer trips IL2026

Auto-generated

Breaking Changes

What's Changed

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually 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)

---
updated-dependencies:
- dependency-name: Terminal.Gui
  dependency-version: 2.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Sep 11, 2026
ntatschner added a commit that referenced this pull request Sep 14, 2026
Update Terminal.Gui from 2.4.17 to 2.5.0

Supersedes #54. Dependabot's branch regenerated only src/Loadout.Tui's lock
file, so restore failed with NU1004 in locked mode on the other six, and it
could not carry the source changes the release needs anyway.

2.5.0 is a minor bump under v2's rule that minors may break source, and it
does in two places here. The static defaults views read - Glyphs.LeftBracket,
Glyphs.RightBracket, Button.DefaultShadow - are now read-only facades over
immutable settings records (GlyphSettings.Current, ButtonSettings.Current)
that the theme manager swaps atomically. The documented replacement is a
`with` expression on the record, which is what MakeLegible and
LauncherTheme.Apply now do. The other three breaks (View.Text no longer
virtual, IAcceptTarget moved to Terminal.Gui.Input, the legacy
ConfigurationManager and its config.json shape removed) touch nothing in
this tree: no override of Text, no IAcceptTarget, no config.json.

Whether the substitution still survives Application.Init was the question,
since 2.4.17 applied configuration at Init and 2.5.0 applies it at assembly
load. The screen tests answer it: they call Init, then MakeLegible, and
assert on "[ Launch" in the rendered text, and they still pass.

Transitive changes, all seven lock files: Microsoft.Extensions.* 10.0.7,
10.0.9 and 10.0.10 to 10.0.11 (Terminal.Gui's new floor); System.IO.Abstractions
and TestableIO.* 22.1.1 to 22.2.0; Testably.Abstractions.FileSystem.Interface
10.1.0 to 10.3.0. Licence unchanged (MIT), THIRD-PARTY-NOTICES already right.

Not verified: what the launcher looks like in a real console. The release
notes list behaviour changes that compile unchanged - the text-field cursor
is now an underline, and popovers are a screen-filling transparent overlay,
which is what the context menu is drawn in. The headless driver asserts on
text and cannot see either, and build/screenshot-tui.ps1 drives a console,
which is not done unasked.

Suite: 1800 passed, 0 failed, 20 skipped.
@ntatschner

Copy link
Copy Markdown
Owner

Superseded by #66, merged as 7cba1ef: the same bump with all seven lock files regenerated and the two source sites 2.5.0 broke.

@ntatschner ntatschner closed this Sep 14, 2026
@dependabot @github

dependabot Bot commented on behalf of github Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

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/nuget/Terminal.Gui-2.5.0 branch September 14, 2026 12:50
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 .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant