Skip to content

[release] Publish reviewed teasers from release notes - #4722

Open
mattleibow wants to merge 50 commits into
mainfrom
mattleibow-reviewed-release-teasers
Open

[release] Publish reviewed teasers from release notes#4722
mattleibow wants to merge 50 commits into
mainfrom
mattleibow-reviewed-release-teasers

Conversation

@mattleibow

Copy link
Copy Markdown
Contributor

Description

This separates irreversible release publication from reviewed customer-facing teaser prose.

release-publish now creates and publishes a marked GitHub-generated-notes body unchanged, then recoverably dispatches release notes. It no longer authors, classifies, approves, or edits a synchronous teaser.

Release notes record every exact published tag/build in data.json shipments[]. The line's single self-contained prose.json holds cumulative website prose and immutable exact-tag release_teasers; the task manifest separates those work axes and preserves unlisted historical teasers. Empty stable deltas render deterministic no-change prose without AI.

After the reviewed notes PR merges, a zero-AI workflow semantically diffs exact teaser entries and updates only eligible marked releases. Non-canceling concurrency, full-batch preflight, body SHA/ETag checks, and idempotent reruns prevent partial or stale updates. GitHub-generated notes remain byte-for-byte frozen, manual content outside markers is preserved, and unmarked legacy releases are skipped.

Related issues

None.

Required skia PR

None.

Areas affected

  • Managed API (binding/)
  • Native / C API (externals/skia/src/c, include/c)
  • Generated P/Invoke bindings
  • Native dependency or Skia update
  • Views & integrations
  • Rendering output / visual behavior
  • Performance
  • Tests
  • Build, packaging, or CI
  • Documentation or samples

Changes

None — release automation and documentation only; no public API or runtime behavior changes.

Testing

  • 29 release-publish tests
  • 17 exact-shipment/prose lifecycle tests
  • 23 deterministic updater tests
  • 72-page offline release-notes render
  • Prose JSON Schema fixture validation
  • Python compilation and both modified skill validations
  • gh aw compile --strict, workflow source validation, and actionlint
  • Traditional updater workflow YAML parse
  • git diff --check and clean-tree verification

No runtime, native, or rendering output changed, so platform and golden-image testing is not applicable.

Checklist

  • Tests added or updated (if omitted, explain why above)
  • Changes above lists all public API and behavioral changes (or "None.")
  • New/changed public API docs issue — N/A, no API changes
  • Native companion PR and regenerated bindings — N/A, no native changes

Copilot AI added 5 commits August 10, 2026 21:58
Publish marked GitHub-generated notes before dispatching the reviewed release-notes flow, and remove local teaser authoring from release-publish. Define exact shipment teaser ownership and immutable generated payload preservation in the release behavior specs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Apply semantically changed exact-tag teaser entries to marked GitHub Releases with batch preflight, optimistic concurrency, and byte-preserving generated-notes handling.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add per-tag shipment facts, immutable reviewed teaser entries, split Polish tasks, deterministic rendering, validation, and lifecycle coverage while preserving cumulative website prose.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Retry the idempotent docs dispatch for an already-published release, report it honestly during audits, and preserve the immediate milestone handoff after success.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Teach the notes workflow to honor split JSON tasks, converge deterministic data-only stable shipments, skip unrelated release tags, and keep generated workflow outputs in sync.

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

Copy link
Copy Markdown
Contributor

📦 Try the packages from this PR

Warning

Do not run these scripts without first reviewing the code in this PR.

Step 1 — Download the packages

bash / macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.sh | bash -s -- 4722

PowerShell / Windows:

iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 4722"

Step 2 — Add the local NuGet source

dotnet nuget add source ~/.skiasharp/hives/pr-4722/packages --name skiasharp-pr-4722
More options
Option Description
--successful-only / -SuccessfulOnly Only use successful builds
--force / -Force Overwrite previously downloaded packages
--list / -List List available artifacts without downloading
--build-id ID / -BuildId ID Download from a specific build

Or download manually from Azure Pipelines — look for the nuget artifact on the build for this PR.

Remove the source when you're done:

dotnet nuget remove source skiasharp-pr-4722

@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

📊 SkiaSharp benchmarks — PR #4722

this PR (full source build) vs 🌙 nightly · Linux · Windows · macOS

Informational only — this never blocks the PR. 🟢 faster / less allocation · 🔴 slower / more allocation; moves under 5% are hidden as noise.

⏱️ Times are raw BenchmarkDotNet means, and the ⭐ PR and baseline legs run on separate CI runners, so microbenchmarks can swing run-to-run — treat small time deltas as noise. Allocations are deterministic and the reliable signal. The interactive perf-dashboard (linked below) applies smoothing for the trend view.

Highlights

⏱️ Time — 🔴 39 slower · 🟢 30 faster

  • 🔴 MatrixMapPointsBenchmark.MapVector(Points: 256) · macOS · 2.43 µs → 3.37 µs (+39%)
  • 🔴 MatrixMapPointsBenchmark.MapPoints(Points: 256) · macOS · 135.9 ns → 184.9 ns (+36%)
  • 🔴 MatrixMapPointsBenchmark.MapRect(Points: 256) · macOS · 3.05 µs → 4.08 µs (+34%)
  • 🔴 MatrixMapPointsBenchmark.MapPoints(Points: 4096) · macOS · 1.52 µs → 2.02 µs (+33%)
  • 🟢 MatrixMapPointsBenchmark.MapPoints(Points: 256) · Windows · 182.7 ns → 135.5 ns (-26%)
  • …and 64 more (see details below)
Full per-OS benchmark deltas

Linux

⏱️ Time (vs 🌙 nightly 4.152.0-nightly.10)

Benchmark baseline this PR Δ
RasterImageLifecycleBenchmark.CreateDataWithReleaseProc(Count: 256) 100.53 µs 108.83 µs 🔴 +8%
MatrixMapPointsBenchmark.MapPoints(Points: 4096) 2.62 µs 2.79 µs 🔴 +7%
ColorMathBenchmark.UnPreMultiply(Colors: 4096) 11.44 µs 12.11 µs 🔴 +6%
ColorMathBenchmark.ToColor(Colors: 4096) 14.99 µs 14.14 µs 🟢 -6%
RasterImageLifecycleBenchmark.CreateRasterImage(Count: 256) 257.65 µs 271.54 µs 🔴 +5%
MatrixMapPointsBenchmark.MapPoints(Points: 256) 209.2 ns 219.8 ns 🔴 +5%

Windows

⏱️ Time (vs 🌙 nightly 4.152.0-nightly.10)

Benchmark baseline this PR Δ
MatrixMapPointsBenchmark.MapPoints(Points: 256) 182.7 ns 135.5 ns 🟢 -26%
RasterImageLifecycleBenchmark.CreateDataWithReleaseProc(Count: 256) 96.45 µs 121.29 µs 🔴 +26%
LargeImageScaleBenchmark.UpscaleOpaque(Size: 2048) 3.25 ms 2.50 ms 🟢 -23%
ColorMathBenchmark.ToColorF(Colors: 4096) 14.14 µs 10.94 µs 🟢 -23%
LargeImageScaleBenchmark.UpscaleCrossfade(Size: 2048) 11.24 ms 8.70 ms 🟢 -23%
SceneRenderBenchmark.RenderFrame(Complexity: 4) 10.38 ms 8.11 ms 🟢 -22%
LargeImageScaleBenchmark.UpscaleCrossfade(Size: 1024) 2.84 ms 2.22 ms 🟢 -22%
LargeImageScaleBenchmark.UpscaleOpaque(Size: 1024) 822.95 µs 645.22 µs 🟢 -22%
MatrixMapPointsBenchmark.MapPoint(Points: 4096) 86.67 µs 68.55 µs 🟢 -21%
ColorMathBenchmark.UnPreMultiply(Colors: 4096) 12.79 µs 10.12 µs 🟢 -21%
SceneRenderBenchmark.RenderFrame(Complexity: 1) 2.15 ms 1.71 ms 🟢 -21%
MatrixMapPointsBenchmark.MapPoint(Points: 256) 5.42 µs 4.29 µs 🟢 -21%
MatrixOpsBenchmark.Invert(Count: 4096) 148.24 µs 117.82 µs 🟢 -21%
MatrixMapPointsBenchmark.MapRect(Points: 256) 8.53 µs 6.81 µs 🟢 -20%
BitmapDrawBenchmark.DrawScaledTiles(Tiles: 64) 361.89 µs 290.50 µs 🟢 -20%
RuntimeEffectShaderBenchmark.DrawFrame 1.22 ms 977.03 µs 🟢 -20%
MatrixMapPointsBenchmark.MapVector(Points: 256) 8.88 µs 7.25 µs 🟢 -18%
MatrixMapPointsBenchmark.MapPoints(Points: 4096) 2.10 µs 1.74 µs 🟢 -17%
ColorMathBenchmark.PreMultiply(Colors: 4096) 14.74 µs 12.27 µs 🟢 -17%
BitmapDrawBenchmark.DrawScaledTiles(Tiles: 256) 1.34 ms 1.12 ms 🟢 -16%
BitmapDrawBenchmark.DrawUnscaledTiles(Tiles: 256) 969.18 µs 811.22 µs 🟢 -16%
MatrixMapPointsBenchmark.MapVector(Points: 4096) 137.55 µs 115.40 µs 🟢 -16%
MatrixMapPointsBenchmark.MapRect(Points: 4096) 128.91 µs 109.03 µs 🟢 -15%
MatrixOpsBenchmark.Concat(Count: 4096) 256.01 µs 216.77 µs 🟢 -15%
CanvasDrawBenchmark.Draw(Shapes: 64) 2.65 ms 2.25 ms 🟢 -15%
…and 6 more

