Skip to content

Release v2.2.3#5379

Closed
tig wants to merge 6 commits into
mainfrom
release/v2.2.3
Closed

Release v2.2.3#5379
tig wants to merge 6 commits into
mainfrom
release/v2.2.3

Conversation

@tig

@tig tig commented May 23, 2026

Copy link
Copy Markdown
Member

Release v2.2.3

Version: 2.2.3
NuGet Package: Terminal.Gui 2.2.3

What happens when this PR is merged

  1. ✅ The Finalize Release workflow will automatically create tag v2.2.3
  2. ✅ The Publish workflow will build and push to NuGet.org
  3. ✅ A GitHub Release will be created with auto-generated notes
  4. ✅ A back-merge PR from maindevelop will be opened

Checklist

  • CI passes on this PR
  • Version looks correct: 2.2.3
  • Release notes reviewed (will be auto-generated on merge)

harder and others added 6 commits May 21, 2026 09:19
Adds TabsFanOutDiagnosticTests with seven parallelizable tests that
observe SubViewsLaidOut, DrawComplete, ClearedViewport, DrawingContent,
and FrameChanged events per tab to measure layout/draw fan-out when an
active TextView inside Tabs scrolls.

Captures the current #4973 behavior so that future fixes can be verified
and silent regressions caught:

- Active tab vs. inactive tab layout work
- Active tab vs. inactive tab draw work (DrawComplete, ClearedViewport,
  DrawingContent)
- A comparable single-TextView baseline vs. tabbed scenario fan-out ratio
- ViewportSettings.Transparent does not mask the diagnostic
- Shadow margin does not mask active-tab activity
- IOutput-level output (not Driver.Contents) is observed
- Layout and draw counters reported separately so regressions can be
  localized to one pipeline

The tests are instrumentation-only and do not change rendering or
invalidation semantics.
TextView is being deprecated in favor of Code (read-only) and Editor
(editable). The fan-out behavior lives in the View base class layout/draw
pipeline, so any scrollable view inside Tabs reproduces it — swap to Code
so the diagnostic survives the deprecation.

Adjusts assertions to use only widget-agnostic signals (DrawComplete on
each tab, ClearedViewport on the Tabs container). Code overrides
OnClearingViewport/OnDrawingContent and returns true, which suppresses
the ClearedViewport/DrawingContent events on the Code instances. The
per-Code data is still reported but no longer asserted at that level.

Adds Tests/IntegrationTests/TabsFanOutIntegrationTests.cs that drives
the active tab via a real Key.PageDown through the input processor →
command dispatch → main-loop LayoutAndDraw path (rather than mutating
Viewport directly). Runs against all registered drivers. Confirms the
fan-out is observable end-to-end:

  Driver: <each>
  Active tab Viewport.Y after 3 PageDowns: 3
    Tabs             3             3                3
    Code1 (active)   3             3                0
    Code2-4 (inact)  3             3                0
  Sum inactive DrawComplete = 9
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Fixes #5356. Add tab fan-out layout/draw diagnostic tests
* Fixes #5367. Include Terminal.Gui.Editor in DocFX API reference

Add a minimal EditorRef project that restores the Terminal.Gui.Editor
NuGet package so its DLL is available at a predictable path. Update
docfx.json with a metadata entry for the Editor assembly.

NOTE: .github/workflows/api-docs.yml also needs a build step for
EditorRef before docfx runs. That change requires workflow scope and
must be applied separately by a maintainer.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add EditorRef build step to api-docs workflow

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove --no-restore from EditorRef build step

EditorRef.csproj is not in Terminal.sln so the repo-level restore
does not cover it. Let dotnet build handle its own restore.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix TextAlignmentAndDirection scenario

* Add a surrogate pair and a ZWJ emoji
@tig tig closed this May 23, 2026
@tig tig deleted the release/v2.2.3 branch May 23, 2026 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants