Packages [expand] [collapse]
Released in version
12.15.0
12.14.0
12.13.1
12.13.0
12.12.1
12.11.0
12.10.0
12.9.3
12.9.2
12.9.1
12.9.0
12.8.0
12.7.0
12.6.0
12.5.0
12.4.2
12.4.1
12.4.0
12.3.0
12.2.0
12.1.1
12.1.0
12.0.4
12.0.3
11.21.2
11.21.1
11.21.0
11.20.17
11.20.16
11.20.15
11.20.14
11.20.12
11.20.11
11.20.10
11.20.9
11.20.8
11.20.7
11.20.6
11.20.5
11.20.4
11.20.3
11.20.2
11.20.1
11.20.0
11.19.0
11.18.1
11.17.0
11.16.0
11.15.1
11.15.0
11.14.2
11.14.1
11.14.0
11.13.2
11.13.1
11.13.0
11.12.0
11.11.3
11.11.2
11.11.1
11.11.0
11.10.6
11.10.5
11.10.4
11.10.3
11.10.2
11.10.1
11.10.0
11.9.4
11.9.3
11.9.2
11.9.1
11.9.0
11.8.1
11.8.0
11.7.1
11.7.0
11.6.0
11.5.4
11.5.3
11.5.2
11.5.1
11.5.0
11.4.0
11.3.4
11.3.3
11.3.2
11.3.1
11.3.0
11.2.1
11.2.0
11.1.0
10.10.5
10.10.4
10.10.3
10.10.2
10.10.1
10.10.0
10.9.2
10.9.1
10.9.0
10.8.0
10.7.0
10.6.0
10.5.0
10.4.3
10.4.2
10.4.1
10.4.0
10.3.2
10.3.1
10.3.0
10.2.0
10.1.0
10.0.1
9.12.5
9.12.4
9.12.3
9.12.2
9.12.1
9.12.0
9.11.0
9.10.2
9.10.1
9.10.0
9.9.1
9.9.0
9.8.3
9.8.2
9.8.1
9.8.0
9.7.3
9.7.2
9.7.1
9.7.0
9.6.1
9.6.0
9.5.1
9.5.0
9.4.0
9.3.3
9.3.2
9.3.1
9.3.0
9.2.1
9.2.0
9.1.0
9.0.3
9.0.2
9.0.1
9.0.0
8.11.0
8.10.1
8.10.0
8.9.0
8.8.2
8.8.1
8.8.0
8.7.0
8.6.0
8.5.0
8.4.0
8.3.0
8.2.0
8.1.0
8.0.0
7.19.2
7.19.1
7.19.0
7.18.0
7.17.0
7.16.1
7.16.0
7.15.0
7.14.2
7.14.1
7.14.0
7.13.3
7.13.2
7.13.1
7.13.0
7.11.0
7.10.0
7.9.1
7.9.0
7.8.2
7.8.1
7.8.0
7.7.1
7.7.0
7.6.5
7.6.4
7.6.3
7.6.2
7.6.1
7.6.0
7.5.1003.0
7.5.1002.0
7.5.1000.0
7.5.440.0
7.5.409.0
7.5.402.0
7.5.394.2
7.0.586.24
7.0.586.16
7.0.586.8
7.0.586.4
7.0.586.1
6.1.379.0

Release notes for Optimizely CMS and Customized Commerce updates

This topic lists Optimizely updates, delivered as NuGet packages and services. You decide which updates apply to your project.

Select a product, package, or service in the left menu, and then select one of the following filters from Item type and click Filter.

  • Bug – Display bug fixes.
  • Critical bug – Display only critical bug fixes.
  • Feature –  Display only new features (all features).
  • UI Feature – Display only end-user (user interface) features.

Note: NuGet packages listed here may not be immediately available in the Optimizely NuGet feed.

Latest changes

Item type
Filter on date
Items/Page
Area ID Type Description Released
CMS-27325
  Migrate CMS 11 to 12: Should remap VisitorGroupMembershipModel

