Skip to content

Tags: tryAGI/AutoSDK

Tags

v0.35.0-preview.2

Toggle v0.35.0-preview.2's commit message
v0.35.0-preview.2

Follows v0.35.0-preview.1 with two fixes to split-by-tags families, both
found by running the generated code rather than compiling it.

- A model's ToJson()/FromJson(string) overloads take no context and fell
  back to Core's, which does not register a model the split moved into a
  tag package. Those overloads now name the context of the package the
  model ships in.
- Every context emitted the whole family's converter dispatch table
  instead of its own share: 10,412 typeToConvert lines in a package
  owning 88 types. Each package now contributes what it owns and calls
  down the chain for the rest.

Measured on tryAGI/GitHub.NET's configuration, against preview.1:

  a tag package's serializer context   2,375 KB -> 25 KB
  generated family                       230 MB -> 124 MB
  family as packages                   32.76 MB -> 26.52 MB

Both figures now sit under what the single project checks in (126 MB) and
publishes (32.72 MB) today, so no consumer of the family downloads more
than they do now, and one that needs a single tag downloads 44% less.

This is the release a repository migrating to --split-by-tags should pin;
preview.1 predates both fixes.

v0.35.0-preview.1

Toggle v0.35.0-preview.1's commit message
v0.35.0-preview.1

Split-by-tags package families now split models, not just clients.

- A model, enum or named union exactly one OpenAPI tag can reach ships in
  that tag's package; everything shared stays in Core.
- Ownership is proposed from schema reachability and then verified against
  the generated C# reference graph, so nothing crosses a package boundary
  it cannot see.
- Each package emits its own JSON serializer context, chained onto the
  package it references.
- --package-map contents and --packages-output are part of the generation
  cache key.

Measured on specs/github.yaml: Core drops from 15,024 to 11,901 generated
files and 26.1 MB to 19.0 MB, and a consumer of one tag package downloads
about 43% less than the single package. Single-project generation is
unchanged.

Pre-release so the 48-package flow can be validated end-to-end before a
stable version is committed to.

v0.34.1

Toggle v0.34.1's commit message
AutoSDK v0.34.1