macOS

⏱️ Time (vs 🌙 nightly 4.152.0-nightly.10)

Benchmark baseline this PR Δ
MatrixMapPointsBenchmark.MapVector(Points: 256) 2.43 µs 3.37 µs 🔴 +39%
MatrixMapPointsBenchmark.MapPoints(Points: 256) 135.9 ns 184.9 ns 🔴 +36%
MatrixMapPointsBenchmark.MapRect(Points: 256) 3.05 µs 4.08 µs 🔴 +34%
MatrixMapPointsBenchmark.MapPoints(Points: 4096) 1.52 µs 2.02 µs 🔴 +33%
RasterImageLifecycleBenchmark.CreateRasterImage(Count: 256) 141.56 µs 177.08 µs 🔴 +25%
BitmapDrawBenchmark.DrawUnscaledTiles(Tiles: 64) 148.63 µs 185.34 µs 🔴 +25%
PathBoundsBenchmark.TightBounds(Points: 1024) 8.07 µs 10.05 µs 🔴 +25%
BitmapDrawBenchmark.DrawUnscaledTiles(Tiles: 256) 543.43 µs 669.88 µs 🔴 +23%
BitmapDrawBenchmark.DrawScaledTiles(Tiles: 64) 195.71 µs 240.57 µs 🔴 +23%
ColorParseBenchmark.Parse(Iterations: 1000) 63.10 µs 77.00 µs 🔴 +22%
MatrixMapPointsBenchmark.MapRect(Points: 4096) 49.43 µs 59.64 µs 🔴 +21%
MatrixMapPointsBenchmark.MapRadius(Points: 256) 6.17 µs 7.42 µs 🔴 +20%
ColorMathBenchmark.ToColorF(Colors: 4096) 4.92 µs 5.89 µs 🔴 +20%
MatrixMapPointsBenchmark.MapVector(Points: 4096) 39.10 µs 46.52 µs 🔴 +19%
BitmapDrawBenchmark.DrawScaledTiles(Tiles: 256) 664.73 µs 790.70 µs 🔴 +19%
RasterImageLifecycleBenchmark.CreateDataWithReleaseProc(Count: 256) 66.42 µs 78.94 µs 🔴 +19%
ColorMathBenchmark.ToColor(Colors: 4096) 18.93 µs 22.37 µs 🔴 +18%
LargeImageScaleBenchmark.UpscaleOpaque(Size: 2048) 2.69 ms 3.17 ms 🔴 +18%
MatrixMapPointsBenchmark.MapPoint(Points: 4096) 18.14 µs 21.28 µs 🔴 +17%
CanvasDrawBenchmark.Draw(Shapes: 512) 11.08 ms 13.00 ms 🔴 +17%
MatrixOpsBenchmark.Invert(Count: 4096) 65.06 µs 75.88 µs 🔴 +17%
CanvasDrawBenchmark.Draw(Shapes: 64) 1.39 ms 1.61 ms 🔴 +16%
ColorMathBenchmark.PreMultiply(Colors: 4096) 8.48 µs 9.61 µs 🔴 +13%
PathBoundsBenchmark.TightBounds(Points: 64) 850.3 ns 961.5 ns 🔴 +13%
MatrixOpsBenchmark.Concat(Count: 4096) 111.66 µs 125.53 µs 🔴 +12%
…and 7 more

📈 Full interactive perf-dashboard & run details →

@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

📦 Artifact size report

Packages from this PR (build 1551049) vs the latest nightly baseline 4.152.0-nightly.17 (observed 2026-08-12).

