Skip to content

🔧 chore: 0.2.0-preview.61 - #757

Merged
edgarmesquita merged 1 commit into
mainfrom
chore/0.2.0-preview.61
Oct 11, 2026
Merged

edgarmesquita merged 1 commit into
mainfrom
chore/0.2.0-preview.61

Conversation

@edgarmesquita

@edgarmesquita edgarmesquita commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Closes #756

The bump to 0.2.0-preview.61, cut from main at 9305100 (#637) at Edgar's request. It carries forty-five pull requests since .60: a component that hears the server on a typed topic (#647), a page that requires its authorization and a Server Action that refuses another site's request (#686, #737), a layout that follows its box and type that follows the window (#648, #665), a control's press and focus on every target with a 24dp floor under a pointer (#617, #628), the code editor's completion (#618, #653, #733), a hot reload under dotnet watch that keeps the page's state (#666, #672), the image optimizer on SkiaSharp (#730), the places where the producers drew one tree differently, with Photon's hit-testing and its text layout (#688, #690, #699, #739, #741, #749), a number and a date printed in the page's culture (#637), and a long family of browser answers made .NET's (#579, #588, #594, #607, #608, #621, #654, #656, #660, #661, #667, #668, #689, #696, #697, #705, #707, #708, #709, #715, #731, #748, #752), with a page that answers HEAD (#610) and the conformance harness's own comparison (#609).

What this commit does

  • Directory.Build.props: 0.2.0-preview.60 → 0.2.0-preview.61.
  • ./scripts/public-api.sh ship: nine projects, 462 declarations join the shipped surface and 43 retire, and every Unshipped is empty afterwards. Checked after the fold, per project and compared as sets: the lines that left Shipped are exactly the 43 *REMOVED* lines declared on main, and the lines that joined are exactly its 462 declarations, so an orphan could not vanish unnoticed. The line diff reads +463 −549: the version line, 462 lines into Shipped and 43 out of it, and the 505 that leave the Unshipped files.
  • The analyzer accepts the fold: the solution builds with no RS0016 or RS0017. And it read the files: one bogus declaration appended to an Unshipped failed the build with RS0017.
  • Against v0.2.0-preview.60 the Shipped diff has those 43 lines gone and no other, so no pull request rewrote a shipped line in place this time, as ✨ feat: a hover moves a box and changes its shadow on every target #512 did in .60.

What the retirements are

Read out of the *REMOVED* lines, each paired with the line that joined under the same member and attributed by the commit that wrote it, not from the log. Only ServerActionHub left with nothing in its place, and the rest changed shape:

One break is an addition, which no *REMOVED* line shows. CurlyBraceLanguage.ReservedWords (#618) is a new abstract member, so a language derived from it renames its Keywords override to ReservedWords. I listed every member that joined an interface or an abstract class already shipped, and it is the only one an implementer has to write: ICodeLanguage.Keywords and ICodeCompletionProvider.ResolveAsync have default implementations.

The additions are 118 in eQuantic.UI.Code (the completion), 116 in Primitives (the server events vocabulary, FluidSize, Positioned's fractions and shifts, BoxStyle.Pressed, GridTrack.AutoFill, Touch.MinPointerTarget), 98 in Server (server events, the origins a Server Action allows), 86 in the compiler, 19 in Native.Components, 12 in Web, 7 in Components, 4 in Native.Framework and 2 in Images.

The rest of the surface

developer-surface.baseline.txt gains two configuration sections since v0.2.0-preview.60, EQuantic:ServerActions (#737) and EQuantic:ServerEvents (#647), and loses nothing: no MSBuild property or template parameter came or went.

What an app meets with no signature moving:

The rest are browser answers made .NET's and drawings made alike across the producers, listed in the tag.

The wiki's version marks

WikiVersionMarkTests compares a mark only once a tag holds its symbol, so the .61 tag is when this release's marks are judged for the first time. Emulated before the tag, with the test's own pattern and lookup and a .61 at 9305100: 145 marks, no mismatch. The thirteen it judges first resolve to .61, as written: StartFraction, GridTrack.AutoFill, canRequestFocus, DENSITY_COOKIE, Drawing's SizeValue width, WithPageAuthorization, AllowServerActionOrigins, IServerEvents, MapGetAndHead, UseServerEvents, TwinIsData on the tokens, BoxStyle.Pressed and ScrolledThreshold.

The tag's gate, rehearsed

gate-templates runs only on a v* tag, so a template that does not build costs a release attempt. Rehearsed on main at 9305100, before this branch: 50 packages packed at 1.0.0-dev, the three web and the four native template shapes scaffolded and built in Release against that feed alone, with no warning and with every eQuantic package restored at the version packed, the published runtime.js identical byte for byte to the Server package's, and the dashboard template served, hydrated and navigated in a browser with no console error.

Not in this release

No pull request is open. Forty-eight bugs are, none of them a regression against .60. Three issues came out of this stretch and wait for a decision or their turn: #753 (string.Split with an array of separators, a count or a null separator), #754 (an app's exception class in a snippet compiled on its own) and #755 (whether generic code should carry its type arguments at run time, which EQ2014 fences).

The release notes travel in the annotated tag. The wiki's Upgrading page carries the distilled entry in both languages, on the wiki branch chore/0.2.0-preview.61, which merges into the wiki's master when this merges and before the tag. The docs/LEDGER.md line for the release follows the tag, as .60's did, because it names the commit the tag lands on.

Checklist

  • The diff reviewed by its author before the PR opened: a version line and a mechanical fold, verified as sets above
  • dotnet test on this branch: Compiler 1898, Server 374, Conformance 5087 with one skipped, Web 1021, and the runtime's own 2355 in 170 files, none aborted
  • This PR's checks include a run named CI with jobs in it
  • ./scripts/public-api.sh ship run, every Unshipped empty, the retirements read from the diff
  • The documentation changed with the release: the Upgrading entry in English and Portuguese, on the wiki branch chore/0.2.0-preview.61, with the wiki guards passing against it (9 of 9, and the vocabulary guard fails on that page when a word it refuses is written into it)
  • Copilot's rounds answered: one round, approval recommended with no finding and no thread, so the loop ends there

The bump in Directory.Build.props and the fold of the declared public
API (./scripts/public-api.sh ship): nine projects, 462 declarations join
the shipped surface and 43 retire, and every Unshipped is empty
afterwards. Checked as sets per project: the lines that left Shipped are
exactly the 43 *REMOVED* lines main declared, and the lines that joined
are exactly its declarations.
Copilot AI balanced review requested due to automatic review settings October 11, 2026 09:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

O fold mecânico está consistente, ordenado, sem duplicatas ou marcadores residuais.

0 open findings

What changed in this PR

Prepara a release 0.2.0-preview.61 conforme a issue #756.

Changes:

  • Atualiza a versão global.
  • Promove 462 declarações para APIs publicadas.
  • Registra 43 remoções e esvazia os arquivos Unshipped.
File Description
Directory.Build.props Atualiza a versão para .61.
src/​eQuantic.UI.Code/​PublicAPI.Shipped.txt Publica APIs do editor.
src/​eQuantic.UI.Code/​PublicAPI.Unshipped.txt Limpa APIs pendentes.
src/​eQuantic.UI.Compiler/​PublicAPI.Shipped.txt Publica APIs do compilador.
src/​eQuantic.UI.Compiler/​PublicAPI.Unshipped.txt Limpa APIs pendentes.
src/​eQuantic.UI.Components/​PublicAPI.Shipped.txt Publica APIs de componentes.
src/​eQuantic.UI.Components/​PublicAPI.Unshipped.txt Limpa APIs pendentes.
src/​eQuantic.UI.Images/​PublicAPI.Shipped.txt Publica APIs de imagens.
src/​eQuantic.UI.Images/​PublicAPI.Unshipped.txt Limpa APIs pendentes.
src/​eQuantic.UI.Native.Components/​PublicAPI.Shipped.txt Publica APIs nativas.
src/​eQuantic.UI.Native.Components/​PublicAPI.Unshipped.txt Limpa APIs pendentes.
src/​eQuantic.UI.Native.Framework/​PublicAPI.Shipped.txt Publica APIs do framework nativo.
src/​eQuantic.UI.Native.Framework/​PublicAPI.Unshipped.txt Limpa APIs pendentes.
src/​eQuantic.UI.Primitives/​PublicAPI.Shipped.txt Publica APIs primitivas.
src/​eQuantic.UI.Primitives/​PublicAPI.Unshipped.txt Limpa APIs pendentes.
src/​eQuantic.UI.Server/​PublicAPI.Shipped.txt Publica APIs do servidor.
src/​eQuantic.UI.Server/​PublicAPI.Unshipped.txt Limpa APIs pendentes.
src/​eQuantic.UI.Web/​PublicAPI.Shipped.txt Publica APIs web.
src/​eQuantic.UI.Web/​PublicAPI.Unshipped.txt Limpa APIs pendentes.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@edgarmesquita
edgarmesquita merged commit a7d5f3d into main Oct 11, 2026
23 checks passed
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.

Release 0.2.0-preview.61: the bump, the public API fold and the notes from the diff

3 participants