2.83.1
(fix): Honor the x-fern-retries: { disabled: true } extension (retries: { disabled: true } in a Fern
definition) at the endpoint level. Requests for those endpoints are now sent exactly once, even when
the client or the per-request options configure retries.
2.83.0
(feat): Added a generate-documentation-file config option (default true) so the
generated csproj emits XML documentation and the published NuGet package ships
lib/<tfm>/<Namespace>.xml, giving consumers IntelliSense. CS1591 is
suppressed so enabling documentation does not introduce warnings for
undocumented members.
(feat): Added a package-metadata config block for NuGet metadata written into the
generated csproj: description, authors, tags, copyright, icon,
project-url, repository-url, repository-type, include-source-link
(adds Microsoft.SourceLink.GitHub) and include-symbols (produces a
.snupkg).
(fix): Global header values set on ClientOptions are now respected in the default
(non-unified) client shape. Previously the generated root client read only the
constructor parameter for a promoted global header, so
new Client(clientOptions: new ClientOptions { Version = "..." }) was silently
ignored and a stray environment variable could win instead. The resolution
order is now: explicit constructor argument, ClientOptions property,
environment variable, then the literal/client default.
(fix): ClientOptions.Clone() now copies literal global header properties (e.g.
Version), which were previously dropped when the options were cloned.
(fix): Escape markup characters in the attribute values of documentation comment tags. Descriptions
containing links such as <a href="https://example.com/docs?a=1&b=2"> no longer emit invalid
XML (CS1570) in generated documentation comments, while attribute values that already contain
character or entity references are left untouched.
(fix): The generated README’s ## Requirements section is now populated with the
project’s target frameworks (”.NET 8 and above”, ”.NET Framework 4.6.2 and
above”, ”.NET Standard 2.0 and above”). Previously the C# generator passed an
empty requirements list, so the section rendered as a dangling
“This SDK requires:” with no entries.
(fix): README and dynamic snippets no longer pass an upper-cased placeholder for
global header constructor parameters (e.g. new Client("TOKEN", "VERSION"),
which sent the literal header value VERSION at runtime). Snippets now use
the header’s literal or client default value when one is known.
(fix): Fixed invalid C# in the generated README: RequestOptions examples used
object-initializer syntax with : instead of = (new RequestOptions { MaxRetries: 0 }),
and the WithRawResponse section declared var data twice in one block.
(fix): Fix invalid <see cref="..."/> documentation comments generated for union types. Type names
are now converted to documentation comment identifiers (List<string> becomes
List{String}, object? becomes object), and types that cannot be expressed as an
identifier (arrays, nested generic arguments) are rendered as escaped inline code instead.
This removes CS1570/CS1584/CS1658 warnings from generated SDKs that contain unions when XML
documentation is enabled.
(fix): Escaped generic type syntax in the XML doc comments of the generated core
files (Optional, OptionalAttribute, NullableAttribute, Extensions),
and added the missing param tags on Extensions.Assert. Building generated
SDKs with XML documentation enabled no longer emits CS1570/CS1573 warnings.