Total .nupkg size: 569.8 MB → 569.2 MB (−625.9 KB, -0.1%)

Packages

⚠️ marks growth over 500.0 KB or 2%. Changes under 50.0 KB are treated as noise.

Package baseline this PR Δ Δ%
SkiaSharp.NativeAssets.WinUI 109.1 MB 108.4 MB 🟢 −784.0 KB -0.7%
SkiaSharp.NativeAssets.WebAssembly 69.7 MB 69.7 MB 🔴 +78.9 KB +0.1%

+38 package(s) unchanged (< 50.0 KB).

Per-file changes

SkiaSharp.NativeAssets.WinUI

File Size
runtimes/win-arm64/native/libGLESv2.pdb 64.5 MB → 64.4 MB (🟢 −96.0 KB)
runtimes/win-x64/native/libGLESv2.pdb 66.6 MB → 66.5 MB (🟢 −80.0 KB)
runtimes/win-x86/native/libGLESv2.pdb 67.2 MB → 67.2 MB (🟢 −48.0 KB)

Informational only — this never blocks the PR. Native binaries are labelled by os/arch.

@github-actions

Copy link
Copy Markdown
Contributor

📖 Documentation Preview

The documentation for this PR has been deployed and is available at:

🔗 View Staging Site
🔗 View Staging Docs
🔗 View Staging Gallery (Blazor)
🔗 View Staging Gallery (Uno Platform)
🔗 View Staging SkiaFiddle

This preview will be updated automatically when you push new commits to this PR.


This comment is automatically updated by the documentation staging workflow.

