Skip to content

Bump version to 2.0 - #41

Merged
tomlm merged 3 commits into
mainfrom
chore/net10-and-2.0
Aug 27, 2026
Merged

Bump version to 2.0#41
tomlm merged 3 commits into
mainfrom
chore/net10-and-2.0

Conversation

@tomlm

@tomlm tomlm commented Aug 27, 2026

Copy link
Copy Markdown
Owner

main today says 1.3.0 on net6.0 while already carrying #32, #34, #35, #36 and #37. Packing from it would ship an API break as a minor version.

It is a major, by the rule rather than by feel

git diff 1.2.0..HEAD removes six public members from BufferCellImage, ImageTile, IsImage, ImageCol, ImageRow, PackTile — when #34 moved pictures out of cells and onto lines. On top of that Params.GetSubParams changed its return type, AttributeData.IsUnderline() now answers from the underline style rather than a separate flag, and TerminalImage.ByteCount widened to a long.

This is not theoretical. The renderer in Iciclecreek failed to compile against it and had to be rewritten rather than ported — which is exactly the consumer SemVer's major bump exists to warn.

The size of what landed is a good release note. The removals are the actual reason.

And the framework moved

net6.0 has been out of support since November 2024. The test project and all three CI workflows are already on 10.0.x; the library was the only thing left behind. Retargeting drops net6 through net9 consumers, which is its own break and its own reason not to call this a minor.

AssemblyVersion goes to 2.0.0.0 with it, so a host binds by recompiling rather than by accident.

An upgrade section, not a changelog line

A consumer meets this as a compile error, so the README now answers the question they will actually have — what to call instead:

Gone Use
cell.Image line.TryGetImageAt(column, out var image)
cell.IsImage line.TryGetPlacementAt(column, out _)
cell.ImageTile, ImageCol, ImageRow line.TryGetPlacementAt(...)p.SrcX, p.SrcY
BufferCell.PackTile no longer meaningful; runs carry source pixels, not tile numbers

plus what a renderer does now: order line.Placements by ZIndex, one blit per run, clip the destination and narrow the source with it, and paint the cell background from the bottom-most run only.

Its opening blurb also still described images as cell content that text overwrites. That was true when written and is now true of Sixel alone — Kitty is an overlay the z-index orders against the text.

Testing

1069 tests pass on net10.0, and the whole solution builds.

Nothing in the library changed but the target and the version; the rest is documentation.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TzGenEw6pqZGGS2cwqb9AS

Two independent reasons the next release cannot be a minor one.

The API is broken, not merely extended. BufferCell lost Image, ImageTile,
IsImage, ImageCol, ImageRow and PackTile when pictures stopped living in
cells; Params.GetSubParams changed its return type; AttributeData.IsUnderline
answers from the style rather than a flag; and TerminalImage.ByteCount
widened to a long. That is not a judgement about how much landed -- it is
what SemVer says a major is for, and it is not theoretical: the renderer in
Iciclecreek failed to compile against it, which is exactly the consumer the
rule protects.

And the framework moved. net6.0 has been out of support since November 2024,
the test project and all three CI workflows were already on 10.0.x, and the
library was the only thing left behind. Retargeting drops net6 through net9
consumers, which is a break of its own.

main currently says 1.3.0 on net6.0 while carrying every one of those
changes, so today a pack from main would ship an API break as a minor.

The README gains an upgrade section rather than a changelog line, because a
consumer meets this as a compile error and needs the replacement rather than
the announcement: a table from each removed member to what to ask the line
instead, and what a renderer does now -- order the line's runs by z, one blit
each, clip the destination and narrow the source with it, and paint the cell
background from the bottom-most run only.

Its opening blurb was also still describing images as cell content that text
overwrites. That was true when it was written and is now true of Sixel alone;
Kitty is an overlay the z-index orders against the text.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TzGenEw6pqZGGS2cwqb9AS
@tomlm
tomlm requested a review from JohnCampionJr August 27, 2026 22:46
@JohnCampionJr

Copy link
Copy Markdown
Collaborator

@tomlm please lets get the perf work in first; I thought I already moved it to .net 10 there

@tomlm tomlm changed the title Target .NET 10, and release this as 2.0 Bump version to 2.0 Aug 27, 2026
@tomlm
tomlm merged commit e8cc605 into main Aug 27, 2026
1 check passed
@tomlm
tomlm deleted the chore/net10-and-2.0 branch August 27, 2026 23:06
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.

2 participants