Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 0 additions & 8 deletions fern/products/sdks/overview/dotnet/changelog.mdx

This file was deleted.

14 changes: 14 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-05-10.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## 0.0.9
**`(fix):`** When an inlined request body is entirely made up of request body properties, the entire request can now be serialized as the request body.

## 0.0.8
**`(fix):`** Several bug fixes.

### What's new
- Support for arbitrary nested clients
- Query parameter serialization

### What's changed
- Property naming for async methods
- Properly formatted solution files

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-05-15.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.0.10
**`(feat):`** The generated SDK now publishes GitHub Actions to build and publish the generated package to NuGet.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-05-20.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.0.11
**`(feat):`** The C# generator now generates a proper `.csproj` file with version, GitHub URL, and a reference to the SDK README.

6 changes: 6 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-05-22.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
## 0.0.13
**`(feat):`** If a LICENSE is specified, the generator now packages the license in the .csproj file.

## 0.0.12
**`(feat):`** The C# generator now generates an `Environments.cs` file containing URLs for different environments.

14 changes: 14 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-05-23.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## 0.0.16
**`(fix):`** Miscellaneous fixes.

### What's been fixed
- .csproj indentation
- Setting X-Fern-SDK-Name to the top-level namespace
- Passing through serializer options when serializing JSON messages

## 0.0.15
**`(fix):`** Inlined requests that are strictly bodies are JSON serializable.

## 0.0.14
**`(feat):`** The SDK now includes a `JsonEnumMemberStringEnumConverter`.

8 changes: 8 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-05-28.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## 0.0.18
**`(internal):`** Generated GitHub workflows now run on dotnet-version 8.x.

## 0.0.17
**`(feat):`** Enabled nullable on all C# files.

**`(feat):`** Made project compatible with .NET 6, .NET 7, and .NET 8.

10 changes: 10 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-05-29.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## 0.0.20
**`(internal):`** Enum serializers are now added directly to enum declarations.

**`(internal):`** OneOf serializers are now added as a core class.

## 0.0.19
**`(fix):`** Enum serializers now handle reading and writing enum string values.

**`(fix):`** Non-success status code errors are now thrown with the stringified response body.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-05-31.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.0.21
**`(fix):`** Array and list fields are now generated as `IEnumerable`.

6 changes: 6 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-06-07.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
## 0.0.23
**`(feat):`** The SDK is now compatible exclusively with .NET 6. This change reflects significant code adjustments needed for .NET 4+ compatibility.

## 0.0.22
**`(feat):`** The SDK now includes support for .NET 4.

6 changes: 6 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-06-19.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
## 0.0.28
**`(fix):`** Query and header parameters with optional datetimes are now encoded in ISO 8601 format before making requests.

## 0.0.24
**`(fix):`** Query and header parameters are now ISO 8601 encoded before making requests.

13 changes: 13 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-06-20.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## 0.0.30
**`(fix):`** The SDK now supports making requests with a Content-Type of `application/octet-stream` for byte data.

**`(fix):`** The SDK now safely handles API-wide path parameters, including their proper joining in `RawClient.cs`.

## 0.0.29
**`(fix):`** The generated SDK now correctly respects service base paths, which were previously omitted.

## 0.0.25
**`(feat):`** Discriminated unions are now generated as object.

**`(feat):`** Header parameters are no longer required in the constructor, eliminating the need for users to provide redundant information.

9 changes: 9 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-06-21.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
## 0.0.33
**`(feat):`** Add support for specifying extra dependencies in the C# generator configuration.

## 0.0.32
**`(fix):`** Ensure enum values are JSON serialized before being sent to the server.

## 0.0.31
**`(fix):`** Ensure the HTTP client joins endpoint path with the base URL safely.

6 changes: 6 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-02.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
## 0.0.35
**`(fix):`** Ensure base client requests are generated correctly.

## 0.0.34
**`(fix):`** Implement base client methods instead of leaving them empty.

11 changes: 11 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-09.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## 0.1.0
**`(feat):`** Add targets for .NET Standard 2.0 and .NET Framework 4.6.2.

**`(fix):`** Avoid duplicate key errors in `StringEnumSerializer`.

**`(fix):`** Fix bugs with root client requests causing generation failures.

**`(fix):`** Correctly handle environment values and literal header names.

**`(internal):`** Improve constructor parameters and other minor fixes.

5 changes: 5 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-10.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 0.1.1
**`(internal):`** Enable generating unions with up to 32 types by adding the OneOf.Extended package.

**`(fix):`** Handle double optional fields properly with a single `?`.

5 changes: 5 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-17.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 0.1.2
**`(chore):`** Bump IR to 51.

**`(feat):`** Generate serialization unit tests for models and add a GH workflow to run them.

5 changes: 5 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-22.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 0.1.3
**`(fix):`** Fixed a bug with serializing datetimes.

**`(internal):`** Stop generating empty serialization unit test files when there are no examples.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-23.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.1.4
**`(internal):`** More improvements to datetime serialization.

14 changes: 14 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-25.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## 0.3.1
**`(internal):`** Add header suppliers to `RawClient` constructor parameters.

## 0.3.0
**`(break):`** Convert all usages of `Guid` to `string` to avoid casing issues.

## 0.2.1
**`(fix):`** Fix Multi URL environment classes compilation issue.

## 0.2.0
**`(break):`** Rename `Environments.cs` to `{OrgName}Environment`.

**`(feat):`** Generate classes for environments with different endpoint URLs.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-29.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.3.2
**`(feat):`** The C# generator now supports configuration to match namespaces to file paths.

16 changes: 16 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-30.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## 0.5.0
**`(feat):`** Add support for `uint`, `ulong`, and `float` types.

**`(internal):`** Bump to IRv53.

## 0.4.0
**`(feat):`** Add support for `allow-multiple` query parameters.

**`(feat):`** Generate `map<string, unknown>` types as `Dictionary<string, object?>` to support explicit `null` values.

## 0.3.4
**`(internal):`** Make datetime deserialization more lenient and include milliseconds in serialization.

## 0.3.3
**`(internal):`** Generate types with `set` accessors instead of `init` to improve object construction flexibility.

11 changes: 11 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-07-31.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## 0.8.0
**`(feat):`** Support text response types.

**`(feat):`** Support inheritance for inlined request bodies.

## 0.7.0
**`(feat):`** Generate Exception types for all errors defined in the IR.

## 0.6.0
**`(feat):`** Add support for `RequestOptions` allowing request-specific option overrides.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-01.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.9.0
**`(feat):`** Add the `base-api-exception-class-name` and `base-exception-class-name` generator configuration. These control the class names of the generated `ApiException` and `Exception` class names.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-07.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.10.0
**`(fix):`** Fix a bug where conflicting class names and namespaces cause compile to fail.

7 changes: 7 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-09.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## 0.11.0
**`(internal):`** Mark internal files `internal`.

**`(feat):`** Make all client classes `Partial`.

**`(internal):`** Don't override `toString` on Exceptions.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-10.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.12.0
**`(feat):`** Get better Unit Testing JSON comparison results by using `FluentAssertions`.

14 changes: 14 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-11.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## 1.1.0
**`(fix):`** Error strings are correctly mapped to an appropriate exception.

## 1.0.0
**`(break):`** The C# SDK is now on major version 1.0.0. To preserve compatibility with pre-1.0.0, set all of \{root-namespace-for-core-classes, pascal-case-environments, simplify-object-dictionaries\} to `false`.

**`(internal):`** Core classes that are exposed publicly are now in the root namespace.

**`(internal):`** Types that were previously generated as `Dictionary<string, object?>` are now just `object`.

**`(internal):`** Environment names are pascal-cased.

**`(feat):`** Generating specific error types can now be turned off with the `generate-error-types` configuration.

5 changes: 5 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-12.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 1.2.1
**`(feat):`** Add support for Protobuf file dependencies to generate gRPC client stubs.

**`(fix):`** Fix potential namespace and type conflicts.

34 changes: 34 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-22.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## 1.3.0
**`(internal):`** No changes.

## 1.3.0-rc2
**`(internal):`** Fix warnings in generated `RawClient`.

**`(internal):`** Use a simpler primitive instantiation for the various number types.

## 1.3.0-rc1
**`(feat):`** Generate the `ToString` method to write the JSON format of an object.

**`(feat):`** Generate snippets as example documentation.

## 1.3.0-rc0
**`(feat):`** Add support for sending the `User-Agent` header.

**`(internal):`** The `RawClient` now supports HTTP headers within the `ClientOptions` and `RequestOptions` types.

**`(feat):`** Add support for the `package-id` configuration, which is used to control the name of the package in NuGet.

**`(feat):`** Add support for mock server tests with `generate-mock-server-tests` configuration option.

**`(internal):`** Omit `null` property values in requests.

**`(fix):`** Fix a bug where request bodies are not sent for wrapped requests that include headers or query params.

**`(fix):`** Fix a bug where enums, dates, and datetimes are sometimes not serialized properly as query parameters and headers.

**`(feat):`** Add support for `read-only-memory-types` configuration.

**`(feat):`** Add the `CancellationToken` parameter as the last parameter to every endpoint method.

**`(feat):`** Add support for gRPC/Protobuf endpoints.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-26.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 1.4.0
**`(internal):`** Generate a `Version` class which is used to reference the current version.

15 changes: 15 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-28.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## 1.5.0
**`(feat):`** Add support for service-level headers.