Separate generation source, PR base, and generated head routing for guarded pre-merge workflow runs. Preserve reviewed historical teaser selections and enforce their exact shipment fidelity.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Copilot AI added 13 commits August 11, 2026 14:00
Configure gh-aw patch and bundle generation with the same validated output base used by the pull request handler.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Preserve audited per-PR teaser facts and classify infrastructure titles as internal before path-based release-note tagging. Reject internal PRs from cumulative consumer categories.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Add deterministic page-level review facts for cumulative release notes, enforce consumer-safe exclusions and contributor credit, and derive validation PR routing from the source PR and workflow run.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Use GPT-5.6 Sol for release-note prose generation so complex milestone PR collections use the preferred high-capacity model.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Use the already-validated source branch directly in the safe-output base allowlist because the safe-output job cannot consume Prepare job outputs.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Match the published RC1 consumer-facing PR selection and require the .NET 11 WebAssembly and exception-handling details, excluding test-only and generic sync work.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Filter internal-only HarfBuzz build and test PRs from release summary facts so they render as no binding changes instead of consumer-facing infrastructure prose.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Use each exact GitHub Release's curated consumer-facing teaser as an authoritative input to prose generation instead of maintaining version-specific review policy files. Generalize sync-round and contributor-mechanics validation so future releases receive the same protections.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Do not import legacy stable GitHub Release bodies when the exact stable shipment delta is empty. Those bodies summarize the full line and would otherwise fail exact-delta validation or rewrite an immutable stable teaser.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Require prose rewrites to retain named APIs, backends, data formats, and failure modes from published GitHub Release bullets so specific reviewed behavior is not generalized away.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Clear forced scoped API-diff output once per release line so packages no longer erase each other. Require authored HarfBuzz prose when the co-shipped dependency version changes, and keep empty stable shipments explicit without duplicating their cumulative page prose.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Use data.json as the only change key: changed or forced pages discard their complete prose file and are listed one per line for full AI regeneration. Remove published release ingestion and selective cumulative/teaser task handling while preserving exact technical terminology guidance.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Expose only verified, structured upstream commit subjects to the release-notes agent so generic sync PRs produce concrete fixes without forwarding arbitrary report prose. Use NUL-delimited git records and allow jq for clean offline inspection.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Split release-note collection into focused modules, generate normalized data and committed agent context atomically, and replace teaser prose with evergreen exact-release summaries. Keep rollups and shipment boundaries deterministic while leaving editorial meaning to the release-notes agent.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Trim duplicate trailing newlines from generated API-diff documents and landing pages so deterministic Prepare output passes git diff --check without requiring agent edits.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Copilot AI added 2 commits August 12, 2026 04:58
Record committed API markdown paths before forced line clearing so newline normalization applies only to genuinely new files, keeping scoped forced regeneration below the safe-output file cap while preserving clean new HarfBuzz pages.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Derive validation routing from source_branch alone, allow the expected full-v4 generated-doc patch, and delegate each release page to an isolated page writer. Keep solution and MSBuild infrastructure out of HarfBuzz consumer facts.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Copilot AI added 3 commits August 12, 2026 11:29
Pin the inline release-page-writer to GPT-5.6 Sol so the runner proxy can price and execute each focused page task instead of rejecting the inherited model alias.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Keep gh-aw's materialized release-page-writer definition in the local git exclude file so the generated documentation commit remains inside the safe-output allowed-files boundary.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Tell the release workflow's threat analyzer to inspect directly without delegated agents and emit one canonical result, avoiding parser conflicts between equivalent all-clear verdicts.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Copilot AI added 5 commits August 12, 2026 13:30
Remove inline page writers and the custom threat-detector prompt, return to direct sequential prose authoring and the 100-file guard, and derive an exact collision-resistant automation branch from source_branch for non-main test runs.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Record explicit CVE, advisory, vulnerability, and security-release evidence in release facts and reject ordinary dependency updates under Security for format-5 pages. Keep legacy pages compatible and update the worked 4.148 sample.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Use the immediate superseded co-release as the HarfBuzz predecessor, include explicit HarfBuzz update PRs in provenance, and render deterministic PR credit. Treat the version manifest as mixed release evidence so major version transitions remain visible to the prose agent.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Require every cumulative category theme present in an exact Preview or RC delta to contribute provenance to that release summary. Keep HarfBuzz rendering scoped to selected pages and avoid broad body matches when adding dependency-update provenance.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Reject HarfBuzz summaries when the deterministic page facts have no HarfBuzz release, and recognize full version strings followed by sentence punctuation so invalid prose cannot bypass validation.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Copilot AI and others added 13 commits August 12, 2026 15:27
Apply orphan-summary and exact-version validation only to format-5 pages so the current schema rejects dead prose without invalidating preserved legacy release-note data.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Use bot/release-notes as the single generated head for production and feature-branch validation, serialize all runs globally, and keep the validated source branch as the PR base. Remove obsolete branch-name derivation and trim verbose workflow comments while retaining the safety constraints.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Make format 5 the only supported release-note contract, remove fuzzy security and HarfBuzz title inference, scope rendering to requested versions, and keep Security editorially sourced from structured maintainer notes. Remove cached v4 pages, prose, data, and worked samples so the focused workflow rebuilds them cold.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Do not open out-of-range caches during scoped rendering, but reject unsupported data when its version or exact release is explicitly requested. Keep global summary scans from interpreting old prose during format migration.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Treat v1-v3 pages as immutable historical documentation. Unscoped workflows process only v4+, while explicit requests below the floor fail and instruct maintainers to lower the floor before regenerating history.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use more of the existing prose caps for feature highlights and exact Preview/RC summaries, while keeping servicing notes concise. Add curated 4.150.2 provenance so the RasterPipeline runtime fix is credited to PR #4648 rather than the ancestry-only follow-up.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Separate the short cumulative Highlights block from exact-tag release introductions. Require fuller release_summaries for Preview, RC, and stable tags, render stable summaries on the website, and use the same reviewed text for official GitHub Releases.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Keep Highlights as the cumulative release-line overview while grounding every Preview, RC, and stable release summary in only that tag's delta. Stable no-change releases now retain a distinct exact summary without duplicating the full line.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Use the stable shipment delta for GitHub Release scope counts and contributor credit, matching the exact stable release summary instead of reporting the cumulative line totals.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Regenerate API diffs and release-note inputs for SkiaSharp 4.150.0 through 4.150.3, add reviewed exact-tag summaries, and rebuild the rendered pages and release navigation.\n\nGenerated by Sync - Release Notes & API Diffs run 31638643983.
Keep the canonical generated branch from clobbering an open PR for another base, fail explicit scopes below the v4 history floor, and establish HarfBuzz co-release mappings before scoped API generation.

Make reviewed GitHub summaries converge from current state, verify stored release bodies, align publication marker parsing across line endings, and skip incompatible docs dispatches for historical releases.

Bring support metadata and repository documentation up to date, and complete the reviewed 4.148 stable exact-tag summary required by the format-5 contract.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Read every feed-backed v4 SkiaSharp.HarfBuzz dependency before scoped HarfBuzz generation so selected pages can resolve an out-of-range predecessor in one pass.

Restrict API-diff landing-page rewrites to selected lines and explicit co-release repairs, preventing formatting-only changes outside the requested range.

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

Copilot-Session: 1d768d35-d11a-453b-9762-16cf2e2d1379
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants