Repository navigation
2.0 polish: extensible registrations, IByteSource in Abstractions, public API baseline - #3
Merged
Merged
Conversation
…C profile ImageDecoderRegistration, ImageEncoderRegistration and ImageMetadata take their members as init properties (required where the facade needs them) instead of positional constructors, so 2.x can add members without breaking compiled callers. ImageMetadata is a record: change one block with `with`. IDecodedImage.IccProfile and RasterImage's iccProfile parameter are gone; the profile is Metadata.Icc. The facade's Register checks the planar delegate pair. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n namespace IByteSource / ByteSource move from the facade to Abstractions (namespace Sdcb.SimdCodecs.Abstractions), so a codec can take one in 2.x without a breaking move. ImageDecoderFallback, BufferedEncoderSession / BufferedFrame / EncoderFormats and DecodeOptions.Validate / Apply (now C# 14 extension members, call sites unchanged) move to Sdcb.SimdCodecs.Abstractions.CodecSupport: codec authors import it, consumers no longer see them. ImageDecoder.Metadata is read from the file once per session instead of on every get. Docs: api-design (compatibility section), migration guide, known-gaps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Microsoft.CodeAnalysis.PublicApiAnalyzers 5.6.0 on every project under src/: PublicAPI.Shipped.txt records the 2.0 surface (with nullability), and an API change that is not written into PublicAPI.Unshipped.txt fails the build (RS0016 / RS0017 as errors, .editorconfig). Checked by adding an undeclared member: RS0016. The analyzer's overload-shape rules RS0026 / RS0027 are off: the codecs deliberately pair byte[] and ReadOnlySpan<byte> overloads with the same optional parameters. AGENTS.md and api-design.md state the rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
sdcb
marked this pull request as ready for review
November 4, 2026 11:33
…stay out of jit.txt A NuGet advisory published 2026-11-03 (GHSA-p3jp-9v83-76w9, Microsoft.DotNet.ILCompiler 10.0.13) makes restore print NU1903 to stdout; `dotnet run` captured it into jit.txt, which then differed from the AOT binary's output. The pixel digests were identical. The WebAssembly smoke script already builds first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All packages ship together, so a breaking change is allowed when it is worth it: write it into PublicAPI.Unshipped.txt and name it in the release notes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pre-release polish of the 2.0 API (items 1–6 of the Abstractions review). Details in each commit.
🤖 Generated with Claude Code