VisitorGroupId property in VisitorGroupMembershipModel criterion model has been changed in CMS 12, and there is no remapping of the model in the database to reflect the change. This prevents the existing Visitor Group Membership groups from being modified and new ones to be created.

Error message:

The Type 'EPiServer.Personalization.VisitorGroups.Criteria.VisitorGroupMembershipModel' needs to be remapped in the Dynamic Data Store, see the Errors collection for more information.
Remapping can be done by applying the EPiServer.Data.Dynamic.EPiServerDataStoreAttribute attribute to the type,
setting its AutomaticallyRemapStore property to true and ensuring the <episerver.dataStore><dataStore> autoRemapStores attribute in web.config is set to true (or is not defined).
EPiServer.CMS.Core 12.15.0;
May 23, 2023
CMS-27382
  Exception message corrected

Fixed a message in ContentDataAttributeScanningAssigner.cs that had a word twice: "it only only supports types."

EPiServer.CMS.Core 12.15.0;
May 23, 2023
CMS-26761
  Re-introduce induced garbage collection (GC) as an optional part of Cache trimming

Adding an option to tweak garbage collection (GC) in relation to cache trimming.
When memory usage approaches a configured threshold, in-memory cache is trimmed, but performing a garbage collection is required to free up the memory held by evicted cache items. For this reason, the cache trimmer waits for a full generation 2 GC before trimming again; this was different from the .NET framework runtime where cache trimming ended with a forced GC. Forced GC is normally not good practice, but this fix adds CacheMemoryMonitorOptions.InducedGcInterval to reintroduce a similar behavior if the automatic GC timing (determined by the runtime) is insufficient in certain implementations.

EPiServer.CMS.Core 12.15.0;
May 23, 2023
CMS-27333
  Export/Import vs. Inlineblock: Exception: Value cannot be null. (Parameter 'contentType')

Fixed an issue that imported content but InlineBlock was not imported. If you tried to import recently exported content and did not select Update existing content items with matching ID, the following error occurred: Value cannot be null. (Parameter 'contentType')

 

EPiServer.CMS.Core 12.15.0;
May 23, 2023
CMS-27499
  Update CMS 11 dependency to work with newer versions of System.Security.Permissions

Updated the CMS 11 dependency range to include the latest version of System.Security.Permissions.

EPiServer.CMS.Core 11.21.1;
May 16, 2023
CMS-27137
  Support thumbnail and title in CMP DAM picker for CMS 11

Thumbnail and title fields for assets are used through the Optimizely Content Marketing Platform (CMP) Digital Asset Management (DAM) integration.

EPiServer.CMS.Core 11.21.0;
Apr 25, 2023
CMS-25176
  Link validation job fails for relative links when no wildcard host

The link validation job failed for relative links if there was no site defined with wildcard ('*') host. Error: This operation is not supported for a relative URI.

EPiServer.CMS.Core 11.21.0;
Apr 25, 2023
CMS-26265
  External link resolved incorrectly in TinyMCE

Fixed an issue that caused an external link to resolve incorrectly in TinyMCE.

EPiServer.CMS.Core 12.14.0;
Apr 18, 2023
CMS-26801
  CD GET does not return list block value in ContentArea inlineBlock

Fixed an issue where the CD GET did not return a list block value in ContentArea inlineBlock.

Steps to reproduce:

1. Call Content Definition API to create a block type BlockWithListBlockAndInteger, properties BlockList and Interger (or any property type)

{
    "name": "BlockWithListBlockAndInteger",
    "baseType": "Block",
    "properties": [
        {
            "name": "BlockList",
            "dataType": "PropertyCollection",
            "itemType": "EditorialBlock",
            "branchSpecific": false,
            "editSettings": {
                "visibility": "default",
                "displayName": "BlockList",
                "groupName": "Information",
                "sortOrder": 0
            }
        },
        {
            "name": "PropInteger",
            "dataType": "PropertyNumber",
            "branchSpecific": false,
            "editSettings": {
                "visibility": "default",
                "displayName": "PropInteger",
                "groupName": "Information",
                "sortOrder": 0
            }
        }
    ]
}

 2. Call Content Management API to create a ProductPage content, ContentArea has inlineBlock is BlockWithListBlockAndInteger