**`(feat):`** Generate `snippet.json` file containing usage snippets for each endpoint.

**`(feat):`** Apply the timeout configured on the `ClientOptions` and `RequestOptions` type.

**`(feat):`** Add exponential backoff retrier, which acts upon `MaxRetries` configuration option specified on the `ClientOptions` and `RequestOptions`.

**`(feat):`** Generate the `RawClientTests.cs` file which includes retry logic tests.

**`(internal):`** Refactor the `RawClient` with additional helper methods so that it's easier to follow.

**`(fix):`** Fix a bug where `OneOf` used directly as request or response types fail serialization.

18 changes: 18 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-08-29.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## 1.8.0
**`(feat):`** Adds support for Client Credentials OAuth with token refresh.

Now you can instantiate your SDK by passing in clientId and clientSecret,
and let fern handle retrieving and refreshing the token.

```cs
var client = new ImdbClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
await client.doThing();
```


## 1.7.0
**`(feat):`** Add support for generated `reference.md` files.

## 1.6.0
**`(feat):`** Add support for generated `README.md` files.

5 changes: 5 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-10-08.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 1.8.1
**`(fix):`** Fixes a bug where the `OauthTokenProvider.cs` was incorrectly referencing
the endpoint method, causing code to fail to compile.


9 changes: 9 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-10-28.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
## 1.8.4
**`(fix):`** Make sure summary and code examples in XML code comments are XML encoded.

## 1.8.3
**`(fix):`** Update generated .gitignore files to not ignore C# files inside of folders named Logs and Releases.

## 1.8.2
**`(fix):`** Fixes a bug where the ClientOptions would not compile due to incorrect Clone method generation.

51 changes: 51 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-10-30.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
## 1.8.5
**`(feat):`** Add forward-compatible enums. Set `experimental-enable-forward-compatible-enums` to `true` in the configuration to generate forward-compatible enums.
With forward-compatible enums you can create and parse an enum value that is not predefined.
- Forward compatible enums are not compatible with the previously generated native enums.
This is a breaking change for the users of the generated SDK, but only users using switch-case statements are affected.
- Use the `Value` property to get the string value of the enum. - For each value in the enum,
- a public static property is generated, which is an instance of the enum class,
- a public static property is generated within the nested `Values` class with the string value of the enum.

Here's a before and after for creating and parsing a resource with a predefined enum value and a custom enum value:
**Before**:
```csharp var resource = client.CreateResource(new Resource { Id = "2", EnumProperty = MyEnum.Value2 } ); // The line below does not compile because the enum does not have a `Value3` value. // resource = client.CreateResource(new Resource { Id = "3", EnumProperty = MyEnum.Value3 } ); resource = client.GetResource("3"); switch(resource.EnumProperty) {
case MyEnum.Value1:
Console.WriteLine("Value1");
break;
case MyEnum.Value2:
Console.WriteLine("Value2");
break;
default:
// this will never be reached until the SDK is updated with the new enum value
Console.WriteLine("Unknown");
break;
} if(resource.EnumProperty == MyEnum.Value1) {
Console.WriteLine("Value1");
} else if (resource.EnumProperty == MyEnum.Value2) {
Console.WriteLine("Value2");
} else {
// this will never be reached until the SDK is updated with the new enum value
Console.WriteLine("Unknown");
} ```
No exception is thrown, but the output incorrectly shows `Value1` because .NET falls back to the first value in the enum.
**After**:
```csharp var resource = client.CreateResource(new Resource { Id = "2", EnumProperty = MyEnum.Value2 } ); resource = client.CreateResource(new Resource { Id = "3", EnumProperty = MyEnum.Custom("value3") } ); resource = client.GetResource("3"); switch(resource.EnumProperty.Value) {
case MyEnum.Values.Value1:
Console.WriteLine("Value1");
break;
case MyEnum.Values.Value2:
Console.WriteLine("Value2");
break;
default:
Console.WriteLine(resource.EnumProperty.Value);
break;
} if(resource.EnumProperty == MyEnum.Value1) {
Console.WriteLine("Value1");
} else if (resource.EnumProperty == MyEnum.Value2) {
Console.WriteLine("Value2");
} else {
Console.WriteLine(resource.EnumProperty.Value);
} ```
The output correctly shows `Value3`.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-11-05.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 1.9.0
**`(feat):`** Add support for calling HTTP endpoints and gRPC endpoints within the same service.

3 changes: 3 additions & 0 deletions fern/products/sdks/overview/dotnet/changelog/2024-11-06.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 1.9.1
**`(chore):`** Update `System.Text.Json` dependency from `8.0.4` to `8.0.5` because a security patch was released to resolve [this vulnerability](https://github.com/advisories/GHSA-8g4q-xg66-9fp4).

Loading