|
1 | | -### Version: 2.28.0 |
2 | | -#### Date: May-15-2026 |
| 1 | +### Version: 3.1.0 |
| 2 | +#### Date: Jul-20-2026 |
3 | 3 |
|
4 | 4 | ##### Feat: |
5 | 5 | - Entry Variants Branch Support |
6 | 6 | - Added support for passing an optional `branch` parameter to the `.Variant()` method in both `Entry` and `Query` classes. |
7 | 7 | - If the branch parameter is null or empty, it automatically falls back to the Stack's configured branch or "main". |
8 | 8 | - Added comprehensive unit and integration tests for Entry and Query variant branch logic. |
9 | 9 |
|
| 10 | +--- |
| 11 | + |
| 12 | +### Version: 3.0.0 |
| 13 | +#### Date: Jul-13-2026 |
| 14 | + |
| 15 | +##### Breaking Changes: |
| 16 | +- Removed `Newtonsoft.Json` dependency; all JSON serialisation now uses `System.Text.Json` (BCL) |
| 17 | +- `Entry.ToJson()`, `Query.Count()`, `AssetLibrary.Count()` now return `JsonObject` instead of `JObject` |
| 18 | +- `AssetLibrary.Query(JsonObject)` — parameter type changed from `JObject` to `JsonObject` |
| 19 | +- `ContentType.Fetch()`, `GlobalField.Fetch()`, `GlobalFieldQuery.Find()` now return `JsonObject` instead of `JObject` |
| 20 | +- `SerializerSettings` → `SerializerOptions` |
| 21 | +- Model classes use `[JsonPropertyName]` instead of `[JsonProperty]` |
| 22 | +- Requires **.NET 10** or later |
| 23 | +- Updated `contentstack.utils` dependency to `2.0.0` (final, non-beta) |
| 24 | + |
| 25 | +##### Feat: |
| 26 | +- Added `Endpoint` class for dynamic region-to-URL resolution via CDN-backed `regions.json` |
| 27 | +- Added `ContentstackRegionMap` to map `ContentstackRegion` enum to registry region IDs |
| 28 | +- Added `GCP_EU` region support |
| 29 | +- Added `ApiErrorBodyParser` for consistent API error envelope parsing |
| 30 | +- Added `JsonNodeConversion` and `JsonObjectMerge` utilities to replace Newtonsoft equivalents |
| 31 | +- Added `ContentstackJsonDefaults` — shared `JsonSerializerOptions` used across all custom converters |
| 32 | + |
| 33 | +##### Enh: |
| 34 | +- `Config.BaseUrl` now resolves hosts from the regions registry; removed hardcoded `regionCode()` and `HostURL` |
| 35 | +- Replaced `Console.WriteLine` with `Debug.WriteLine` in `ContentstackConvert` to suppress parse warnings from application stdout |
| 36 | + |
| 37 | +##### Chore: |
| 38 | +- Replaced `refresh-region.cs` with `refresh-region.py` — avoids MSBuild compiling the script as source |
| 39 | +- Added `build/contentstack.csharp.targets` to auto-deliver `refresh-region.py` to consumer projects on first build |
| 40 | +- Added `Assets/regions.json` to `.gitignore` |
| 41 | +- Added `EndpointTest.cs` |
| 42 | +- Updated .NET version in SCA scan CI from `7.0.x` to `10.0.x` |
| 43 | + |
| 44 | +##### Migration Guide: |
| 45 | +- See [Migrating from Newtonsoft.Json to System.Text.Json](https://www.contentstack.com/docs/developers/sdks/content-delivery-sdk/dot-net/migrate-dotnet-delivery-sdk-from-newtonsoft.json-to-system.text.json) for the full upgrade path from v2.x. |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +### Version: 3.0.0-beta.2 |
| 50 | +#### Date: Jun-22-2026 |
| 51 | + |
| 52 | +##### Feat: |
| 53 | +- Added `Endpoint` class for dynamic region-to-URL resolution via CDN-backed `regions.json` |
| 54 | +- Added `ContentstackRegionMap` to map `ContentstackRegion` enum to registry region IDs |
| 55 | +- Added `GCP_EU` region support |
| 56 | + |
| 57 | +##### Enh: |
| 58 | +- `Config.BaseUrl` now resolves hosts from the regions registry; removed hardcoded `regionCode()` and `HostURL` |
| 59 | + |
| 60 | +##### Chore: |
| 61 | +- Replaced `refresh-region.cs` with `refresh-region.py` — avoids MSBuild compiling the script as source |
| 62 | +- Added `build/contentstack.csharp.targets` to auto-deliver `refresh-region.py` to consumer projects on first build |
| 63 | +- Added `Assets/regions.json` to `.gitignore` |
| 64 | +- Added `EndpointTest.cs` |
| 65 | + |
| 66 | +--- |
| 67 | + |
| 68 | +### Version: 3.0.0-beta.1 |
| 69 | +#### Date: May-04-2026 |
| 70 | + |
| 71 | +##### Breaking Changes: |
| 72 | +- Removed `Newtonsoft.Json` dependency; all JSON serialisation now uses `System.Text.Json` (BCL) |
| 73 | + - `AssetJsonConverter` and `EntryJsonConverter` now implement `System.Text.Json.Serialization.JsonConverter<T>` |
| 74 | + - `ContentstackCollection<T>` no longer carries `[JsonObject]`; direct `JsonSerializer` usage on this type is not supported |
| 75 | +- Updated `contentstack.utils` from `1.0.6` to `2.0.0-beta.1` (major version bump) |
| 76 | + |
| 77 | +##### Feat: |
| 78 | +- Migrated all internal JSON handling to `System.Text.Json` |
| 79 | +- Added `ApiErrorBodyParser` for consistent API error envelope parsing |
| 80 | +- Added `JsonNodeConversion` and `JsonObjectMerge` utilities to replace Newtonsoft equivalents |
| 81 | +- Added `ContentstackJsonDefaults` — shared `JsonSerializerOptions` used across all custom converters |
| 82 | + |
| 83 | +##### Enh: |
| 84 | +- Replaced `Console.WriteLine` with `Debug.WriteLine` in `ContentstackConvert` to suppress parse warnings from application stdout |
| 85 | + |
| 86 | +##### Chore: |
| 87 | +- Updated .NET version in SCA scan CI from `7.0.x` to `10.0.x` |
| 88 | + |
| 89 | +--- |
| 90 | + |
| 91 | +### Version: 2.28.0 |
| 92 | +#### Date: Jun-24-2026 |
| 93 | + |
| 94 | +##### Fix: |
| 95 | +- Register `EmbeddedObjectConverter` in `ContentstackClient` constructor so `.includeEmbeddedItems().Fetch<T>()` deserializes `_embedded_items` correctly when the model implements `IEntryEmbedable`. No changes required in consumer code. |
| 96 | +- Upgraded utils dependency from `contentstack.utils 1.3.0` to `contentstack.utils 1.4.0` which ships the concrete `EmbeddedObject` class and `EmbeddedObjectConverter`. |
| 97 | + |
| 98 | +--- |
| 99 | + |
10 | 100 | ### Version: 2.27.0 |
11 | 101 | #### Date: Apr-23-2026 |
12 | 102 |
|
|
27 | 117 | - Comprehensive error handling tests for Timeline Preview edge cases |
28 | 118 |
|
29 | 119 |
|
| 120 | +--- |
| 121 | + |
30 | 122 | ### Version: 2.26.0 |
31 | 123 | #### Date: Feb-10-2026 |
32 | 124 |
|
|
0 commit comments