{
    "language": {
        "name": "sv"
    },
    "name": "InlineBlock_Page",
    "contentType": [
        "Block",
        "ProductPage"
    ],
    "parentLink": {
        "id": {{testContainerPageId}}
    },
    "status": "Published",
    "UniqueSellingPoints": {
        "value": [
            "1"
        ]
    },
    "RelatedContentArea": {
        "value": [
            {
                "displayOption": "wide",
                "tag": null,
                "inlineBlock": {
                    "contentType": [
                        "Block",
                        "BlockWithListBlockAndInteger"
                    ],
                    "blockList": {
                        "value": [
                            {
                                "name": "BlockList",
                                "propertyDataType": "PropertyBlock",
                                "propertyItemType": "EditorialBlock",
                                "mainBody": {
                                    "value": "EditorialBlock mainbody",
                                    "propertyDataType": "PropertyXhtmlString"
                                }
                            }
                        ],
                        "propertyDataType": "PropertyCollection",
                        "propertyItemType": "PropertyBlock"
                    },
                    "propInteger": {
                        "value": 1,
                        "propertyDataType": "PropertyNumber"
                    }
                }
            }
        ],
        "propertyDataType": "PropertyContentArea"
    }
}

3. Call Content Management API GET to get content in step 2

  • Observed result: The inlineBlock is correct as input
"inlineBlock": {
                    "contentType": [
                        "Block",
                        "BlockWithListBlockAndInteger"
                    ],
                    "blockList": {
                        "value": [
                            {
                                "name": "BlockList",
                                "propertyDataType": "PropertyBlock",
                                "propertyItemType": "EditorialBlock",
                                "mainBody": {
                                    "value": "EditorialBlock mainbody",
                                    "propertyDataType": "PropertyXhtmlString"
                                }
                            }
                        ],
                        "propertyDataType": "PropertyCollection",
                        "propertyItemType": "PropertyBlock"
                    },
                    "propInteger": {
                        "value": 1,
                        "propertyDataType": "PropertyNumber"
                    }
                }

4. Call Content Definition API GET to get content in step 2

  • Expected result: InlineBlock is same as result in step 3
  • Actual result: InlineBlock has blockList value is []
"inlineBlock": {
                    "contentType": [
                        "Block",
                        "BlockWithListBlockAndInteger"
                    ],
                    "blockList": {
                        "value": [],
                        "propertyDataType": "PropertyCollection",
                        "propertyItemType": "PropertyBlock"
                    },
                    "propInteger": {
                        "value": 1,
                        "propertyDataType": "PropertyNumber"
                    }
                }
EPiServer.CMS.Core 12.14.0;
Apr 18, 2023
CMS-26161
  Validate setting-based property validation

Validators (such as LengthPropertyValidator) may be activated (if configured) to validate property data after content data is sent to the back-end, and the validators validate property in line with settings provided by developers (such as  LengthValidationSettings).

Several types of settings are handled by developers only and Optimizely stores them in the database without any validation, even though data could be wrong (such as maximum < minimum). To make validation consistent and valid, Optimizely handles the validation of validator settings before saving them.

  • Maximum and Minimum may not be null at the same time.
  • Maximum should be greater than Minimum
  • For RegularExpressionValidationSettings and ItemRegularExpressionValidationSettings, the pattern used in validation process may not be null or empty.

These rules apply to the following:

  • LengthValidationSettings
  • RangeDateValidationSettings
  • RangeFloatNumberValidationSettings
  • RangeNumberValidationSettings
  • ItemLengthValidationSettings
  • ItemRangeDateValidationSettings
  • ItemRangeFloatNumberValidationSettings
  • ItemRangeNumberValidationSettings

 

EPiServer.CMS.Core 12.14.0;
Apr 18, 2023
1 2 3 4 5 6 Next