diff --git a/en/08_Changelogs/beta/5.2.0-beta1.md b/en/08_Changelogs/beta/5.2.0-beta1.md index a799ba804..9a577173d 100644 --- a/en/08_Changelogs/beta/5.2.0-beta1.md +++ b/en/08_Changelogs/beta/5.2.0-beta1.md @@ -129,7 +129,7 @@ We have provided a severity rating of the vulnerabilities below based on the CVS [`silverstripe/linkfield`](https://github.com/silverstripe/silverstripe-linkfield) 4.0.0-beta1 has been released and will become a commercially supported module. -That means it is now covered by our [minor release policy](/project_governance/minor_release_policy/), our [major release policy](/project_governance/major_release_policy/), and our [security release process](/contributing/managing_security_issues). +That means it will be covered by our [minor release policy](/project_governance/minor_release_policy/), our [major release policy](/project_governance/major_release_policy/), and our [security release process](/contributing/managing_security_issues). This module provides a [`Link`](api:SilverStripe\LinkField\Models\Link) model and two new form fields: [`LinkField`](api:SilverStripe\LinkField\Form\LinkField) and [`MultiLinkField`](api:SilverStripe\LinkField\Form\MultiLinkField). The intention of the module is to provide a clear and consistent approach to managing links in the CMS. diff --git a/en/08_Changelogs/rc/5.2.0-rc1.md b/en/08_Changelogs/rc/5.2.0-rc1.md new file mode 100644 index 000000000..a36a10a21 --- /dev/null +++ b/en/08_Changelogs/rc/5.2.0-rc1.md @@ -0,0 +1,1588 @@ +# 5.2.0-rc1 + +## Overview + +- [Security considerations](#security-considerations) +- [PHP 8.3 support](#php-83) +- [Official support for `silverstripe/linkfield`](#linkfield) +- [Features and enhancements](#features-and-enhancements) + - [New ORM features](#new-orm-features) + - [`GridField` components now work with arbitrary data](#gridfield-arbitrary-data) + - [`ErrorPage` allowed codes configuration](#errorpage-allowed-codes-configuration) + - [Versioned status badges for elemental](#elemental-badges) + - [Create random passwords for new users](#create-random-passwords-for-new-users) + - [Buttons to select all files and deselect all files](#bulk-action-buttons) + - [Support for validation using `symfony/validator`](#symfony-validator) + - [New searchable dropdown fields](#searchable-dropdown-field) + - [New `UrlField`](#urlfield) + - [Create file variants with different extensions](#file-variants) + - [More nuanced permissions for `/dev/*` routes](#dev-route-permissions) + - [Generic typehints](#generics) + - [New exception in React forms](#react-forms-exception) + - [Other new features](#other-new-features) +- [API changes](#api-changes) +- [Bug fixes](#bug-fixes) + +A full list of module versions included in CMS Recipe 5.2.0-rc1 is provided below. We recommend referencing recipes in your dependencies, rather than individual modules, to simplify version tracking. See [Recipes](/getting_started/). + +
+Included module versions + +| Module | Version | +| ------ | ------- | +| bringyourownideas/silverstripe-composer-update-checker | 4.1.0-rc1 | +| bringyourownideas/silverstripe-maintenance | 3.1.0-rc1 | +| colymba/gridfield-bulk-editing-tools | 4.0.2 | +| cwp/agency-extensions | 3.2.0-rc1 | +| cwp/starter-theme | 4.1.0-rc1 | +| cwp/watea-theme | 4.1.0-rc1 | +| dnadesign/silverstripe-elemental | 5.2.0-rc1 | +| dnadesign/silverstripe-elemental-userforms | 4.1.1 | +| silverstripe-themes/simple | 3.3.1 | +| silverstripe/admin | 2.2.0-rc1 | +| silverstripe/asset-admin | 2.2.0-rc1 | +| silverstripe/assets | 2.2.0-rc1 | +| silverstripe/auditor | 3.1.0-rc1 | +| silverstripe/blog | 4.2.0-rc1 | +| silverstripe/campaign-admin | 2.2.0-rc1 | +| silverstripe/cms | 5.2.0-rc1 | +| silverstripe/config | 2.1.0 | +| silverstripe/contentreview | 5.2.0-rc1 | +| silverstripe/crontask | 3.0.3 | +| silverstripe/documentconverter | 3.2.0-rc1 | +| silverstripe/dynamodb | 5.0.1 | +| silverstripe/elemental-bannerblock | 3.2.0-rc1 | +| silverstripe/elemental-fileblock | 3.1.0 | +| silverstripe/environmentcheck | 3.0.1 | +| silverstripe/errorpage | 2.2.0-rc1 | +| silverstripe/externallinks | 3.2.0-rc1 | +| silverstripe/framework | 5.2.0-rc1 | +| silverstripe/graphql | 5.2.0-rc1 | +| silverstripe/gridfieldqueuedexport | 3.2.0-rc1 | +| silverstripe/hybridsessions | 3.0.3 | +| silverstripe/iframe | 3.2.0-rc1 | +| silverstripe/installer | 5.2.0-rc1 | +| silverstripe/ldap | 2.2.0-rc1 | +| silverstripe/linkfield | 4.0.0-rc1 | +| silverstripe/login-forms | 5.2.0-rc1 | +| silverstripe/lumberjack | 3.1.0-rc1 | +| silverstripe/mfa | 5.2.0-rc1 | +| silverstripe/mimevalidator | 3.1.0-rc1 | +| silverstripe/realme | 5.3.0-rc1 | +| silverstripe/recipe-authoring-tools | 2.2.0-rc1 | +| silverstripe/recipe-blog | 2.2.0-rc1 | +| silverstripe/recipe-cms | 5.2.0-rc1 | +| silverstripe/recipe-collaboration | 2.2.0-rc1 | +| silverstripe/recipe-content-blocks | 3.2.0-rc1 | +| silverstripe/recipe-core | 5.2.0-rc1 | +| silverstripe/recipe-form-building | 2.2.0-rc1 | +| silverstripe/recipe-kitchen-sink | 5.2.0-rc1 | +| silverstripe/recipe-plugin | 2.0.0 | +| silverstripe/recipe-reporting-tools | 2.2.0-rc1 | +| silverstripe/recipe-services | 2.2.0-rc1 | +| silverstripe/registry | 3.2.0-rc1 | +| silverstripe/reports | 5.2.0-rc1 | +| silverstripe/restfulserver | 3.0.0 | +| silverstripe/securityreport | 3.1.0-rc1 | +| silverstripe/segment-field | 3.2.0-rc1 | +| silverstripe/session-manager | 2.2.0-rc1 | +| silverstripe/sharedraftcontent | 3.2.0-rc1 | +| silverstripe/siteconfig | 5.2.0-rc1 | +| silverstripe/sitewidecontent-report | 4.2.0-rc1 | +| silverstripe/spamprotection | 4.2.0-rc1 | +| silverstripe/staticpublishqueue | 6.2.0-rc1 | +| silverstripe/subsites | 3.2.0-rc1 | +| silverstripe/tagfield | 3.2.0-rc1 | +| silverstripe/taxonomy | 3.2.0-rc1 | +| silverstripe/textextraction | 4.1.0-rc1 | +| silverstripe/totp-authenticator | 5.2.0-rc1 | +| silverstripe/userforms | 6.2.0-rc1 | +| silverstripe/vendor-plugin | 2.0.2 | +| silverstripe/versioned | 2.2.0-rc1 | +| silverstripe/versioned-admin | 2.2.0-rc1 | +| silverstripe/versionfeed | 3.2.0-rc1 | +| silverstripe/webauthn-authenticator | 5.2.0-rc1 | +| symbiote/silverstripe-advancedworkflow | 6.2.0-rc1 | +| symbiote/silverstripe-gridfieldextensions | 4.0.5 | +| symbiote/silverstripe-multivaluefield | 6.1.0-rc1 | +| symbiote/silverstripe-queuedjobs | 5.1.0-rc1 | +| tractorcow/silverstripe-fluent | 7.1.0-rc1 | + +
+ + +## Release Candidate + +This version of Silverstripe CMS is a **release candidate** for an upcoming stable version, and should not be applied to production websites. We encourage developers to test this version in development / testing environments and [report any issues they encounter via GitHub](/contributing/issues_and_bugs/). + +## Security considerations {#security-considerations} + +Some security fixes that were previously released in the January security release that are mentioned in the [Silverstripe CMS security patches January 2024](https://www.silverstripe.org/blog/silverstripe-cms-security-patches-january-2024/) blog post are listed below. + +Review the individual vulnerability disclosure for more detailed descriptions of each security fix. We highly encourage upgrading your project to include the latest security patches. + +We have provided a severity rating of the vulnerabilities below based on the CVSS score. Note that the impact of each vulnerability could vary based on the specifics of each project. You can [read the severity rating definitions in the Silverstripe CMS release process](/contributing/release_process/#severity-rating). + +- [CVE-2023-49783 - No permission checks for editing or deleting records with CSV import form](https://www.silverstripe.org/download/security-releases/cve-2023-49783) Severity: Medium + - If you implement a custom subclass of [`BulkLoader`](api:SilverStripe\Dev\BulkLoader) or you're using a `BulkLoader` directly in your code, there may be additional actions you need to take to secure your project. +- [CVE-2023-48714 - Record titles for restricted records can be viewed if exposed by GridFieldAddExistingAutocompleter](https://www.silverstripe.org/download/security-releases/cve-2023-48714) Severity: Medium +- [CVE-2023-44401 - View permissions are bypassed for paginated lists of ORM data in GraphQL queries](https://www.silverstripe.org/download/security-releases/cve-2023-44401) Severity: Medium + +## Official support for `silverstripe/linkfield` {#linkfield} + +[`silverstripe/linkfield`](https://github.com/silverstripe/silverstripe-linkfield) 4.0.0-rc1 has been released and will become a commercially supported module. + +That means it will be covered by our [minor release policy](/project_governance/minor_release_policy/), our [major release policy](/project_governance/major_release_policy/), and our [security release process](/contributing/managing_security_issues). + +This module provides a [`Link`](api:SilverStripe\LinkField\Models\Link) model and two new form fields: [`LinkField`](api:SilverStripe\LinkField\Form\LinkField) and [`MultiLinkField`](api:SilverStripe\LinkField\Form\MultiLinkField). The intention of the module is to provide a clear and consistent approach to managing links in the CMS. + +This release of the module includes a bunch of features that were missing from earlier versions including: + +- Support for `has_many` relations +- Versioned support +- Validation +- The ability to declare which link types are allowed per field +- Improved UI including better keyboard navigation. + +> [!NOTE] +> `silverstripe/linkfield` 4.0.0 requires `silverstripe/framework` 5.2.0 or higher due to its reliance on some new API. + +You can install it as soon as you update your project. + +```bash +composer require silverstripe/linkfield +``` + +We're still working on the migration guides and some migration tasks for this module. You may want to keep an eye on the following issues: + +- [Upgrade from `silverstripe/linkfield` v2 or v3](https://github.com/silverstripe/silverstripe-linkfield/issues/228) +- [Migrate from `sheadawson/silverstripe-linkable`](https://github.com/silverstripe/silverstripe-linkfield/issues/230) +- [Migrate from `gorriecoe/silverstripe-link`](https://github.com/silverstripe/silverstripe-linkfield/issues/229) + +Once the above have all been resolved, you can use that documentation and copy the relevant `BuildTask` code into your projects if you need it. These will be included in `silverstripe/linkfield` directly in the next minor release. + +Check out [the linkfield documentation](/optional_features/linkfield/) for more information about this module. + +## Features and enhancements + +### New ORM features {#new-orm-features} + +This release comes jampacked with new ORM features, granting you access to some new abstractions for more powerful and efficient queries. + +#### Manipulating eager loaded relation queries {#eager-loading} + +Filtering or sorting an [`EagerLoadedList`](api:SilverStripe\ORM\EagerLoadedList) (i.e. after the eager loading query has been executed) is done in PHP rather than in the database. That's a lot less powerful and significantly slower than performing those manipulations on `DataList` before executing the query. For example, you can't filter or sort `EagerLoadedList` by fields on relations using dot notation (e.g. `sort('MySubRelation.Title')` won't work). + +To alleviate this problem, we've introduced a new syntax for eager loading relations that lets you directly manipulate the eager loading queries. + +The old syntax is still supported, because it can be used in templates for simple scenarios. + +In a test setup looping through 100 records each with 100 related records (for a total of 10,000 records per test run), the following performance improvements were observed for different types of relations (early manipulations in the database vs manipulating results in PHP): + +- `has_many` - ~581% faster (0.1080s vs 0.7358s) +- `many_many` - ~612% faster (0.1264s vs 0.9002s) +- `many_many` through - ~327% faster (0.2511s vs 1.0719s) + +##### Usage {#eager-loading-usage} + +You can pass an associative array into the [`DataList::eagerLoad()`](api:SilverStripe\ORM\DataList::eagerLoad()) method, with relation chains as the keys and callbacks as the values. The callback accepts a `DataList` argument, and must return a `DataList`. + +```php +use SilverStripe\ORM\DataList; + +$teams = Team::get()->eagerLoad([ + 'Players' => fn (DataList $list) => $list->filter(['Age:GreaterThan' => 18]), +]); +``` + +> [!WARNING] +> It is very important to remember to return the list from your callback function. + +There are a few edge cases to be aware of with this new feature. To learn more, see [eager loading](/developer_guides/model/relations/#eager-loading). + +#### Multi-relational `has_one` relations + +Traditionally, if you wanted to have multiple `has_many` relations for the same class, you would have to include a separate `has_one` relation for *each* `has_many` relation. + +This release includes a new `has_one` syntax to declare that your `has_one` should be allowed to handle multiple reciprocal `has_many` relations. The syntax for that is as follows: + +```php +namespace App\Model; + +use SilverStripe\ORM\DataObject; +use SilverStripe\ORM\DataObjectSchema; + +class MyExample extends DataObject +{ + // ... + + private static array $has_one = [ + 'MyMultiRelationalRelation' => [ + // The class here is the class for the has_one - it must be polymorphic. + 'class' => DataObject::class, + // Setting this to true is what defines this has_one relation as multi-relational + DataObjectSchema::HAS_ONE_MULTI_RELATIONAL => true, + ], + ]; +} +``` + +> [!TIP] +> Multi-relational `has_one` relations *must* be polymorphic. + +Multiple `has_many` relations on a single class can point to the above `has_one` relation using dot notation, and they will be correctly saved and resolved when you get the relation list. + +> [!WARNING] +> This new feature means sometimes the value in the associative `has_one` configuration array will be an array, rather than just a string for the class name. +> If you are relying on fetching this configuration to find the class names of `has_one` relations, consider using +> [`DataObject::hasOne()`](api:SilverStripe\ORM\DataObject::hasOne()) or [`DataObjectSchema::hasOneComponent()`](api:SilverStripe\ORM\DataObjectSchema::hasOneComponent()) instead. + +See [multi-relational `has_one` in the relations docs](/developer_guides/model/relations/#multi-relational-has-one) for more details about this relation type. + +#### `UNION` clause {#orm-union-clause} + +Abstractions for the SQL `UNION` clause have been added to `SQLSelect` and `DataQuery`. + +To add a `UNION` clause to an `SQLSelect`, call the [`SQLSelect::addUnion()`](api:SilverStripe\ORM\Queries\SQLSelect::addUnion()) method and pass in the `SQLSelect` query you want to combine using a union. + +You can leave the second argument blank for a default union (which is functionally equivalent to a distinct union in MySQL) - or you can pass in one of the `SQLSelect::UNION_ALL` or `SQLSelect::UNION_DISTINCT` constants for a `UNION ALL` or `UNION DISTINCT` clause respectively. + +```php +use SilverStripe\ORM\Queries\SQLSelect; + +$baseQuery = SQLSelect::create()->setFrom($tableName)->addWhere(/*...*/); +$anotherQuery = SQLSelect::create()->setFrom($tableName)->addWhere(/*...*/); +$baseQuery->addUnion($anotherQuery, SQLSelect::UNION_DISTINCT); +``` + +To add a `UNION` clause to an `DataQuery`, call the [`DataQuery::union()`](api:SilverStripe\ORM\DataQuery::union()) method and pass in either another `DataQuery` or an `SQLSelect` query you want to combine using a union. The same constants used for `SQLSelect` can be passed in here as well. + +```php +use SilverStripe\ORM\DataQuery; +use SilverStripe\ORM\Queries\SQLSelect; + +$baseQuery = DataQuery::create(MyClass::class)->where(/*...*/); +$anotherQuery = DataQuery::create(MyClass::class)->where(/*...*/); +$baseQuery->union($anotherQuery, SQLSelect::UNION_ALL); +``` + +#### Common table expressions (CTE aka the `WITH` clause) {#orm-with-clause} + +Abstractions for Common Table Expressions (aka the SQL `WITH` clause) have been added to `SQLSelect` and `DataQuery`. + +Common Table Expressions are a powerful tool both for optimising complex queries, and for creating recursive queries. This functionality is abstracted in the [`SQLSelect::addWith()`](api:SilverStripe\ORM\Queries\SQLSelect::addWith()) and [`DataQuery::with()`](api:SilverStripe\ORM\DataQuery::with()) methods. + +Older database servers don't support this functionality, and the core implementation is only valid for MySQL and MariaDB. If you're using this functionality in an open source module or a project that you can't guarantee the type and version of database being used, you should wrap the query in a condition checking if CTEs are supported. You can do that by calling [`DB::get_conn()->supportsCteQueries()`](api:SilverStripe\ORM\Connect\Database::supportsCteQueries()). + +Check out the [SQL queries](/developer_guides/model/sql_select/#cte) and [data model and ORM](/developer_guides/model/data_model_and_orm/#cte) documentation for usage details and examples. + +#### Support for multiple (or no) tables in the `FROM` clause {#orm-from-clause} + +Previously the `SQLConditionalExpression` abstraction couldn't handle multiple table names being passed into its `FROM` clause. This restriction has been removed, so you can now have queries selecting from multiple tables (without needing joins) so long as your database supports it. + +> [!WARNING] +> If you were working around that limitation by adding an explicit comma to subsequent tables in the `FROM` clause for your queries, you'll need to remove the comma. + +You can also now choose to *not* have a `FROM` clause in an `SQLSelect` query, which can be useful for setting up simple queries to be used in unit tests. + +#### Better support for custom column selections in `DataQuery` {#orm-custom-columns} + +When using `DataQuery`, it is possible to use collations and other raw SQL field statements as part of the query's `SELECT` clause. If these have an alias that matches the name of an existing database column, this normally results in an exception being thrown. + +You can choose to allow those conflicts to be resolved via a [`CASE`](https://dev.mysql.com/doc/refman/en/case.html) statement instead of throwing an exception. In that scenario, if the value in the database column is null, the value for your custom field statement will be used. This is enabled per query by passing `true` to the new [`DataQuery::setAllowCollidingFieldStatements()`](api:SilverStripe\ORM\DataQuery::setAllowCollidingFieldStatements()) method. + +```php +$query = new DataQuery(MyClass::class); +$query->selectField('\'my custom title\' AS "Title"'); +$query->setAllowCollidingFieldStatements(true); +``` + +#### Other ORM changes + +- Abstractions for `RIGHT JOIN` have been added with the new [`DataList::rightJoin()`](api:SilverStripe\ORM\DataList::rightJoin()), [`DataQuery::rightJoin()`](api:SilverStripe\ORM\DataQuery::rightJoin()), and [`SQLConditionalExpression::addRightJoin()`](api:SilverStripe\ORM\Queries\SQLConditionalExpression::addRightJoin()) methods. The signature for these methods is identical to their `LEFT JOIN` and `INNER JOIN` counterparts. +- Developers can now opt in to including a comment on all ORM database queries indicating where they were executed from. See [debugging database queries](/developer_guides/debugging/#debugging-database-queries) for details. + +### `GridField` components now work with arbitrary data {#gridfield-arbitrary-data} + +It has historically been difficult to use a `GridField` to display data that isn't represented by `DataObject` records - and even more difficult to edit that data. + +We have removed several barriers to using the `GridField` to display arbitrary data. Descriptive exceptions will be thrown when specific information cannot be dynamically identified, such as which columns to display and what form fields to use when viewing or editing data. Note that these new exceptions don't break backwards compatibility. Any scenario that will throw an exception now would have already done so - but the old exception wouldn't have had enough information to quickly understand what changes are needed to get a functioning `GridField`. + +This change applies to all classes in `silverstripe/framework` which implement `GridFieldComponent`, except for [`GridFieldAddExistingAutocompleter`](api:SilverStripe\Forms\GridField\GridFieldAddExistingAutocompleter) and [`GridFieldLevelup`](api:SilverStripe\Forms\GridField\GridFieldLevelup) which both explicitly require the model class for the associated `GridField` to be a subclass of `DataObject`. + +This new capability can be very useful for integrating with third-party services, as it allows you to view and edit data from a web API without needing to synchronise that data with your database. + +See [using `GridField` with arbitrary data](/developer_guides/forms/using_gridfield_with_arbitrary_data/) for more information. + +### `ErrorPage` allowed codes configuration + +By default, all available error codes are present in the "Error code" dropdown in the CMS. This can be overwhelming and there are a few (looking at you, [418](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/418)) that can +be confusing. To that end, you can now limit the codes in the dropdown with the [`ErrorPage.allowed_error_codes`](api:SilverStripe\ErrorPage\ErrorPage->allowed_error_codes) configuration array like so: + +```yml +SilverStripe\ErrorPage\ErrorPage: + allowed_error_codes: + - 400 + - 403 + - 404 + - 500 +``` + +Alongside this change, we've also added some more HTTP status codes to the list of available error codes. See the source code for [`ErrorPage::getCodes()`](api:SilverStripe\ErrorPage\ErrorPage::getCodes()) for the full list. + +### Versioned status badges for elemental {#elemental-badges} + +Elemental content blocks now feature versioned status badges which adds a textual indicator of whether the block is in draft or a modified state. This textual label is in addition to the dot icon indicator that was already there. The new label is only provided if the [`Versioned`](api:SilverStripe\Versioned\Versioned) extension is used for elemental blocks, which it is by default. + +![examples of the versioned labels](../_images/changelogs/5.2.0/elemental-badge.png) + +To improve consistency with the rest of the CMS interface, the blue dot icon (which previously indicated an unsaved state) has been removed. + +### Create random passwords for new users + +If a new user is created in the security section of the CMS with an empty password, a strong random password will now be automatically assigned to the user which will not be visible to the person creating the user. The user will need to click the "I've forgotten my password" link in order to receive a password reset email so they can choose a new password. + +This is a behavioural change from the change introduced in Silverstripe CMS 5.1.0 where blank passwords were disallowed when creating a new user due to a security concern. The change in 5.1.0 meant the administrator setting up the user could know what the user's password was until the user changed it. + +This only applies to users created through the security section of the CMS. Users created programatically with an empty password will not have a random password automatically assigned to them. This is the current behaviour and is often used for non-production purposes such as unit-testing. + +### Buttons to select all files and deselect all files {#bulk-action-buttons} + +The files section of the CMS now has buttons to select and deselect all files and folders currently on the screen, which is useful when you want to perform bulk operations. These buttons show at the bottom of the screen in the bulk actions toolbar. The deselect all button also shows the number of currently selected items. As these buttons are on the bulk actions toolbar they are only visible if at least one item has been selected. + +![select all functionality in the CMS](../_images/asset-admin-select-all.png) + +### Support for validation using `symfony/validator` {#symfony-validator} + +We've added a new [`ConstraintValidator`](api:SilverStripe\Core\Validation\ConstraintValidator) class which provides an abstraction around [`symfony/validator`](https://symfony.com/doc/current/components/validator.html), so you can easily validate values against symfony's validation constraints and get a [`ValidationResult`](api:SilverStripe\ORM\ValidationResult) object with the result. + +```php +use SilverStripe\Core\Validation\ConstraintValidator; + +/** + * @var \Symfony\Component\Validator\Constraint $constraint + * @var \SilverStripe\ORM\ValidationResult $result + */ +$result = ConstraintValidator::validate($valueToValidate, $constraint); +``` + +For example, to test if a URL is valid: + +```php +use SilverStripe\Core\Validation\ConstraintValidator; +use Symfony\Component\Validator\Constraints\Url; + +$isValid = ConstraintValidator::validate($url, new Url())->isValid(); +``` + +You can use most of the constraints listed in Symfony's [supported constraints](https://symfony.com/doc/current/reference/constraints.html) documentation, though note that some of them require additional symfony dependencies. + +We explicitly don't support validation using constraints that rely on `symfony/doctrine`. + +### New `HasOneRelationFieldInterface` for better results with `RequiredFields` + +We've added a new interface [`HasOneRelationFieldInterface`](api:SilverStripe\Forms\HasOneRelationFieldInterface) which is used by the [`RequiredFields`](api:SilverStripe\Forms\RequiredFields) form validator to identify [`FormField`](api:SilverStripe\Forms\FormField) classes that represent a `has_one` relation. This allows it to more accurately identify when those fields are missing a user-entered value. + +If you have a custom `FormField` subclass that is exclusively used to represent a `has_one` relation, you may want to implement this new interface. + +### New searchable dropdown fields {#searchable-dropdown-field} + +We've added a pair of new dropdown form fields which are particularly useful for dropdowns with a large number of options. + +- [`SearchableDropdownField`](api:SilverStripe\Forms\SearchableDropdownField) is similar to [`DropdownField`](api:SilverStripe\Forms\DropdownField) which allows selecting a single option. +- [`SearchableMultiDropdownField`](api:SilverStripe\Forms\SearchableMultiDropdownField) is similar to [`ListboxField`](api:SilverStripe\Forms\ListboxField) which allows selecting multiple options. + +Both of these fields include a `setIsLazyLoaded()` method which will load a limited number of options at a time using an AJAX request matching what a user has typed in. There are quite a few options to customise these, including optionally using `SearchContext` to power the lazy-loaded search functionality. We encourage you to look at the API documentation for these new classes to see what you can do with them. + +Note that these are both powered by react components, and are only intended to be used within the CMS. If you want to use them on the front end of your project you will need to provide your own templates and JavaScript implementation for them. + +#### Auto scaffolding of `has_one` relations + +`SearchableDropdownField` will now be used when automatically scaffolding `has_one` relations into forms. Previously `DropdownField` was used, and when there were over 100 items [`NumericField`](api:SilverStripe\Forms\NumericField) was used - which was not user friendly. + +Previously the [`DBForeignKey.dropdown_field_threshold`](api:SilverStripe\ORM\FieldType\DBForeignKey->dropdown_field_threshold) config property was used as the threshold of the number of options to decide when to switch between auto-scaffolding a `DropdownField` and a `NumericField`. This configuration property is now used as the threshold of the number of options to decide when to start using lazy-loading for the `SearchableDropdownField`. + +### New `UrlField` {#urlfield} + +We've added a new [`UrlField`](api:SilverStripe\Forms\UrlField) which is a subclass of [`TextField`](api:SilverStripe\Forms\TextField) with some additional validation rules (powered by the [`Url` symfony validation constraint](https://symfony.com/doc/current/reference/constraints/Url.html)). It will validate that the value entered is a valid absolute URL with a protocol (either `http` or `https`) and a host. + +### Create file variants with different extensions {#file-variants} + +We've added a low-level API which allows the creation of file variants with a different extension than the original file's extension. A file variant is a manipulated version of the original file - for example if you resize an image or convert a file to another format, this will generate a variant (leaving the original file intact). + +Some examples of when you might want this are: + +- Generating thumbnails for videos, documents, etc +- Converting images to `.webp` for faster page load times +- Converting documents to `.pdf` so downloaded documents are more portable + +See [file manipulation](/developer_guides/files/file_manipulation/#convert-a-file-to-a-different-format) for details about how to use this new API. + +### More nuanced permissions for `/dev/*` routes {#dev-route-permissions} + +Previously, all `/dev/*` routes registered with [`DevelopmentAdmin`](api:SilverStripe\Dev\DevelopmentAdmin) (for example `/dev/tasks/MyBuildTask`) could only be access by administrator users, and this couldn't be configured. + +Now, all of the controllers which handle these routes that come packaged in a core or supported module have a new `init_permissions` configuration property (e.g. [`TaskRunner.init_permissions`](api:SilverStripe\Dev\TaskRunner->init_permissions)). This new configuration can be used to grant non-administrative users access to these routes. + +You can also now optionally implement a `canView()` method on your `BuildTask` implementations to restrict accessed for specific tasks even further. This means you can grant access to *some* tasks to specific users or groups without granting access to *all* tasks. + +### Generic typehints {#generics} + +We've added typehints using PHPStan-style generic types to PHPDocs in many areas of the codebase of supported modules. The primary goal of this is to improve the developer experience by correctly reporting to your IDE what types it should expect, for example when looping through a `DataList`. In many cases your IDE will now know what types to expect without needing you to prompt it with [`@var` annotation comments](https://docs.phpdoc.org/3.0/guide/references/phpdoc/tags/var.html). + +> [!NOTE] +> There are some cases where this goal conflicts with having types that are correctly identified by PHPStan itself (or other static analysis tools). For example conditional return types aren't supported as widely in IDEs as generic types themselves are, so we opted to not use conditional return types even when those would result in a more accurate type for static analysis tools. + +See [Generics By Examples | PHPStan](https://phpstan.org/blog/generics-by-examples) and [Generics in PHP using PHP DocComments | DEVSENSE](https://blog.devsense.com/2022/generics-in-php-using-phpdoc) for more information about PHP generic typehints. + +While you should see some improvements immediately after updating, there are some changes you can make to your own codebase to best use the new generic type hints. + +#### Generic typehints when returning lists {#generics-return-lists} + +In your project code, any time you return an instance of `SS_List` (such as a `DataList` or `ArrayList`), you can add a generic typehint to declare what kind of object the returned list contains. This example will hint to the IDE that it returns a `DataList` containing `CarouselItem` records: + +```php +use App\Model\CarouselItem; +use SilverStripe\ORM\DataList; + +/** + * @return DataList + */ +function getCarouselItems(): DataList +{ + return CarouselItem::get(); +} +``` + +#### Generic typehints in `Extension` subclasses {#generics-extensions} + +The generic typing on the `Extension` class can be used to tell your IDE what type to expect for the [`$owner`](api:SilverStripe\Core\Extension->owner) property and [`getOwner()`](api:SilverStripe\Core\Extension::getOwner()) method. + +For this to be useful, you need to tell your IDE that your subclass `@extends` the `Extension` class, and tell it what type the owner should be. + +> [!WARNING] +> Don't forget to include a `use` statement, even if you're not explicitly referencing the type anywhere in your actual code. Your IDE needs the `use` statement to resolve the FQCN for the class you're referencing in the typehint. + +```php +namespace App\Extension; + +use SilverStripe\Core\Extension; +use SilverStripe\SiteConfig\SiteConfig; + +/** + * @extends Extension + */ +class SiteConfigExtension extends Extension +{ + // ... +} +``` + +This is also a useful way to indicate to developers at a glance what type(s) the extension is designed to be applied to. + +For example you might have an extension that can apply to both the `LeftAndMain` and `GridFieldDetailForm_ItemRequest` classes, which you can indicate using a union typehint: `@extends Extension`. + +#### Generic typehints in `ContentController` subclasses {#generics-contentcontroller} + +If you use the [`data()`](api:SilverStripe\CMS\Controllers\ContentController::data()) method or the [`$dataRecord`](api:SilverStripe\CMS\Controllers\ContentController->dataRecord) property in your page controllers, you may find it useful for your IDE to know specifically what page class that data represents. + +For this to work, you need to make sure your base `PageController` class has a `@template` type to extend. + +> [!TIP] +> Any time you use `@extends`, the class being extended needs to have a `@template` type so that your IDE knows what the type you're passing in is going to be used for. + +```php +namespace { + + use SilverStripe\CMS\Controllers\ContentController; + + /** + * @template T of Page + * @extends ContentController + */ + class PageController extends ContentController + { + // ... + } +} +``` + +```php +namespace App\PageType; + +use PageController; + +/** + * @extends PageController + */ +class HomepageController extends PageController +{ + // ... +} +``` + +### New exception in react forms {#react-forms-exception} + +[`FormSchema::getSchema()`](api:SilverStripe\Forms\Schema::getSchema()) now throws a [`LogicException`](https://www.php.net/manual/en/class.logicexception.php) if a react component was not found for a field type. + +> [!WARNING] +> If your project or a module you're using is currently trying to include a field which doesn't have a react component (such as `GridField`) into a react-rendered form, it will have been silently failing. The form will have been rendering everything except for the field(s) which have no react component. +> +> This will now fail by throwing an exception, which means your form won't render at all until you remove or replace the field(s). + +### Other new features + +- We've added a new [`SiteTree.hide_pagetypes`](api:SilverStripe\CMS\Model\SiteTree->hide_pagetypes) configuration property. Unlike [`SiteTree.hide_ancestor`](api:SilverStripe\CMS\Model\SiteTree->hide_ancestor) (which has [now been deprecated](#api-silverstripe-cms)), this is an array. This allows you to define all page types that should be hidden in a single configuration property in your YAML configuration. +- We've added a new [`DBText.summary_sentence_separators`](api:SilverStripe\ORM\FieldType\DBText->summary_sentence_separators) configuration property. This is used to split sentences in the [`DBText::Summary()`](api:SilverStripe\ORM\FieldType\DBText::Summary()) method. The default configuration value includes `.`, `!`, and `?`. Previously, only `.` was used to split sentences. +- You can now upload [Braille ASCII file format](https://en.wikipedia.org/wiki/Braille_ASCII) (`.brf`) files to the CMS without needing to modify the [allowed file types](/developer_guides/files/allowed_file_types/). +- We've added a new [`FilesystemPublisher.disallowed_status_codes`](api:SilverStripe\StaticPublishQueue\Publisher\FilesystemPublisher->disallowed_status_codes) configuration property to the `silverstripe/staticpublishqueue` module, allowing you to avoid caching responses for certain HTTP status codes. See [the documentation](https://github.com/silverstripe/silverstripe-staticpublishqueue/blob/6/docs/en/basic_configuration.md#excluding-response-codes) for more details. +- We've added a new [`LeftAndMain.extra_requirements_i18n`](api:SilverStripe\Admin\LeftAndMain->extra_requirements_i18n) configuration property which can be used to load i18n JavaScript localisation files into the CMS. +- We've added a new [`LeftAndMain::jsonSuccess()`](api:SilverStripe\Admin\LeftAndMain::jsonSuccess()) method to make it easier to return JSON data in a response from a `LeftAndMain` subclass. +- The [Composer runtime API](https://getcomposer.org/doc/07-runtime.md#installed-versions) is now being used in the [`VersionProvider`](api:SilverStripe\Core\Manifest\VersionProvider) class instead of relying on the `composer.lock` file. + +## API changes + +### `silverstripe/framework` {#api-silverstripe-framework} + +The following legacy subclasses of [`PasswordEncryptor`](api:SilverStripe\Security\PasswordEncryptor) have been deprecated, and will be removed in a future major release. If you are using one of these password encryptors in your projects, we strongly recommend swapping to one that has not been deprecated ([`PasswordEncryptor_Blowfish`](api:SilverStripe\Security\PasswordEncryptor_Blowfish) is the current recommendation, and is the default encryptor for passwords in new installations). Note that changing the password encryptor will also require that all of your members reset their passwords. + +- [`PasswordEncryptor_None`](api:SilverStripe\Security\PasswordEncryptor_None) +- [`PasswordEncryptor_LegacyPHPHash`](api:SilverStripe\Security\PasswordEncryptor_LegacyPHPHash) +- [`PasswordEncryptor_MySQLOldPassword`](api:SilverStripe\Security\PasswordEncryptor_MySQLOldPassword) +- [`PasswordEncryptor_MySQLPassword`](api:SilverStripe\Security\PasswordEncryptor_MySQLPassword) + +The `getThrowExceptionOnBadDataType()` and `setThrowExceptionOnBadDataType()` methods have been deprecated in the following classes. These methods are used to allow silent failures which result from poorly configured `GridFieldConfig`. In a future major release these methods will be removed and the associated failures will always throw exceptions, prompting developers to correctly set up their configuration in a way that works the way they expect it to. + +- [`GridFieldFilterHeader`](api:SilverStripe\Forms\GridField\GridFieldFilterHeader::setThrowExceptionOnBadDataType()) +- [`GridFieldPaginator`](api:SilverStripe\Forms\GridField\GridFieldPaginator::setThrowExceptionOnBadDataType()) +- [`GridFieldSortableHeader`](api:SilverStripe\Forms\GridField\GridFieldSortableHeader::setThrowExceptionOnBadDataType()) + +The following unused API have been deprecated and will be removed in a future major release: + +- Configuration property [`DataObject.subclass_access`](api:SilverStripe\ORM\DataObject->subclass_access) +- Public static method [`DataObject::disable_subclass_access()`](api:SilverStripe\ORM\DataObject::disable_subclass_access()) +- Public static method [`DataObject::enable_subclass_access()`](api:SilverStripe\ORM\DataObject::enable_subclass_access()) + +The [`ViewableData::getIterator()`](api:SilverStripe\View\ViewableData::getIterator()) method has been deprecated and will be removed in a future major release. + +### `silverstripe/cms` {#api-silverstripe-cms} + +The [`SiteTree.hide_ancestor`](api:SilverStripe\CMS\Model\SiteTree->hide_ancestor) configuration property has been deprecated. Use [`SiteTree.hide_pagetypes`](api:SilverStripe\CMS\Model\SiteTree->hide_pagetypes) instead. + +### `silverstripe/versioned` {#api-silverstripe-versioned} + +The `$having` parameter in the [`Versioned::Versions()`](api:SilverStripe\Versioned\Versioned::Versions()) method has been deprecated. This parameter was never used, and has been removed from the method signature. + +## Bug fixes + +- The assets admin section now respects the [`Upload_Validator.default_max_file_size`](api:SilverStripe\Assets\Upload_Validator->default_max_file_size) configuration if [`AssetAdmin.max_upload_size`](api:SilverStripe\AssetAdmin\Controller\AssetAdmin->max_upload_size) has not been explicitly set for your project. Previously, asset admin would ignore `Upload_Validator.default_max_file_size` and just use the PHP `upload_max_filesize` ini configuration by default. See [file upload limits](/developer_guides/files/file_management/#upload-limits) for more details. +- Redirector pages with a link to a missing or unpublished page/file will now return a 404 response. You can revert to the previous behaviour by setting the [`RedirectorPageController.missing_redirect_is_404`](api:SilverStripe\CMS\Model\RedirectorPageController->missing_redirect_is_404) configuration property to `false`. + +This release includes a number of bug fixes to improve a broad range of areas. Check the change logs for full details of these fixes split by module. Thank you to the community members that helped contribute these fixes as part of the release! + + + + +## Change log + +### Security {#changelog-security} + +- silverstripe/framework (5.1.0 -> 5.2.0-rc1) + - 2023-12-06 [4b1b48704](https://github.com/silverstripe/silverstripe-framework/commit/4b1b487041536f958a68a17400686d16eb77d1bb) Allow permission checks in BulkLoader (Guy Sartorelli) - See [cve-2023-49783](https://www.silverstripe.org/download/security-releases/cve-2023-49783) + - 2023-11-29 [873b721b6](https://github.com/silverstripe/silverstripe-framework/commit/873b721b6b999c5ac189326cf9e1893a4df7d1f8) Don't show or add records the member isn't allowed to (Guy Sartorelli) - See [cve-2023-48714](https://www.silverstripe.org/download/security-releases/cve-2023-48714) + +- silverstripe/admin (2.1.0 -> 2.2.0-rc1) + - 2023-12-06 [9b96bbde](https://github.com/silverstripe/silverstripe-admin/commit/9b96bbde2857c9143ce6266093b6935e0a0e1d2c) Opt in to permission checks in bulk loaders (Guy Sartorelli) - See [cve-2023-49783](https://www.silverstripe.org/download/security-releases/cve-2023-49783) + +- silverstripe/graphql (5.1.0 -> 5.2.0-rc1) + - 2023-10-31 [8e64567](https://github.com/silverstripe/silverstripe-graphql/commit/8e645670aecd6858069f33bc092485d09ee9f734) Ensure canView() checks are run (Steve Boyd) - See [cve-2023-44401](https://www.silverstripe.org/download/security-releases/cve-2023-44401) + +### Features and enhancements {#changelog-features-and-enhancements} + +- silverstripe/recipe-cms (5.1.0 -> 5.2.0-rc1) + - 2024-01-17 [9dbd01e](https://github.com/silverstripe/recipe-cms/commit/9dbd01e7046135c17235e870bc9c787f1ab70c9b) Add generic types (#79) (Guy Sartorelli) + +- silverstripe/assets (2.1.0 -> 2.2.0-rc1) + - 2024-01-25 [3326749](https://github.com/silverstripe/silverstripe-assets/commit/3326749de4848186f6649b692248dce017bf0ae6) Refactor FileIDHelper classes to reduce code duplication (#587) (Guy Sartorelli) + - 2024-01-17 [2ed92f8](https://github.com/silverstripe/silverstripe-assets/commit/2ed92f8f357eb550a8c4a3b2e956ab0c8b54605e) Add generic types (#584) (Guy Sartorelli) + - 2024-01-16 [a40ab50](https://github.com/silverstripe/silverstripe-assets/commit/a40ab5085a7bf2d46f33effa950814e58a014523) Allow file variants with different extensions (Guy Sartorelli) + +- silverstripe/framework (5.1.0 -> 5.2.0-rc1) + - 2024-03-14 [777056d86](https://github.com/silverstripe/silverstripe-framework/commit/777056d8611ad3ba91d13853bf721e2506f13146) fieldList is an array or null (Thomas Portelange) + - 2024-03-12 [b031ade73](https://github.com/silverstripe/silverstripe-framework/commit/b031ade73ab78371fa7b3a1a685de483b950b045) update some docblock types (#11168) (Thomas Portelange) + - 2024-02-20 [528344d1b](https://github.com/silverstripe/silverstripe-framework/commit/528344d1b0c9d02787aed0acca42b022e8c14b98) Allow manipulating eagerloading queries (#11140) (Guy Sartorelli) + - 2024-02-16 [a3ce922f1](https://github.com/silverstripe/silverstripe-framework/commit/a3ce922f1dea4beea797639bd33d10b87eaf8a9f) Allow better subclassing of MoneyField (Dominik Beerbohm) + - 2024-02-16 [8664d2c4e](https://github.com/silverstripe/silverstripe-framework/commit/8664d2c4e9ce10377f1df0b2a5dd759db43da748) Allow all valid true-like ini values (Guy Sartorelli) + - 2024-02-08 [5e53dbcdb](https://github.com/silverstripe/silverstripe-framework/commit/5e53dbcdbcf0cc5361ea808b951829092c03ec27) Add a trace comment for queries in dev mode (#11065) (Guy Sartorelli) + - 2024-02-02 [2e4bc9515](https://github.com/silverstripe/silverstripe-framework/commit/2e4bc9515730b5fc95d163e21682f2cb0082e92e) Add UrlField (Steve Boyd) + - 2024-02-02 [7f7169533](https://github.com/silverstripe/silverstripe-framework/commit/7f716953358118dc2763a6b2217f82e8eb69a92a) Wire up symfony/validator (#11123) (Guy Sartorelli) + - 2024-01-30 [9d335f73d](https://github.com/silverstripe/silverstripe-framework/commit/9d335f73d6853281ef4bd1a66e353dfd13a7b945) HasOneRelationFieldInterface (Steve Boyd) + - 2024-01-17 [357ed7ad7](https://github.com/silverstripe/silverstripe-framework/commit/357ed7ad7e6f9e1b7e7bb939a118a4448dbc4ec7) Add generic types (#11108) (Guy Sartorelli) + - 2023-12-21 [2487c4085](https://github.com/silverstripe/silverstripe-framework/commit/2487c4085d13dd14e1935f496f3f339c6d1ebcc0) Create Requirements::customScriptWithAttributes (#11076) (Finlay Metcalfe) + - 2023-12-18 [e66c1aec0](https://github.com/silverstripe/silverstripe-framework/commit/e66c1aec0614c5c30e16d1c58cd9813aa7d6b4bc) Use SearchableDropdownField for autoscaffolded has_one relationships (Steve Boyd) + - 2023-12-14 [23eca53df](https://github.com/silverstripe/silverstripe-framework/commit/23eca53dfbd81576db6b35946d5872f58ae4526d) SearchableDropdownField (Steve Boyd) + - 2023-12-11 [c405ed6cf](https://github.com/silverstripe/silverstripe-framework/commit/c405ed6cf3977f2502be158432816aa1a06957dd) Allow a single has_one to manage multiple reciprocal has_many (#11084) (Guy Sartorelli) + - 2023-11-22 [fdb329913](https://github.com/silverstripe/silverstripe-framework/commit/fdb329913c6e71f55c88543ed32ef55d0bfde9aa) Throw exception when no react component (Steve Boyd) + - 2023-11-14 [3d64eac12](https://github.com/silverstripe/silverstripe-framework/commit/3d64eac1293a7522646be0fbae54d185a9ea3a72) Make most GridField components work with arbitrary data (Guy Sartorelli) + - 2023-11-14 [5838772b1](https://github.com/silverstripe/silverstripe-framework/commit/5838772b193df35ee7665770ccd32bf19f65355b) Explicitly require DataObject for some gridfield components (Guy Sartorelli) + - 2023-11-13 [b1295af28](https://github.com/silverstripe/silverstripe-framework/commit/b1295af281c042281df01dde4bde0443c5867498) Provide an easy way to filter arbitrary ViewableData in gridfields (Guy Sartorelli) + - 2023-11-03 [b9b891d05](https://github.com/silverstripe/silverstripe-framework/commit/b9b891d05096ccf6370decc8f09500ee9be0e48f) handle sub-urls (Andrew Paxley) + - 2023-11-02 [2cb84e90d](https://github.com/silverstripe/silverstripe-framework/commit/2cb84e90d481e4635168e47061304373b552a78f) remove devbuild bypass (Andrew Paxley) + - 2023-11-02 [5d4327b23](https://github.com/silverstripe/silverstripe-framework/commit/5d4327b23834b4b090ca5e9c8d9aad93497319ed) replace permission checks with canView check on TestDBTask (Andrew Paxley) + - 2023-10-31 [78444a44c](https://github.com/silverstripe/silverstripe-framework/commit/78444a44ca8b77e304537023cf176a640355ba23) add DevAdminConfirmationMiddleware (Andrew Paxley) + - 2023-10-19 [159112ca8](https://github.com/silverstripe/silverstripe-framework/commit/159112ca8b5e3c02e6c31dff54851a76f13465bc) Generate a random password if a blank password is entered (Steve Boyd) + - 2023-10-03 [a0cbebb2d](https://github.com/silverstripe/silverstripe-framework/commit/a0cbebb2d1d8459284343132340d5180e0b69213) allow stacked messages on FormMessage (Andrew Paxley) + - 2023-10-02 [44b170098](https://github.com/silverstripe/silverstripe-framework/commit/44b170098ea2ff5f361ec01577b570c75c0d85f1) `Add ORM abstraction for "WITH" clauses (#10943)` (Guy Sartorelli) + - 2023-09-27 [7d5c62ed5](https://github.com/silverstripe/silverstripe-framework/commit/7d5c62ed5f0cbdb0f64ecaecf3ed245d8dc40d78) Add rightJoin method to DataList (#10961) (Guy Sartorelli) + - 2023-09-24 [fac335673](https://github.com/silverstripe/silverstripe-framework/commit/fac33567390b9a58a700820a1de5278f4a3e4937) Enable allowing collisions for field statements (#10957) (Guy Sartorelli) + - 2023-09-24 [bbc0295f8](https://github.com/silverstripe/silverstripe-framework/commit/bbc0295f86dc23ab590e3e1455db51cc3826cec8) Add abstraction for sql RIGHT JOIN (#10954) (Guy Sartorelli) + - 2023-09-24 [b28749db4](https://github.com/silverstripe/silverstripe-framework/commit/b28749db440a4ab0d859e1c7284155c18b86ff4e) Allow selecting multiple (or no) tables (#10953) (Guy Sartorelli) + - 2023-09-19 [b3b1d0761](https://github.com/silverstripe/silverstripe-framework/commit/b3b1d07616b3bdb96f27c632f1511d00ec45c532) Deprecate old password encryptors (#10948) (Guy Sartorelli) + - 2023-08-04 [76da701b6](https://github.com/silverstripe/silverstripe-framework/commit/76da701b6b356214cbc1b3f3f0c8e9fd19ba26a6) Add sql UNION abstraction (Guy Sartorelli) + - 2023-07-12 [3244b44a5](https://github.com/silverstripe/silverstripe-framework/commit/3244b44a54aa6b227617bc1177449dac742ad64a) add permissions for build tasks (Andrew Paxley) + - 2021-12-04 [bf629dfab](https://github.com/silverstripe/silverstripe-framework/commit/bf629dfabd0587447384bda4b997760478b302a0) Split sentences by configurable punctuation for summary (Guy Sartorelli) + +- silverstripe/admin (2.1.0 -> 2.2.0-rc1) + - 2024-03-09 [ea554c52](https://github.com/silverstripe/silverstripe-admin/commit/ea554c5254ed8e6ae1f7ecbc0b07ec20e71d1b53) Move spinner to a seperate template so other module can include it (Maxime Rainville) + - 2024-02-26 [41f8bd3f](https://github.com/silverstripe/silverstripe-admin/commit/41f8bd3ffde5d7875e6edc007b877348bb6d0982) Refactor FormBuilderModal and split up the Modal into its own component (#1631) (Maxime Rainville) + - 2024-02-13 [6d183e4d](https://github.com/silverstripe/silverstripe-admin/commit/6d183e4d38e0e91f8f804c845c372d34d9488c8a) `Add extra_requirements_i18n config to LeftAndMain (#1678)` (Guy Sartorelli) + - 2024-01-29 [73e30a0f](https://github.com/silverstripe/silverstripe-admin/commit/73e30a0fbb680bd719e7c8830de9eaf12c02309d) Add jsonSuccess() (Steve Boyd) + - 2024-01-25 [c16fb0f3](https://github.com/silverstripe/silverstripe-admin/commit/c16fb0f3c11ff25884586926554e912aaa44025f) Refactor sslink slightly for easier maintenance (#1661) (Guy Sartorelli) + - 2024-01-24 [493909d0](https://github.com/silverstripe/silverstripe-admin/commit/493909d07df2878ce248345dc7429c12f79cd0b1) Remove background form description and unclickable fields (#1652) (Sabina Talipova) + - 2024-01-17 [75b51fc1](https://github.com/silverstripe/silverstripe-admin/commit/75b51fc19ca6d124fc848782b6958dfe92cb1a1f) Add generic types (#1648) (Guy Sartorelli) + - 2023-12-13 [c63d0136](https://github.com/silverstripe/silverstripe-admin/commit/c63d01365c92b263483e93b080a5dd49cc3c5f9b) SearchableDropdownField (Steve Boyd) + +- silverstripe/asset-admin (2.1.0 -> 2.2.0-rc1) + - 2024-01-18 [badbc4fd](https://github.com/silverstripe/silverstripe-asset-admin/commit/badbc4fddd20f6c917fea8d96b6e172af837f60d) Add generic types (#1433) (Guy Sartorelli) + - 2024-01-08 [a144ac18](https://github.com/silverstripe/silverstripe-asset-admin/commit/a144ac1884fe04d8521eddebe8ce992ef74057c3) Let AssetAdmin default to Upload_Validator default upload limits (#1430) (Guy Sartorelli) + - 2023-12-13 [32480e20](https://github.com/silverstripe/silverstripe-asset-admin/commit/32480e20367abe3a8ec9ff5349f246e9088f4ff8) Use SearchableMultiDropdownField (Steve Boyd) + - 2023-11-07 [b160b1c6](https://github.com/silverstripe/silverstripe-asset-admin/commit/b160b1c6622ccb041bdcfec19c863efef0b15f93) Select all and clear all functionality (Steve Boyd) + +- silverstripe/campaign-admin (2.1.0 -> 2.2.0-rc1) + - 2024-01-17 [5b75cb2](https://github.com/silverstripe/silverstripe-campaign-admin/commit/5b75cb2f51f77c62cced3c9e649eca2a4e072c63) Add generic types (#291) (Guy Sartorelli) + - 2023-11-07 [1c20dbf](https://github.com/silverstripe/silverstripe-campaign-admin/commit/1c20dbfa9db78df6ea1f23b1c65c005d56c2dec9) More Actions button is hidden if Campaign is published (#288) (Sabina Talipova) + +- silverstripe/versioned-admin (2.1.0 -> 2.2.0-rc1) + - 2024-01-18 [ad08d76](https://github.com/silverstripe/silverstripe-versioned-admin/commit/ad08d7632c4db63d59f361f92002d2a87af102f6) Add generic types (#319) (Guy Sartorelli) + +- silverstripe/cms (5.1.0 -> 5.2.0-rc1) + - 2024-01-18 [3847b3ea](https://github.com/silverstripe/silverstripe-cms/commit/3847b3ea19529f08f313891c5ec5c015e407ec8a) Add generic types (#2914) (Guy Sartorelli) + - 2024-01-08 [a5d2b3bb](https://github.com/silverstripe/silverstripe-cms/commit/a5d2b3bb32fc9709e81b2087d0e013e4bcdc4206) Return 404 when redirector page wants to link to missing page (#2663) (Marco Hermo) + - 2023-12-13 [3d94a0e3](https://github.com/silverstripe/silverstripe-cms/commit/3d94a0e3d002da4ba76e677ff175a5907e887699) Use SearchableMultiDropdownField to select Members (Steve Boyd) + +- silverstripe/errorpage (2.1.0 -> 2.2.0-rc1) + - 2024-01-17 [93f6715](https://github.com/silverstripe/silverstripe-errorpage/commit/93f6715ca3d1457913db5e74351d4bf9784c0c4c) Add generic types (#95) (Guy Sartorelli) + - 2023-09-25 [b4f0088](https://github.com/silverstripe/silverstripe-errorpage/commit/b4f00881f9b7bef724d42f9a037df196ecc888f1) add config for allowed_error_codes (Andrew Paxley) + - 2023-09-25 [9e1cde4](https://github.com/silverstripe/silverstripe-errorpage/commit/9e1cde4593601f89f132d5df87dd8613f8a6a641) additional error codes, tidy translations (Andrew Paxley) + +- silverstripe/siteconfig (5.1.0 -> 5.2.0-rc1) + - 2023-12-18 [37e8a4f3](https://github.com/silverstripe/silverstripe-siteconfig/commit/37e8a4f3ac5065755726b96b9e08cdcdcb326e47) Use SearchableMultiDropdownField (Steve Boyd) + - 2023-10-19 [7ab6480b](https://github.com/silverstripe/silverstripe-siteconfig/commit/7ab6480b3e0058c6d4903e629bba32a567e7d59b) `Add "only these users" option to siteconfig access settings` (Guy Sartorelli) + +- silverstripe/versioned (2.1.0 -> 2.2.0-rc1) + - 2024-01-19 [96736c2](https://github.com/silverstripe/silverstripe-versioned/commit/96736c2aafd52fbe0138e797e06df66cc17217bb) Add generic types (#431) (Guy Sartorelli) + - 2023-12-12 [1e73253](https://github.com/silverstripe/silverstripe-versioned/commit/1e7325381bdaf16d05c09e3b24d0995b58caccf7) Respect new has_one config (#427) (Guy Sartorelli) + - 2023-11-03 [044bdb0](https://github.com/silverstripe/silverstripe-versioned/commit/044bdb06913dba7ed8d540dcf420221fea586b52) add CAN_DEV_BUILD to non_live_permissions (Andrew Paxley) + - 2021-02-26 [1735fd6](https://github.com/silverstripe/silverstripe-versioned/commit/1735fd6f075c7a9373475555c4b99d41c329b77a) Stages differ recursive. (Danaë Miller-Clendon) + +- silverstripe/graphql (5.1.0 -> 5.2.0-rc1) + - 2024-01-17 [8fd1bdc](https://github.com/silverstripe/silverstripe-graphql/commit/8fd1bdc4a5f92c6889e27ad77be781f1727e5c13) Add generic types (#567) (Guy Sartorelli) + - 2023-10-31 [b47487d](https://github.com/silverstripe/silverstripe-graphql/commit/b47487df198180f8ac9a37ebfacd0987953fb4ff) use init_permissions to match core PR (Andrew Paxley) + +- silverstripe/session-manager (2.1.0 -> 2.2.0-rc1) + - 2024-01-18 [94c0603](https://github.com/silverstripe/silverstripe-session-manager/commit/94c0603894e9f4c833ae7f8892bafdf2ced0e25a) Add generic types (#177) (Guy Sartorelli) + +- silverstripe/login-forms (5.1.0 -> 5.2.0-rc1) + - 2024-01-18 [3a820bd](https://github.com/silverstripe/silverstripe-login-forms/commit/3a820bdf746c717fbf4a1596396876427128e143) Add generic types (#162) (Guy Sartorelli) + +- silverstripe/iframe (3.1.0 -> 3.2.0-rc1) + - 2024-01-23 [53008d0](https://github.com/silverstripe/silverstripe-iframe/commit/53008d047323a78c3103e26400ba71ebadeb58b4) Add generic types (#77) (Guy Sartorelli) + +- silverstripe/tagfield (3.1.0 -> 3.2.0-rc1) + - 2024-01-23 [556772b](https://github.com/silverstripe/silverstripe-tagfield/commit/556772b7be1620d034dbd0ac837b138d3b80e593) Add generic types (#277) (Guy Sartorelli) + +- silverstripe/taxonomy (3.1.0 -> 3.2.0-rc1) + - 2024-01-23 [336d1c7](https://github.com/silverstripe/silverstripe-taxonomy/commit/336d1c768e83ddcd0b8612702a878ee77cf18a91) Add generic types (#102) (Guy Sartorelli) + +- silverstripe/blog (4.1.0 -> 4.2.0-rc1) + - 2024-01-18 [3b80922](https://github.com/silverstripe/silverstripe-blog/commit/3b8092272be26bf34126f15dc6cfbef9eed6f075) Add generic types (#739) (Guy Sartorelli) + +- silverstripe/spamprotection (4.1.0 -> 4.2.0-rc1) + - 2024-01-18 [77aba75](https://github.com/silverstripe/silverstripe-spamprotection/commit/77aba75ffae109ba97e9903900031e48b4aec76c) Add generic types (#108) (Guy Sartorelli) + +- silverstripe/contentreview (5.1.0 -> 5.2.0-rc1) + - 2024-01-18 [f04e9fa](https://github.com/silverstripe/silverstripe-contentreview/commit/f04e9fa4cabe1daeec5c9589ab0a6516dda34704) Add generic types (#220) (Guy Sartorelli) + +- silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-rc1) + - 2024-01-18 [b78b1af](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/b78b1af802ad797a23cdb1b64e3210cc10dedc87) Add generic types (#222) (Guy Sartorelli) + +- symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0-rc1) + - 2024-01-23 [65ec116](https://github.com/symbiote/silverstripe-advancedworkflow/commit/65ec11693a111b280a17d3b8ef7ab6a0af947334) Add generic types (#511) (Guy Sartorelli) + +- silverstripe/userforms (6.1.0 -> 6.2.0-rc1) + - 2024-01-18 [ca972ff](https://github.com/silverstripe/silverstripe-userforms/commit/ca972ff5f2fa1d059a542b0afb3921ae285b9ef1) Add generic types (#1261) (Guy Sartorelli) + - 2023-12-20 [5bcbad6](https://github.com/silverstripe/silverstripe-userforms/commit/5bcbad6a79e3df41ba9b1ef150fb578a80e1ec6c) Remove LastEdited from summary_fields (#1173) (Bauke) + +- silverstripe/externallinks (3.1.0 -> 3.2.0-rc1) + - 2024-01-23 [e8bdf12](https://github.com/silverstripe/silverstripe-externallinks/commit/e8bdf1203d7b1c2c8c4970400f41fc34759fe286) Add generic types (#117) (Guy Sartorelli) + - 2023-11-08 [8797f1f](https://github.com/silverstripe/silverstripe-externallinks/commit/8797f1f41e1a58e6866351a6eb20ebc1a6e24a88) Restrict access to getJobStatus execution (#113) (Sabina Talipova) + +- silverstripe/securityreport (3.0.0 -> 3.1.0-rc1) + - 2024-01-18 [2e8f342](https://github.com/silverstripe/silverstripe-securityreport/commit/2e8f342f6a0393c29dc2b8df7fbe9110e370599b) Add generic types (#72) (Guy Sartorelli) + +- silverstripe/sitewidecontent-report (4.1.0 -> 4.2.0-rc1) + - 2024-01-18 [00ca457](https://github.com/silverstripe/silverstripe-sitewidecontent-report/commit/00ca45728cc07f06c51c5fb0238b9b9dbf74785d) Add generic types (#76) (Guy Sartorelli) + +- bringyourownideas/silverstripe-maintenance (3.0.1 -> 3.1.0-rc1) + - 2023-06-14 [32cccc9](https://github.com/bringyourownideas/silverstripe-maintenance/commit/32cccc9e9ebdc92c0c04b4509b08b1e4a773d742) Update translations (Steve Boyd) + +- bringyourownideas/silverstripe-composer-update-checker (4.0.0 -> 4.1.0-rc1) + - 2023-06-14 [3719b52](https://github.com/bringyourownideas/silverstripe-composer-update-checker/commit/3719b52a740e6aed79402f4ab75046ebc9447d33) Update translations (Steve Boyd) + +- silverstripe/versionfeed (3.1.0 -> 3.2.0-rc1) + - 2024-01-18 [b7b4ff8](https://github.com/silverstripe/silverstripe-versionfeed/commit/b7b4ff8fbd312871c8f63b226d310d5c39d459d3) Add generic types (#94) (Guy Sartorelli) + +- dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-rc1) + - 2024-01-29 [7351e65](https://github.com/silverstripe/silverstripe-elemental/commit/7351e65ecb8b08702c05056a2a2190d83ffcd78d) Versioned badge to elements (Sabina Talipova) + - 2024-01-22 [b25ed5f](https://github.com/silverstripe/silverstripe-elemental/commit/b25ed5f761b514b38418287993ce49d506ddb1af) Add generic types (#1131) (Guy Sartorelli) + - 2024-01-19 [bf8d867](https://github.com/silverstripe/silverstripe-elemental/commit/bf8d867ede2cd6d2ad14b37d02140c6b85c653f7) `BaseElement::getType() use static::class instead of __CLASS__ for better defaults` (Christopher Darling) + +- silverstripe/auditor (3.0.0 -> 3.1.0-rc1) + - 2024-01-18 [8c847f5](https://github.com/silverstripe/silverstripe-auditor/commit/8c847f59c6381a1f8cee5584c71f58aaf9db740e) Add generic types (#67) (Guy Sartorelli) + +- silverstripe/registry (3.1.0 -> 3.2.0-rc1) + - 2024-01-23 [a42be22](https://github.com/silverstripe/silverstripe-registry/commit/a42be22b2798c3215a6a4869bf5a4f38d7c4c0ed) Add generic types (#90) (Guy Sartorelli) + +- silverstripe/mfa (5.1.0 -> 5.2.0-rc1) + - 2024-01-19 [97e6c80](https://github.com/silverstripe/silverstripe-mfa/commit/97e6c80f4514e5a083ec576ab15b8735147adc7e) Add generic types (#524) (Guy Sartorelli) + +- silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0-rc1) + - 2024-01-18 [6fb435f](https://github.com/silverstripe/silverstripe-gridfieldqueuedexport/commit/6fb435f88dad4d5d8bc9b96e6b9afc911223eb93) Add generic types (#94) (Guy Sartorelli) + +- silverstripe/ldap (2.1.0 -> 2.2.0-rc1) + - 2024-01-19 [894f204](https://github.com/silverstripe/silverstripe-ldap/commit/894f204e433dc4119ea483ce806fe706d43f93bb) Add generic types (#67) (Guy Sartorelli) + +- silverstripe/textextraction (4.0.0 -> 4.1.0-rc1) + - 2024-01-22 [cc43a12](https://github.com/silverstripe/silverstripe-textextraction/commit/cc43a120c8b2033009c10a67d0af53337c8e0929) Add generic types (#86) (Guy Sartorelli) + +- silverstripe/realme (5.2.0 -> 5.3.0-rc1) + - 2024-01-18 [5971936](https://github.com/silverstripe/silverstripe-realme/commit/59719369503ba98d4696c41453cf5a7626cdea77) Add generic types (#128) (Guy Sartorelli) + +- silverstripe/subsites (3.1.0 -> 3.2.0-rc1) + - 2024-01-23 [11a941f](https://github.com/silverstripe/silverstripe-subsites/commit/11a941f63784d5e4b60667fcd79977d4269c4486) Add generic types (#554) (Guy Sartorelli) + +- silverstripe/lumberjack (3.0.2 -> 3.1.0-rc1) + - 2024-01-17 [dd5f929](https://github.com/silverstripe/silverstripe-lumberjack/commit/dd5f929b2b829b150aef312031b86e835bceb80b) Add generic types (#137) (Guy Sartorelli) + +- silverstripe/staticpublishqueue (6.1.0 -> 6.2.0-rc1) + - 2024-01-19 [192ea76](https://github.com/silverstripe/silverstripe-staticpublishqueue/commit/192ea76dca70f303a5ddd39d55e377f95cfb6119) Add generic types (#182) (Guy Sartorelli) + - 2023-12-22 [50519cd](https://github.com/silverstripe/silverstripe-staticpublishqueue/commit/50519cd04249e4d023623b820507c1a19a85dcfa) Extension points for FilesystemPublisher. (Mojmir Fendek) + - 2023-11-30 [ebde61e](https://github.com/silverstripe/silverstripe-staticpublishqueue/commit/ebde61e72a0df37ac19cee78d690c6458f4545ef) Configuration property for disallowed status codes (#178) (Guy Sartorelli) + +- cwp/agency-extensions (3.1.0 -> 3.2.0-rc1) + - 2024-01-22 [0dc9d10](https://github.com/silverstripe/cwp-agencyextensions/commit/0dc9d10d01ae400b053e17676fd467c1bfb9d055) Add generic types (#110) (Guy Sartorelli) + +- symbiote/silverstripe-gridfieldextensions (4.0.3 -> 4.0.5) + - 2024-01-23 [78fa8ba](https://github.com/symbiote/silverstripe-gridfieldextensions/commit/78fa8ba747a7edc66e7524441f4c3adcc182791e) `Make toast message "Records reordered." localisable (#321)` (Tom Oude Rengerink) + +- symbiote/silverstripe-queuedjobs (5.0.2 -> 5.1.0-rc1) + - 2024-01-23 [9cf0162](https://github.com/symbiote/silverstripe-queuedjobs/commit/9cf01629d66dfdb8d6129d5b4d6761bcd60f3f43) Add generic types (#415) (Guy Sartorelli) + +- tractorcow/silverstripe-fluent (7.0.0 -> 7.1.0-rc1) + - 2024-01-12 [b55dcf4](https://github.com/tractorcow-farm/silverstripe-fluent/commit/b55dcf49692ef41bec590e4f9b8544eadcd3f1d3) Add generic types (Guy Sartorelli) + - 2023-06-14 [ef3fed4](https://github.com/tractorcow-farm/silverstripe-fluent/commit/ef3fed434b6113f8f697097548960d26973078cf) Update translations (Steve Boyd) + +- silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-rc1) + - 2024-03-12 [967c457](https://github.com/silverstripe/silverstripe-linkfield/commit/967c4578185a3c8a4cff236822f46c59d3f245b3) Pre-render the LinkField in entwine (#241) (Maxime Rainville) + - 2024-03-11 [1fb149f](https://github.com/silverstripe/silverstripe-linkfield/commit/1fb149fa99e0b2f41b6b3b41c362e5581af46141) Use File Title (Steve Boyd) + - 2024-02-20 [87e8c17](https://github.com/silverstripe/silverstripe-linkfield/commit/87e8c178ed6ac1460b7f7f0b7c4c853fde7d766b) Avoid potential data disclosure (#233) (Guy Sartorelli) + - 2024-02-15 [c75615f](https://github.com/silverstripe/silverstripe-linkfield/commit/c75615f93d5fb3c899e2b9ee40e8528614e0a644) More standardisation (#223) (Guy Sartorelli) + - 2024-02-14 [3e97f0d](https://github.com/silverstripe/silverstripe-linkfield/commit/3e97f0d121e60a7cbc446df46a7b7398f6b1e43f) Better versioned history (Steve Boyd) + - 2024-02-13 [0c0cdaa](https://github.com/silverstripe/silverstripe-linkfield/commit/0c0cdaaee4dccf1c9b34ac7515b1fd7f6f8cda2d) Globally disallow link types (Steve Boyd) + - 2024-02-13 [f3de6ac](https://github.com/silverstripe/silverstripe-linkfield/commit/f3de6ac0672cebd60d0929b9a55e517675017f62) LinkField Behat tests (#201) (Sabina Talipova) + - 2024-02-13 [5d604a7](https://github.com/silverstripe/silverstripe-linkfield/commit/5d604a775fd9a8a31943538bb4eb5d1d1732984f) Icon alignment (Sabina Talipova) + - 2024-02-12 [fac2d31](https://github.com/silverstripe/silverstripe-linkfield/commit/fac2d310863bbc939e44af3d126eb4a283ef65d1) Improve keyboard support (Steve Boyd) + - 2024-02-12 [05c7b42](https://github.com/silverstripe/silverstripe-linkfield/commit/05c7b42065f64b484a265ef26daa5efb745dc289) Remove unused code (Guy Sartorelli) + - 2024-02-12 [28b833f](https://github.com/silverstripe/silverstripe-linkfield/commit/28b833fc4e009718a44ae3e4f154ee059357820f) Standardise naming and improve code quality (Guy Sartorelli) + - 2024-02-12 [51acf4f](https://github.com/silverstripe/silverstripe-linkfield/commit/51acf4f1fe6d9740a6694524df70665469882724) Add strong typing where possible (Guy Sartorelli) + - 2024-02-12 [d334cbc](https://github.com/silverstripe/silverstripe-linkfield/commit/d334cbc9fa87198130ac91672e3d6de313ab8e27) Move LeftAndMain requirements into config (Guy Sartorelli) + - 2024-02-12 [04ae65c](https://github.com/silverstripe/silverstripe-linkfield/commit/04ae65c3656e44f15a0866873191f06283f94e15) Allow developers to exclude LinkText field (#215) (Guy Sartorelli) + - 2024-02-12 [afef74f](https://github.com/silverstripe/silverstripe-linkfield/commit/afef74f1c62e6c33b8cf357d19beb5fb34ebde12) Refactor link field traits into abstract class (Guy Sartorelli) + - 2024-02-08 [4e43d54](https://github.com/silverstripe/silverstripe-linkfield/commit/4e43d547016193c223a504b949aed9178cfb6dbf) Rename and move Title field (Steve Boyd) + - 2024-02-06 [0099636](https://github.com/silverstripe/silverstripe-linkfield/commit/00996361724c73e0010006d587db99a6c86f02b2) Improved validation (Steve Boyd) + - 2024-01-31 [5155f17](https://github.com/silverstripe/silverstripe-linkfield/commit/5155f178808613bdca30e9dd681eea9bc7642ad0) Set Published button dirty state when Link is an unpublished state (Steve Boyd) + - 2024-01-29 [8fbe94b](https://github.com/silverstripe/silverstripe-linkfield/commit/8fbe94baf0a9f27d9ccb9d8a613821bae8198a17) Standardise API responses (Steve Boyd) + - 2024-01-29 [836d665](https://github.com/silverstripe/silverstripe-linkfield/commit/836d665540367f29a28669ac794018c921490661) Improve hover active and focus state styling (Steve Boyd) + - 2024-01-25 [4ba8267](https://github.com/silverstripe/silverstripe-linkfield/commit/4ba82670e5a827933f069e53a5e44a2b9d30e85a) Add disabled field state (Steve Boyd) + - 2024-01-24 [0c01fcf](https://github.com/silverstripe/silverstripe-linkfield/commit/0c01fcf461c50af5fab464c196bbf35d4ca04090) Hide the open in new window checkbox from phone and email links (Steve Boyd) + - 2024-01-24 [9bb3a1a](https://github.com/silverstripe/silverstripe-linkfield/commit/9bb3a1a4791f9762d7eede88336b28057fc104ed) Add Readonly field status (#172) (Sabina Talipova) + - 2024-01-24 [e6f7705](https://github.com/silverstripe/silverstripe-linkfield/commit/e6f7705c596fe486ad9d793c25c3bd59ec380887) Confirm user wishes to delete link (Steve Boyd) + - 2024-01-18 [2927d50](https://github.com/silverstripe/silverstripe-linkfield/commit/2927d505711890c503560a66eb755e05586dd8a8) Show a cannot create message when types is empty (Steve Boyd) + - 2024-01-17 [343c3d2](https://github.com/silverstripe/silverstripe-linkfield/commit/343c3d2292ff661eff855d38b52dcbd27525d0e6) MutliLinkField sorting (Steve Boyd) + - 2024-01-16 [eb88dd0](https://github.com/silverstripe/silverstripe-linkfield/commit/eb88dd0398a1188ef8c9afa7fa01fa1630d38d44) Join endpoint path segments (Steve Boyd) + - 2024-01-11 [6644853](https://github.com/silverstripe/silverstripe-linkfield/commit/6644853cf998f38f10992a2d8f1ca688cd1a34d9) Link type icon (Sabina Talipova) + - 2024-01-11 [912816c](https://github.com/silverstripe/silverstripe-linkfield/commit/912816cea9276147143ea26cf7f4cd388e2de2c8) Add sorting by link type (Sabina Talipova) + - 2024-01-10 [09ca349](https://github.com/silverstripe/silverstripe-linkfield/commit/09ca3496832dcc4485103d042c44fd7bf4962f68) Show loading component during ajax read requests (Steve Boyd) + - 2024-01-10 [9d3a6f0](https://github.com/silverstripe/silverstripe-linkfield/commit/9d3a6f0e4e914a07526a907c83f5e4edbaecaae8) Gracefully handle AJAX failures (Steve Boyd) + - 2024-01-10 [c563394](https://github.com/silverstripe/silverstripe-linkfield/commit/c563394eedce2017c88f620427a41524a16a2720) Show save record first text on unsaved owners (Steve Boyd) + - 2024-01-09 [0ea34be](https://github.com/silverstripe/silverstripe-linkfield/commit/0ea34be7b05a43c2451dba7aef2f8963ea55a948) Used on table extension (Steve Boyd) + - 2024-01-09 [2086a38](https://github.com/silverstripe/silverstripe-linkfield/commit/2086a38dc9a4c534f441e783c6778ba1d7fac964) Change clear text to delete (Steve Boyd) + - 2023-12-22 [279cfb5](https://github.com/silverstripe/silverstripe-linkfield/commit/279cfb585dcbe4ad6dc8031877808420e5cf0416) Save relations on link creation (Steve Boyd) + - 2023-12-19 [ea28fe1](https://github.com/silverstripe/silverstripe-linkfield/commit/ea28fe199ecc14c78ff406a48cdd27d726f11930) Remove LinkFieldController from cms menu (Steve Boyd) + - 2023-12-14 [84824c7](https://github.com/silverstripe/silverstripe-linkfield/commit/84824c7acf4318f85b6a2fe52dfa63aad3e154b2) Allowed link types (Sabina Talipova) + - 2023-12-11 [ffb1ae0](https://github.com/silverstripe/silverstripe-linkfield/commit/ffb1ae021b0f47d2260ec4f7bb85eab4e5361d5c) Add versioning to Link (Steve Boyd) + - 2023-12-05 [5e35a84](https://github.com/silverstripe/silverstripe-linkfield/commit/5e35a84b13a92ba9d51f23559a32621d9590a41f) Add permission methods based on owner (Guy Sartorelli) + - 2023-11-30 [1e1083d](https://github.com/silverstripe/silverstripe-linkfield/commit/1e1083d96badd101f8f37e18f182836bd655a7f0) Default link title for each link type (Sabina Talipova) + - 2023-11-28 [1be5f0d](https://github.com/silverstripe/silverstripe-linkfield/commit/1be5f0d456f2296bf460960c51482e0ff1af2761) Add MultiLinkField for managing many-type relations (Guy Sartorelli) + - 2023-11-28 [acb9c84](https://github.com/silverstripe/silverstripe-linkfield/commit/acb9c84297dda1825541c0d6512b7eae349cf3c1) Refactor LinkField in preparation for MultiLinkField (Guy Sartorelli) + - 2023-11-14 [64f5829](https://github.com/silverstripe/silverstripe-linkfield/commit/64f58293d0eaa06b1d792004904ba2a3b51f7fe6) Add localization support (#119) (Sabina Talipova) + - 2023-11-06 [6035de8](https://github.com/silverstripe/silverstripe-linkfield/commit/6035de8c0326c3f34d479659bf0cf21bce13d10b) LinkFieldController to handle FormSchema (Steve Boyd) + - 2023-09-26 [345c828](https://github.com/silverstripe/silverstripe-linkfield/commit/345c828ab1d65cdf06febf5cfc950c46ed11719f) Allow projects to define their own subclass templates (Steve Boyd) + - 2023-06-21 [d667d94](https://github.com/silverstripe/silverstripe-linkfield/commit/d667d94f83437fb5242b9b472d2da1406582b5d1) Query string support. (Mojmir Fendek) + - 2023-06-20 [6b69001](https://github.com/silverstripe/silverstripe-linkfield/commit/6b69001799889e378cc3c95d64cea90562766aa8) New extension points added (JSON field). (Mojmir Fendek) + - 2023-06-14 [3478f28](https://github.com/silverstripe/silverstripe-linkfield/commit/3478f28c227f2647970ab16e5135bb514751258c) Extension points for link model manipulation. (Mojmir Fendek) + - 2023-06-07 [77c7319](https://github.com/silverstripe/silverstripe-linkfield/commit/77c7319142168da70c8ca2da607c5c24c63aaeae) Allow form validation. (Mojmir Fendek) + - 2023-06-06 [3041730](https://github.com/silverstripe/silverstripe-linkfield/commit/3041730c055a243a98cdb663bfa1cbd3a917a00c) Insert / edit link button label. (Mojmir Fendek) + - 2023-06-06 [d425b33](https://github.com/silverstripe/silverstripe-linkfield/commit/d425b33513a5b2fa14a2793d3639eb90fd24964c) Allow model-level for customisation. (Mojmir Fendek) + - 2023-06-05 [6e8183a](https://github.com/silverstripe/silverstripe-linkfield/commit/6e8183ac9c1b8e1aa7726cdd071653a8620c8ee8) Extensibility improvements for link migration task. (Mojmir Fendek) + - 2021-11-11 [3e0f699](https://github.com/silverstripe/silverstripe-linkfield/commit/3e0f6997c53e6bea11681ac8926d9483a830b0a1) Empty link title fallbacks to Page. (#37) (Mojmir Fendek) + +### Bugfixes {#changelog-bugfixes} + +- silverstripe/vendor-plugin (2.0.1 -> 2.0.2) + - 2023-10-10 [175505b](https://github.com/silverstripe/vendor-plugin/commit/175505bf7286a02e47a3cba087d026f8b110b3e3) Method CopyMethod::copy as deprecated (Sabina Talipova) + +- silverstripe/assets (2.1.0 -> 2.2.0-rc1) + - 2024-01-18 [d9d5dac](https://github.com/silverstripe/silverstripe-assets/commit/d9d5dac314e01e3de4298dca0eb10af3b2f0f97e) Pass variant args into array_merge correctly (Guy Sartorelli) + - 2024-01-08 [46e07eb](https://github.com/silverstripe/silverstripe-assets/commit/46e07eb8ceddfb3fbe4fadc81a56f42f1932739f) Ensure the setAllowedMaxFileSize wont allow config values to exceed PHP limits (#469) (Nick) + - 2023-12-19 [6e3fd80](https://github.com/silverstripe/silverstripe-assets/commit/6e3fd806ca4a95b4df3f33cd7c5963b8ed842b04) Allow inconclusive mimetypes (#582) (Guy Sartorelli) + +- silverstripe/framework (5.1.0 -> 5.2.0-rc1) + - 2024-03-20 [8aab888d5](https://github.com/silverstripe/silverstripe-framework/commit/8aab888d5011d44c69e1f4ad6f6c28f6fe76bb2a) Fix link for managing roles (#11178) (Guy Sartorelli) + - 2024-03-01 [fcf5e324d](https://github.com/silverstripe/silverstripe-framework/commit/fcf5e324dd00c8a8cd42b014f92858734077b7f2) Handle non-breakable spaces (Thomas Portelange) + - 2024-02-26 [e7bc8ae99](https://github.com/silverstripe/silverstripe-framework/commit/e7bc8ae99f6fdbc0da942029a5ac11195ca4f15e) Generate salt if needed (Thomas Portelange) + - 2024-02-14 [d33332cb9](https://github.com/silverstripe/silverstripe-framework/commit/d33332cb9e7aededfb73a3cbf362490ee1e77ca4) Add eagerloaded data to ALL relevant lists (#11139) (Guy Sartorelli) + - 2024-02-12 [b56e771ed](https://github.com/silverstripe/silverstripe-framework/commit/b56e771ed5804fe1d6fd54aebd60051988e389ad) add missing rawurlencode (#11105) (Thomas Portelange) + - 2024-02-08 [e87c72470](https://github.com/silverstripe/silverstripe-framework/commit/e87c7247004ce6d5a5760eb6dade4e68043982c1) Don't assume mysql handle is an object (#11129) (Guy Sartorelli) + - 2024-02-07 [1dd81488a](https://github.com/silverstripe/silverstripe-framework/commit/1dd81488aace798dc196610e75240b452e392ce9) fix unknown table (Thomas Portelange) + - 2024-01-24 [afd53d1d6](https://github.com/silverstripe/silverstripe-framework/commit/afd53d1d6a39204fe7cc8867b1a91742c3d525bc) HTMLEditorField::setRows with Elemental (Sabina Talipova) + - 2024-01-11 [ff3a6f72d](https://github.com/silverstripe/silverstripe-framework/commit/ff3a6f72df39cca2bf40e46c10a6a9e20b39f78f) HTMLEditorField::setRows minimal hieght (#10965) (Sabina Talipova) + - 2024-01-09 [9bfb731bc](https://github.com/silverstripe/silverstripe-framework/commit/9bfb731bc3a36deae2147d830aa8485584ff2f17) Handle polymorphic relationships that use Owner instead of Parent (Steve Boyd) + - 2024-01-08 [e456de11b](https://github.com/silverstripe/silverstripe-framework/commit/e456de11b03f856599b9fc09c276fdf07ebb2541) Fix clobbering of the upload size validation (#10059) (Nick) + - 2023-12-19 [7dc1a7a12](https://github.com/silverstripe/silverstripe-framework/commit/7dc1a7a12b5e14d8ed1bfc93a6e3fac5dbb9aa4f) Correctly mark ConfirmedPasswordField children as required (Guy Sartorelli) + - 2023-12-13 [dd3a0dba2](https://github.com/silverstripe/silverstripe-framework/commit/dd3a0dba242d3c826614c4d87a1808ea2bac5769) Don't break the page if password recover email fails to send (Guy Sartorelli) + - 2023-12-13 [446810bc5](https://github.com/silverstripe/silverstripe-framework/commit/446810bc5e38a9319a72f21464c52f5502d5db56) Allow new password to save even if there's an error sending email (Guy Sartorelli) + - 2023-12-04 [40b888eaf](https://github.com/silverstripe/silverstripe-framework/commit/40b888eaf30f6c6899134f7fcbfb0705987516e1) UnsavedRelationList::last() sometimes returned an ID instead of an item (Loz Calver) + - 2023-12-04 [e28af9a5a](https://github.com/silverstripe/silverstripe-framework/commit/e28af9a5a7d41fe6bf240a3f51165f95acc5a98a) UnsavedRelationList first/last to return null if list is empty (fixes #11083) (Loz Calver) + - 2023-11-29 [6d903848a](https://github.com/silverstripe/silverstripe-framework/commit/6d903848ab2ce46875c7bca8cb67fed77b29a132) Don't replace config manifest for nested kernels (#11082) (Guy Sartorelli) + - 2023-11-21 [7eab49f85](https://github.com/silverstripe/silverstripe-framework/commit/7eab49f850070e1a2df5f7a2e38baad031aa1d54) Ensure environment is checked before enabling deprecations (#11055) (Guy Sartorelli) + - 2023-11-16 [05f1d9ab8](https://github.com/silverstripe/silverstripe-framework/commit/05f1d9ab863060fd2e7c66753f782e7cae2530c8) Make deprecation enabled check faster (Guy Sartorelli) + - 2023-11-13 [4dbbf04ba](https://github.com/silverstripe/silverstripe-framework/commit/4dbbf04ba5a68e68f2241380edc0e12145f0075c) Add extraEmptyValues to TreedropdownField (Steve Boyd) + - 2023-10-31 [d883719c1](https://github.com/silverstripe/silverstripe-framework/commit/d883719c16075412640e623557a2df4275965de1) ModelAdmin toast elements (Sabina Talipova) + - 2023-09-25 [55e42683f](https://github.com/silverstripe/silverstripe-framework/commit/55e42683f80d1a62c966917f262fbd05b33495b9) Match multi-line JOIN statements (#10960) (Guy Sartorelli) + - 2023-06-12 [51fd1d6b7](https://github.com/silverstripe/silverstripe-framework/commit/51fd1d6b7e45d7a7c0c26cae3cab7811b871362e) `Handle __TRAIT__ in i18nTextCollector` (Steve Boyd) + +- silverstripe/admin (2.1.0 -> 2.2.0-rc1) + - 2024-03-19 [aadc8aa9](https://github.com/silverstripe/silverstripe-admin/commit/aadc8aa96118a6c38d37fab015f1d27d0bfbd994) Correctly validate emails in WYSIWYG links (#1710) (Guy Sartorelli) + - 2024-03-04 [1df1ee77](https://github.com/silverstripe/silverstripe-admin/commit/1df1ee7713c30c5ac95f343100b9e019caefb8f1) JS Console errors and warnings (Sabina Talipova) + - 2024-02-26 [60563dbd](https://github.com/silverstripe/silverstripe-admin/commit/60563dbd4cbb162a55e504973ee460465cb78dd9) Support nested redux forms (Guy Sartorelli) + - 2024-02-25 [7918318d](https://github.com/silverstripe/silverstripe-admin/commit/7918318db45229d66ec82e8cb25fc541ed9617c7) Don't panic if classname isn't set (#1687) (Guy Sartorelli) + - 2024-02-22 [129a94a2](https://github.com/silverstripe/silverstripe-admin/commit/129a94a28d8652e6138eab1b441de8099d31d84f) Rebuild bundle (Mohamed Alsharaf) + - 2024-02-22 [b3e16081](https://github.com/silverstripe/silverstripe-admin/commit/b3e160818c4098d6bee742bed6cf747dd47c4ab6) Remove current active tab from session storage after use (Mohamed Alsharaf) + - 2024-02-08 [8a3833e8](https://github.com/silverstripe/silverstripe-admin/commit/8a3833e8128eb44d32da743772e579219284e3c1) Set the CSV importer based on the tab, not the model (#1676) (Guy Sartorelli) + - 2024-02-01 [725a9a11](https://github.com/silverstripe/silverstripe-admin/commit/725a9a11c332de7d33692e0ecabd02fbbf379e04) Use valid class for model importers (#1670) (Guy Sartorelli) + - 2024-01-25 [359a3953](https://github.com/silverstripe/silverstripe-admin/commit/359a39531b91994ca77538ce8fdd0dc9a191819b) Type error (Sabina Talipova) + - 2024-01-24 [925e06f4](https://github.com/silverstripe/silverstripe-admin/commit/925e06f4f5bee9cfd562f66c22bc89e2503a6f84) Add tinymce link menuitems per editor instance (#1653) (Guy Sartorelli) + - 2024-01-24 [799add9e](https://github.com/silverstripe/silverstripe-admin/commit/799add9e9ac2bf7d6a53394291dc59fce37f154b) HTMLEditorField::setRows with Elemental (Sabina Talipova) + - 2024-01-23 [c06b2f2a](https://github.com/silverstripe/silverstripe-admin/commit/c06b2f2adb0c683110ce50aaed97c55b22497412) Use valid class for model importers (Guy Sartorelli) + - 2024-01-17 [79955d24](https://github.com/silverstripe/silverstripe-admin/commit/79955d24314c8d1781b849683282c1d642476a04) Elemental no longer allows saving of HTMLEditorField (#1651) (Sabina Talipova) + - 2024-01-11 [bc92e1f1](https://github.com/silverstripe/silverstripe-admin/commit/bc92e1f14f7ef7f2093875866ec35fae74825404) HTMLEditorField::setRows method (#1588) (Sabina Talipova) + - 2024-01-09 [4dd2432b](https://github.com/silverstripe/silverstripe-admin/commit/4dd2432bd81f84750a3f2a208f7af4d5a0e5e08c) Remove unstable prefix from useBlocker (Steve Boyd) + - 2024-01-07 [12e97880](https://github.com/silverstripe/silverstripe-admin/commit/12e97880a145f0d126b5d94b5434d59f00e39883) Rebuild bundle (Steve Boyd) + - 2023-12-21 [d949db14](https://github.com/silverstripe/silverstripe-admin/commit/d949db1433dfc25086c6e3b03b4e62c00da7ba13) decode entities in toast message (Thomas Portelange) + - 2023-12-19 [0755502d](https://github.com/silverstripe/silverstripe-admin/commit/0755502de7eedfc21f2ab02870c85a07d9d8fc03) Ensure react-select field menus are always on top (#1637) (Guy Sartorelli) + - 2023-12-15 [5d39d877](https://github.com/silverstripe/silverstripe-admin/commit/5d39d8776975e073462f5fa304a9ed5054fbfb7a) Set z-index of list (Steve Boyd) + - 2023-12-01 [4c53dece](https://github.com/silverstripe/silverstripe-admin/commit/4c53dece05a4b6df391a57a07fdbaadc36a18dd3) Prevents horizontal scrollbar in non-firefox (Lukas Erni) + - 2023-11-08 [c862349c](https://github.com/silverstripe/silverstripe-admin/commit/c862349cfa71c34ab3578c27bf254186305a3832) Handle extra empty values (Steve Boyd) + - 2023-10-31 [22d5471f](https://github.com/silverstripe/silverstripe-admin/commit/22d5471f5dd8dee68eb1307479d82a21d3b46e54) ModelAdmin toast elements (Sabina Talipova) + - 2023-10-19 [d393424b](https://github.com/silverstripe/silverstripe-admin/commit/d393424bcbbd19f46f502bb94c54e1519dd46af6) Make CanView/Edit group toggle logic more robust (#1610) (Guy Sartorelli) + +- silverstripe/asset-admin (2.1.0 -> 2.2.0-rc1) + - 2024-01-25 [bb3894ef](https://github.com/silverstripe/silverstripe-asset-admin/commit/bb3894efebc95baf2b640554b1e1062186f6c8da) TinyMCE Insert link from Files (Sabina Talipova) + - 2024-01-24 [b9db9c33](https://github.com/silverstripe/silverstripe-asset-admin/commit/b9db9c3348399d4c87c7a23a6b09bef3d7088b40) Add tinymce link menuitems per editor instance (#1435) (Guy Sartorelli) + - 2023-11-08 [a50f9e40](https://github.com/silverstripe/silverstripe-asset-admin/commit/a50f9e40e98b4e1dc0a2db5ad7f76c5a1b7d083a) Limit Member map to 100 (Steve Boyd) + - 2023-09-11 [fd811f95](https://github.com/silverstripe/silverstripe-asset-admin/commit/fd811f9567193036fb462be9cba4e49d4e360048) fix: expose ShowInSearch field in access UI (Will Rossiter) + +- silverstripe/versioned-admin (2.1.0 -> 2.2.0-rc1) + - 2024-03-10 [9c23cee](https://github.com/silverstripe/silverstripe-versioned-admin/commit/9c23ceec40455c90529ab48375ac76ea78790f53) Update ArchiveRestoreAction::doRestore() method to pass correct argument in redirection (Marco Hermo) + - 2024-02-12 [cd3fcb2](https://github.com/silverstripe/silverstripe-versioned-admin/commit/cd3fcb202e8fc26bcafb0df38fd9f7e7d0f6dc5e) Use correct modelClass with others tab (Steve Boyd) + +- silverstripe/cms (5.1.0 -> 5.2.0-rc1) + - 2024-01-24 [dfc42e7c](https://github.com/silverstripe/silverstripe-cms/commit/dfc42e7c86c304c23ffa822149be07059eed70a3) Add tinymce link menuitems per editor instance (#2916) (Guy Sartorelli) + - 2023-12-19 [9202ce9a](https://github.com/silverstripe/silverstripe-cms/commit/9202ce9a6896e3b0b736ba5d4ded2e4651222cb7) Ensure react-select field menus are always on top (#2910) (Guy Sartorelli) + - 2023-11-19 [579986a6](https://github.com/silverstripe/silverstripe-cms/commit/579986a69160ebfff63ead6d8c108ef8658933e5) Handle exceptions when using /0 as a URL (#2825) (Will Rossiter) + - 2023-11-07 [dd2bd613](https://github.com/silverstripe/silverstripe-cms/commit/dd2bd6138720587525a7d117b1593f6641650093) Limit Member map to 100 (Steve Boyd) + +- silverstripe/versioned (2.1.0 -> 2.2.0-rc1) + - 2024-02-19 [11d24ae](https://github.com/silverstripe/silverstripe-versioned/commit/11d24ae9d7693e66f9a8cc5153152cebf20c8dc4) use rawurlencode when setting toast headers (#440) (Thomas Portelange) + - 2023-11-01 [c52c166](https://github.com/silverstripe/silverstripe-versioned/commit/c52c1661cb9fc3cb81345373a18fff75313f009b) ModelAdmin toast elements (Sabina Talipova) + - 2023-10-24 [d614204](https://github.com/silverstripe/silverstripe-versioned/commit/d6142046ee5dd1697a3cdef2c98e9df5841be400) Remove implicitly added item (Sabina Talipova) + +- silverstripe/graphql (5.1.0 -> 5.2.0-rc1) + - 2023-11-26 [f929eb6](https://github.com/silverstripe/silverstripe-graphql/commit/f929eb650be15b3a85834ffcafbddf93318c20be) Add test cases for SortPlugin (Sabina Talipova) + - 2023-11-22 [5781c46](https://github.com/silverstripe/silverstripe-graphql/commit/5781c46614ac2d40d025c71837f3dbc090361e53) QuerySort::sort method should support sorting for multi arguments (Sabina Talipova) + +- silverstripe/documentconverter (3.1.0 -> 3.2.0-rc1) + - 2024-03-19 [240f576](https://github.com/silverstripe/silverstripe-documentconverter/commit/240f576335af20686f39ebe8956a5718df86ea43) Don't use deprecated usage of get_class() (#73) (Guy Sartorelli) + +- silverstripe/tagfield (3.1.0 -> 3.2.0-rc1) + - 2023-12-13 [18e5df1](https://github.com/silverstripe/silverstripe-tagfield/commit/18e5df1b921fb162962e1cb1ed6b5b3cffabc71f) z-index of select dropdown clashing with TinyMCE toolbar (Christopher Darling) + - 2023-09-22 [c931056](https://github.com/silverstripe/silverstripe-tagfield/commit/c9310566895a355bd8c974af0c3c66f03214b50c) Added the state changed checks and bubble up event - pending build (josephlewisnz) + +- silverstripe/blog (4.1.0 -> 4.2.0-rc1) + - 2024-03-19 [9fae326](https://github.com/silverstripe/silverstripe-blog/commit/9fae326927dc38640f429970f53e86f77fbf9903) Use $owns instead of onBeforeWrite hook to publish profile image (James Cocker) + - 2022-08-22 [99d1063](https://github.com/silverstripe/silverstripe-blog/commit/99d1063361018e924662fd9392209df28710873e) Allow multibyte to be configured (#605) (Will Rossiter) + +- silverstripe/spamprotection (4.1.0 -> 4.2.0-rc1) + - 2023-09-10 [17106d8](https://github.com/silverstripe/silverstripe-spamprotection/commit/17106d8f30bfb2327a47e20c2b7b7cd21c29f423) fix: if no spam protector set, fail sliently (Will Rossiter) + +- colymba/gridfield-bulk-editing-tools (4.0.0 -> 4.0.2) + - 2023-11-22 [9a8cc37](https://github.com/colymba/GridFieldBulkEditingTools/commit/9a8cc3792ea51146325c9709625bd8792c4995c2) Remove deprecated convert API for SS5.0 (#260) (Bram de Leeuw) + +- silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-rc1) + - 2023-11-09 [e490370](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/e49037024c5a92ddb76ee59d4ca90e2fb84327af) Infinite recursion sanity checks with more helpful error messages (#214) (Nathan J. Brauer) + +- symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0-rc1) + - 2024-01-25 [8f08322](https://github.com/symbiote/silverstripe-advancedworkflow/commit/8f08322f83259c8605540696e0446c89277f55ce) Argument order of insertBefore method (Mohamed Alsharaf) + - 2024-01-25 [5e3b9b0](https://github.com/symbiote/silverstripe-advancedworkflow/commit/5e3b9b0f246a7fb5cf7d4314d620f398f7fb4b65) Button layout that display icons (Mohamed Alsharaf) + - 2023-12-14 [7286f14](https://github.com/symbiote/silverstripe-advancedworkflow/commit/7286f144e28fbc3740c6376cb16973400507da1b) Use correct namespace for imports (Steve Boyd) + +- silverstripe/sitewidecontent-report (4.1.0 -> 4.2.0-rc1) + - 2024-01-24 [e6638ec](https://github.com/silverstripe/silverstripe-sitewidecontent-report/commit/e6638ecfb0e8f20134f15795d1aad9f28d9a01ce) update defensive check on tags field method (Phillip King) + +- silverstripe/versionfeed (3.1.0 -> 3.2.0-rc1) + - 2024-03-19 [49cc581](https://github.com/silverstripe/silverstripe-versionfeed/commit/49cc58109c979b3454bf1429b7d8670b8e07bb97) Don't use deprecated usage of get_class() (#103) (Guy Sartorelli) + - 2024-02-29 [66da923](https://github.com/silverstripe/silverstripe-versionfeed/commit/66da9235029584a1cb731beceba18d16111162f4) Ensure page has extension before calling method (Steve Boyd) + - 2024-01-23 [c10085c](https://github.com/silverstripe/silverstripe-versionfeed/commit/c10085c99e08828d042ef46808a8d6953ba5bd3d) Make sureHtmlDiff::compareHTML is not passed null values (Alexandre Saelens) + +- dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-rc1) + - 2024-02-26 [f571da9](https://github.com/silverstripe/silverstripe-elemental/commit/f571da95abcf0f5edb9498934af8d5579b6dece8) Remove workaround for nested redux form. (Guy Sartorelli) + - 2024-01-30 [95c31bd](https://github.com/silverstripe/silverstripe-elemental/commit/95c31bdcc51c6569f059e2de4887bf613c88d614) Failed Behat test (Sabina Talipova) + - 2024-01-29 [b23847a](https://github.com/silverstripe/silverstripe-elemental/commit/b23847a5099d0bbfb6f0d1192db7be23f5f06019) Behat test for badges (Sabina Talipova) + - 2024-01-18 [935e46d](https://github.com/silverstripe/silverstripe-elemental/commit/935e46dcc8ed2603805f063662edd053d2b51c6c) Null submit handler for element component (Steve Boyd) + - 2023-12-06 [d986b7d](https://github.com/silverstripe/silverstripe-elemental/commit/d986b7d7efd559ed69bfa199ebfe520a5304475a) Handle empty element formstate (Steve Boyd) + - 2023-09-20 [7f1daf8](https://github.com/silverstripe/silverstripe-elemental/commit/7f1daf858438549d4f6a26e09e728ccf553c700b) Element::getPage returning the wrong page (Will Rossiter) + - 2023-09-19 [215fadf](https://github.com/silverstripe/silverstripe-elemental/commit/215fadf524f32940bd0e567e9ed2b3ab3e092949) Fix some bits in the readme (Ed Wilde) + +- silverstripe/auditor (3.0.0 -> 3.1.0-rc1) + - 2023-12-21 [567136d](https://github.com/silverstripe/silverstripe-auditor/commit/567136d36d1fdb0b161950ed9f357482afefa58b) Adjust logic to account for custom table names (Maxime Rainville) + - 2023-12-19 [44ee87d](https://github.com/silverstripe/silverstripe-auditor/commit/44ee87dccb84a6da6a7a6d7a4a9b6c3f403a9ea4) `Fix logging of failed logins & unknown users` (Ralph Slooten) + - 2023-12-14 [780b9af](https://github.com/silverstripe/silverstripe-auditor/commit/780b9afc880a2a16e222074810a64b8b7246b15b) Use correct namespace for import (Steve Boyd) + +- silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0-rc1) + - 2024-01-16 [48b454f](https://github.com/silverstripe/silverstripe-gridfieldqueuedexport/commit/48b454f71bf89ee43c965c5eba20a6503e077290) Undefined Exception on makeDir method (Marco Hermo) + +- cwp/watea-theme (4.0.0 -> 4.1.0-rc1) + - 2023-09-04 [8bfba56](https://github.com/silverstripe/cwp-watea-theme/commit/8bfba563ac39e231c1b489218a937326d0b58659) Update .nvmrc (Steve Boyd) + +- symbiote/silverstripe-queuedjobs (5.0.2 -> 5.1.0-rc1) + - 2022-10-04 [7cdce8f](https://github.com/symbiote/silverstripe-queuedjobs/commit/7cdce8f678f9443e1fc13450a333bb87b6da9c3a) grabMutex job lock query on SQLite (Maxime Rainville) + +- tractorcow/silverstripe-fluent (7.0.0 -> 7.1.0-rc1) + - 2023-08-15 [28056e5](https://github.com/tractorcow-farm/silverstripe-fluent/commit/28056e5405ee09b1438e3134c944d10bcf2cb95b) fix stylesheet path (Thomas Portelange) + +- silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-rc1) + - 2024-03-19 [d0c44eb](https://github.com/silverstripe/silverstripe-linkfield/commit/d0c44ebc7acceea5e00445109d289a9a02cc9e2d) Remove misleading migration docs and task (#259) (Guy Sartorelli) + - 2024-03-10 [e40f251](https://github.com/silverstripe/silverstripe-linkfield/commit/e40f2516256aa0dfeecae552b16da19b0c1f197d) Remove tabs with only gridfields (Steve Boyd) + - 2024-02-26 [1a30c3e](https://github.com/silverstripe/silverstripe-linkfield/commit/1a30c3e298a1afc5569fca46200a3761b390bb9b) Remove workaround for nested redux form. (Guy Sartorelli) + - 2024-02-12 [c347b35](https://github.com/silverstripe/silverstripe-linkfield/commit/c347b35042c2ed164e7b685785f0fd7dd169865f) Archive record from live table on delete (Steve Boyd) + - 2024-02-07 [31d9ffa](https://github.com/silverstripe/silverstripe-linkfield/commit/31d9ffa15e98ed7c226d4fe0d67a53eb4b207879) Do not show delete button when disabled (Steve Boyd) + - 2024-01-31 [09f637c](https://github.com/silverstripe/silverstripe-linkfield/commit/09f637c26384069db0cc8749f619c50c67336403) Add HasOneRelationFieldInterface to LinkField (Steve Boyd) + - 2024-01-30 [790c561](https://github.com/silverstripe/silverstripe-linkfield/commit/790c561cca07f39f62412df3f247c6d6faa9e82d) Elemental non-inline editing (Steve Boyd) + - 2024-01-25 [da9ce9b](https://github.com/silverstripe/silverstripe-linkfield/commit/da9ce9b47dc3d8c2aa4124a300e66b1a0baf4433) Prevent nested asset-admin forms from submitting modal (Steve Boyd) + - 2024-01-19 [15f02d3](https://github.com/silverstripe/silverstripe-linkfield/commit/15f02d33641d8b286ee4b94a53a99a4491384e72) Defaul link type title and icon for disabled link types (Sabina Talipova) + - 2024-01-15 [f7fd63a](https://github.com/silverstripe/silverstripe-linkfield/commit/f7fd63a32b6c116b5cf51622f1d26581bdfe745a) Don't change scroll position when loading (#171) (Guy Sartorelli) + - 2024-01-11 [082657d](https://github.com/silverstripe/silverstripe-linkfield/commit/082657d1043936885a5f1050ace9a489cd0643c2) Console warning about required type (#163) (Sabina Talipova) + - 2024-01-08 [bdf0b36](https://github.com/silverstripe/silverstripe-linkfield/commit/bdf0b36225ba63a4f2784c369d1915582a821ee8) Nicely truncate link title/URL (#153) (Guy Sartorelli) + - 2023-12-04 [3c8edfd](https://github.com/silverstripe/silverstripe-linkfield/commit/3c8edfdc02846e43c3ae4b5d044bd4046e224679) Don't render links that don't exist (#130) (Guy Sartorelli) + - 2023-08-03 [f2fd7bb](https://github.com/silverstripe/silverstripe-linkfield/commit/f2fd7bb3335d967857387cb9d85b0b82ea0c1414) Revert change that broke file modal (Maxime Rainville) + - 2023-06-20 [8533d27](https://github.com/silverstripe/silverstripe-linkfield/commit/8533d278f0f44a84b9540428bdc68dc12ee1cd34) Allow CMS fields customisations via extension to be executed after the default setup. (Mojmir Fendek) + - 2023-06-11 [61a27e5](https://github.com/silverstripe/silverstripe-linkfield/commit/61a27e58837eaef8f5a3341ff331304de49b5f77) File link URL generation corrected. (Mojmir Fendek) + - 2023-06-06 [8df6554](https://github.com/silverstripe/silverstripe-linkfield/commit/8df65541242d93a165e944fee010a7a174d32cea) Corrected variable name (typo). (Mojmir Fendek) + - 2023-06-06 [f09a385](https://github.com/silverstripe/silverstripe-linkfield/commit/f09a38589649e848a758b4d76516d9bfb337943e) URL generation fix for internal link. (Mojmir Fendek) + - 2023-06-01 [b328570](https://github.com/silverstripe/silverstripe-linkfield/commit/b328570d36bd63fe39d2e964aebe123a8a0bb281) Fix link migration task. (Mojmir Fendek) + - 2023-05-25 [9744bd8](https://github.com/silverstripe/silverstripe-linkfield/commit/9744bd8dc23ebe70129555b5b7573ac5295232b4) List types can now be disabled via configuration (existing config, missing feature). (Mojmir Fendek) + - 2023-02-15 [677ae80](https://github.com/silverstripe/silverstripe-linkfield/commit/677ae80e6941e7016b6c3edc1ee1cddef1432efb) Fix Github actions. (Mojmir Fendek) + - 2022-05-13 [1e9c0ec](https://github.com/silverstripe/silverstripe-linkfield/commit/1e9c0ec5428d626622392165fd39a81c2550127e) Bump PHP versions. (Mojmir Fendek) + - 2022-05-12 [5239704](https://github.com/silverstripe/silverstripe-linkfield/commit/523970490db436bc7948bf67257c1f39a425ff93) Fix Composer autoload settings. (Mojmir Fendek) + - 2021-10-21 [2eb755e](https://github.com/silverstripe/silverstripe-linkfield/commit/2eb755eb15d26bfb6d59c7d07c52c67fbdad6e7d) Change link type in via a GridField edit form. (Mojmir Fendek) + +### Api changes {#changelog-api-changes} + +- silverstripe/assets (2.1.0 -> 2.2.0-rc1) + - 2021-07-20 [595c5a5](https://github.com/silverstripe/silverstripe-assets/commit/595c5a5bb5c0f0498ade4316935068a3e84fc177) allow chaining for Upload_Validator (Will Rossiter) + +- silverstripe/framework (5.1.0 -> 5.2.0-rc1) + - 2024-01-16 [8b427f4e7](https://github.com/silverstripe/silverstripe-framework/commit/8b427f4e74474fb30dc660bac6eda7ecff062b12) Deprecate some unused API (Guy Sartorelli) + - 2023-11-27 [3fe42b84a](https://github.com/silverstripe/silverstripe-framework/commit/3fe42b84afcb74f80b27a4fe0e679c909248496f) Use correct param types (Steve Boyd) + +- silverstripe/cms (5.1.0 -> 5.2.0-rc1) + - 2023-11-02 [e826152f](https://github.com/silverstripe/silverstripe-cms/commit/e826152fd1d316d9aa010764e3ca1ca6f99efa1d) Add new SiteTree.hide_pagetypes configuration (Guy Sartorelli) + +- silverstripe/versioned (2.1.0 -> 2.2.0-rc1) + - 2023-11-05 [4d38781](https://github.com/silverstripe/silverstripe-versioned/commit/4d3878139ebb063e909153436e58290b7b0f081d) Deprecate Versions() having parameter (Steve Boyd) + +- silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-rc1) + - 2023-12-12 [7f65d4f](https://github.com/silverstripe/silverstripe-linkfield/commit/7f65d4fdee873fc7746acdc82e3bc2b591138a02) Add new Owner relation for handling permissions (#127) (Guy Sartorelli) + +### Dependencies {#changelog-dependencies} + +- silverstripe/recipe-kitchen-sink (5.1.0 -> 5.2.0-rc1) + - 2023-09-28 [fa436ba](https://github.com/silverstripe/recipe-kitchen-sink/commit/fa436ba2898779121eeb21b5da9c02f7d0445e35) Add silverstripe/linkfield (Steve Boyd) + +- silverstripe/framework (5.1.0 -> 5.2.0-rc1) + - 2023-11-12 [bc47d65cc](https://github.com/silverstripe/silverstripe-framework/commit/bc47d65cc5120afcb5b7a97c5e89e3267ad4fc5c) Deprecate configurable silent failures in GridField components (Guy Sartorelli) + - 2023-05-31 [7ae903872](https://github.com/silverstripe/silverstripe-framework/commit/7ae90387260e16bc3dd9a1d2bfd92dd9d699c811) Explicitly require psr/http-message ^1 (Steve Boyd) + +- silverstripe/admin (2.1.0 -> 2.2.0-rc1) + - 2024-01-08 [45a41970](https://github.com/silverstripe/silverstripe-admin/commit/45a419702ce4dbe4d170fcef41a4d232274e892e) Update JS dependencies (#1645) (Guy Sartorelli) + - 2023-10-03 [fb996163](https://github.com/silverstripe/silverstripe-admin/commit/fb9961638f172866b991be8574b79fdaa7ca1f43) Update JS dependencies (github-actions) + - 2023-09-25 [48e88977](https://github.com/silverstripe/silverstripe-admin/commit/48e88977445aa0fbbf67c503274bc57e1d9b8117) Bump semver from 5.7.1 to 5.7.2 (dependabot[bot]) + - 2023-09-21 [76faebbe](https://github.com/silverstripe/silverstripe-admin/commit/76faebbe4af9e6f4b865841e8207b36c6871ee12) Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot]) + +- silverstripe/asset-admin (2.1.0 -> 2.2.0-rc1) + - 2024-01-01 [e405cafd](https://github.com/silverstripe/silverstripe-asset-admin/commit/e405cafd6ce9b8533358957bf920574f3d022d60) Update JS dependencies (github-actions) + - 2023-10-01 [f84ff32f](https://github.com/silverstripe/silverstripe-asset-admin/commit/f84ff32fff17ac2c648f292ddad69ebb3a135952) Update JS dependencies (github-actions) + - 2023-09-21 [35ab766e](https://github.com/silverstripe/silverstripe-asset-admin/commit/35ab766e1a8be9712410400f64ba8147435af458) Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot]) + +- silverstripe/campaign-admin (2.1.0 -> 2.2.0-rc1) + - 2024-01-01 [848cb54](https://github.com/silverstripe/silverstripe-campaign-admin/commit/848cb541460691d6b552b2a1ccd64c4288f5e6fc) Update JS dependencies (github-actions) + - 2023-10-01 [d28008a](https://github.com/silverstripe/silverstripe-campaign-admin/commit/d28008acf9d7c8eb99ebccefb65666ba1def5924) Update JS dependencies (github-actions) + +- silverstripe/versioned-admin (2.1.0 -> 2.2.0-rc1) + - 2024-01-01 [ce3efde](https://github.com/silverstripe/silverstripe-versioned-admin/commit/ce3efdeda2bf914d02a33110e6a0de5325571066) Update JS dependencies (github-actions) + - 2023-10-01 [591b938](https://github.com/silverstripe/silverstripe-versioned-admin/commit/591b93816f8f08aadd52d9e5514a7d912327ead9) Update JS dependencies (github-actions) + - 2023-09-21 [82ed02a](https://github.com/silverstripe/silverstripe-versioned-admin/commit/82ed02a7dc22213793d519fa322f46546ca26506) Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot]) + +- silverstripe/cms (5.1.0 -> 5.2.0-rc1) + - 2024-01-01 [a6cbf65d](https://github.com/silverstripe/silverstripe-cms/commit/a6cbf65d8ffd9306b2c3c65090198b07c618a361) Update JS dependencies (github-actions) + - 2023-10-01 [7d1d93ab](https://github.com/silverstripe/silverstripe-cms/commit/7d1d93ab896dee4363e628d6430dca4e6a4801bb) Update JS dependencies (github-actions) + - 2023-09-21 [da660479](https://github.com/silverstripe/silverstripe-cms/commit/da66047987f37af2746787f4c7f12cb5542b3691) Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot]) + +- silverstripe/session-manager (2.1.0 -> 2.2.0-rc1) + - 2024-01-01 [67555fa](https://github.com/silverstripe/silverstripe-session-manager/commit/67555faab3943e795096cf8e3426b6ef1b25bcc9) Update JS dependencies (github-actions) + - 2023-10-01 [22bf989](https://github.com/silverstripe/silverstripe-session-manager/commit/22bf989756e8b9b2d8701b94ef892ac28cd83357) Update JS dependencies (github-actions) + +- silverstripe-themes/simple (3.3.0 -> 3.3.1) + - 2023-11-17 [d3228db](https://github.com/silverstripe/silverstripe-simple/commit/d3228db60dbbb1463448b1f41cf7f9afc91eae50) Update jQuery to 3.7.1 (Garion Herman) + +- silverstripe/login-forms (5.1.0 -> 5.2.0-rc1) + - 2024-01-01 [64b1ad4](https://github.com/silverstripe/silverstripe-login-forms/commit/64b1ad46392a68ae857d7a1c359a2c4756a0d005) Update JS dependencies (github-actions) + - 2023-10-01 [4647dc2](https://github.com/silverstripe/silverstripe-login-forms/commit/4647dc28967025097b471b5aa62304f5efc90bad) Update JS dependencies (github-actions) + +- silverstripe/documentconverter (3.1.0 -> 3.2.0-rc1) + - 2024-01-01 [7435c07](https://github.com/silverstripe/silverstripe-documentconverter/commit/7435c073f5748776a32e901e7176c67973e1c7c7) Update JS dependencies (github-actions) + - 2023-10-01 [ea949aa](https://github.com/silverstripe/silverstripe-documentconverter/commit/ea949aa814cc0d7b09f6b4a263d138f46b252fab) Update JS dependencies (github-actions) + +- silverstripe/tagfield (3.1.0 -> 3.2.0-rc1) + - 2024-01-01 [5212c33](https://github.com/silverstripe/silverstripe-tagfield/commit/5212c33d40dabc42965cbe01024a8310fc4dfe13) Update JS dependencies (github-actions) + - 2023-10-01 [036319b](https://github.com/silverstripe/silverstripe-tagfield/commit/036319be08876610235b05e411db4cee01dccad2) Update JS dependencies (github-actions) + +- silverstripe/taxonomy (3.1.0 -> 3.2.0-rc1) + - 2024-01-08 [8a4a0b1](https://github.com/silverstripe/silverstripe-taxonomy/commit/8a4a0b184745215b6a75dae98df9e7d16d6fc2bf) Update deps to specify new auto-scaffolded has-one field (Steve Boyd) + +- silverstripe/blog (4.1.0 -> 4.2.0-rc1) + - 2024-01-01 [6351690](https://github.com/silverstripe/silverstripe-blog/commit/63516905a4f8f0282bf62e5d964c8bdd74e63f08) Update JS dependencies (github-actions) + - 2023-10-19 [2ef3981](https://github.com/silverstripe/silverstripe-blog/commit/2ef3981000210747f5853c3e1168dd792dd3aeb1) Bump @babel/traverse from 7.23.0 to 7.23.2 (dependabot[bot]) + - 2023-10-01 [e363b0e](https://github.com/silverstripe/silverstripe-blog/commit/e363b0e59035fa232fe1afa5205e2fdbcf952ae0) Update JS dependencies (github-actions) + +- silverstripe/contentreview (5.1.0 -> 5.2.0-rc1) + - 2024-01-01 [4124322](https://github.com/silverstripe/silverstripe-contentreview/commit/41243227dc3ea579147bff89bafcbcffcea77cb4) Update JS dependencies (github-actions) + - 2023-10-01 [1f750b9](https://github.com/silverstripe/silverstripe-contentreview/commit/1f750b91fe7972bafc4afeac611f10d329c5cbb2) Update JS dependencies (github-actions) + +- silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-rc1) + - 2024-01-01 [429dfd2](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/429dfd2a67a3cdf65a9e13c78f7ff085c4ee6d6f) Update JS dependencies (github-actions) + - 2023-10-07 [f3d77c4](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/f3d77c453dfaf8779656d9c9d77ebce02b264322) Bump postcss from 8.4.24 to 8.4.31 (dependabot[bot]) + +- symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0-rc1) + - 2023-08-31 [85e3f97](https://github.com/symbiote/silverstripe-advancedworkflow/commit/85e3f97213a4c150bd57d1d8ddce72000cc1db73) Update JS dependencies (Steve Boyd) + +- silverstripe/segment-field (3.1.0 -> 3.2.0-rc1) + - 2024-01-01 [16a2718](https://github.com/silverstripe/silverstripe-segment-field/commit/16a2718bda6433335774e1e03be26de03ece5c5b) Update JS dependencies (github-actions) + - 2023-10-01 [7986025](https://github.com/silverstripe/silverstripe-segment-field/commit/79860256f4634eee44255b528d2279a89910341f) Update JS dependencies (github-actions) + +- silverstripe/userforms (6.1.0 -> 6.2.0-rc1) + - 2024-01-01 [7796ec5](https://github.com/silverstripe/silverstripe-userforms/commit/7796ec53bbe73d492d9e52e2fb8a71b286ecee78) Update JS dependencies (github-actions) + - 2023-10-01 [0a33a7e](https://github.com/silverstripe/silverstripe-userforms/commit/0a33a7e5dfc14c13a02dbe5911e525d413ea2415) Update JS dependencies (github-actions) + +- silverstripe/externallinks (3.1.0 -> 3.2.0-rc1) + - 2024-01-01 [01104bf](https://github.com/silverstripe/silverstripe-externallinks/commit/01104bf66916a4d7404966ae96ae9ef30c4d71d7) Update JS dependencies (github-actions) + - 2023-10-01 [6b6b05e](https://github.com/silverstripe/silverstripe-externallinks/commit/6b6b05ee0a6ec31732a712ffd2ade45d54dc227d) Update JS dependencies (github-actions) + - 2023-09-29 [204e7c5](https://github.com/silverstripe/silverstripe-externallinks/commit/204e7c5ee0ab0235f806effcf38358587bb9f38d) Bump word-wrap from 1.2.3 to 1.2.5 (dependabot[bot]) + +- silverstripe/sitewidecontent-report (4.1.0 -> 4.2.0-rc1) + - 2024-01-01 [d0dc6d0](https://github.com/silverstripe/silverstripe-sitewidecontent-report/commit/d0dc6d07ede215a15e012f70879536bd131414e4) Update JS dependencies (github-actions) + - 2023-10-01 [57805fd](https://github.com/silverstripe/silverstripe-sitewidecontent-report/commit/57805fd1e50d0c987fc053e4d1b2e7684300d4a1) Update JS dependencies (github-actions) + +- bringyourownideas/silverstripe-maintenance (3.0.1 -> 3.1.0-rc1) + - 2023-08-31 [e4014d7](https://github.com/bringyourownideas/silverstripe-maintenance/commit/e4014d78209edabd965817a993323644c7e3af4f) Update JS dependencies (Steve Boyd) + - 2023-07-11 [efba968](https://github.com/bringyourownideas/silverstripe-maintenance/commit/efba968eb97c261e3f675135815fcfe4013a0efc) Update eslint module (#200) (Sabina Talipova) + +- dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-rc1) + - 2024-01-01 [d5108cb](https://github.com/silverstripe/silverstripe-elemental/commit/d5108cb59a084c3354397a9e357b1a047ef73857) Update JS dependencies (github-actions) + - 2023-10-01 [f425d9d](https://github.com/silverstripe/silverstripe-elemental/commit/f425d9dbb45e9f5b097eb1aef3cd208acea7fd69) Update JS dependencies (github-actions) + - 2023-09-21 [b84791f](https://github.com/silverstripe/silverstripe-elemental/commit/b84791f124ada2ef63e77f6172c94c6a09a9bcbd) Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot]) + - 2023-09-04 [9ea6ead](https://github.com/silverstripe/silverstripe-elemental/commit/9ea6ead57ac68ae79d81093dc3330d195a5daed0) Update JS dependencies (github-actions) + +- silverstripe/elemental-bannerblock (3.1.0 -> 3.2.0-rc1) + - 2024-01-01 [f31ca86](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/f31ca86c3db6c8df84fc10e61095d4b35f2e705a) Update JS dependencies (github-actions) + - 2023-10-19 [59a81dc](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/59a81dcc10ee17b715a1de14ec61ae92d21b7fe9) Bump @babel/traverse from 7.22.10 to 7.23.2 (dependabot[bot]) + - 2023-10-08 [7166c18](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/7166c183fd4d9a13aeffd02ae2eb45ac4cd4a7c2) Bump postcss from 8.4.28 to 8.4.31 (dependabot[bot]) + +- silverstripe/auditor (3.0.0 -> 3.1.0-rc1) + - 2024-03-19 [537dcd3](https://github.com/silverstripe/silverstripe-auditor/commit/537dcd3a015819955224e521676873f95093751d) Use the canonical repository for proxy-db (#49) (Guy Sartorelli) + +- silverstripe/totp-authenticator (5.1.0 -> 5.2.0-rc1) + - 2024-01-01 [d1ce73e](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/d1ce73ea82f35db4eb7f61a24b3c76d7ede4acfb) Update JS dependencies (github-actions) + - 2023-10-01 [5e14c36](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/5e14c3667fd5c60485f98d09e267421d0b9acd45) Update JS dependencies (github-actions) + +- silverstripe/mfa (5.1.0 -> 5.2.0-rc1) + - 2024-01-01 [9cce064](https://github.com/silverstripe/silverstripe-mfa/commit/9cce064d70547617857d9a2bfdb57b3963429053) Update JS dependencies (github-actions) + - 2023-10-01 [9ed339d](https://github.com/silverstripe/silverstripe-mfa/commit/9ed339ddc438d3d3c0604918a662409f6429875f) Update JS dependencies (github-actions) + +- silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0-rc1) + - 2024-01-01 [c6ba6c4](https://github.com/silverstripe/silverstripe-gridfieldqueuedexport/commit/c6ba6c47754d7587f1972d4545a21e2977ab4169) Update JS dependencies (github-actions) + - 2023-10-01 [2cbe9d5](https://github.com/silverstripe/silverstripe-gridfieldqueuedexport/commit/2cbe9d56d7dfa57f6c1755693d843d1a813b69e2) Update JS dependencies (github-actions) + +- silverstripe/realme (5.2.0 -> 5.3.0-rc1) + - 2024-01-01 [08baf2d](https://github.com/silverstripe/silverstripe-realme/commit/08baf2de745e4bf5ad9dae86c22ce2bdbfe946fb) Update JS dependencies (github-actions) + - 2023-10-01 [77345e7](https://github.com/silverstripe/silverstripe-realme/commit/77345e76ed6278a77598735439c7bb637f731d02) Update JS dependencies (github-actions) + +- silverstripe/webauthn-authenticator (5.1.0 -> 5.2.0-rc1) + - 2024-01-01 [c2c7bf0](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/c2c7bf05044e8ad413bc005205fd472a713be22c) Update JS dependencies (github-actions) + - 2023-10-19 [3e39b93](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/3e39b93e11dfa0e16dc7a3a423cffe45be3e0b67) Bump @babel/traverse from 7.22.10 to 7.23.2 (dependabot[bot]) + - 2023-10-08 [f5b3005](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/f5b300516a1c4990bacf84d603a177710078445d) Bump postcss from 8.4.28 to 8.4.31 (dependabot[bot]) + +- silverstripe/subsites (3.1.0 -> 3.2.0-rc1) + - 2024-01-01 [17a729f](https://github.com/silverstripe/silverstripe-subsites/commit/17a729f04c70b0e928c5b914b3f543b475420c13) Update JS dependencies (github-actions) + - 2023-10-01 [e56425e](https://github.com/silverstripe/silverstripe-subsites/commit/e56425e548a09d3d93cd3f44bdfd657123c0210e) Update JS dependencies (github-actions) + +- silverstripe/lumberjack (3.0.2 -> 3.1.0-rc1) + - 2024-01-01 [a139526](https://github.com/silverstripe/silverstripe-lumberjack/commit/a13952696a7baf847a53d0d36f38c8796dfb30af) Update JS dependencies (github-actions) + - 2023-10-01 [4056a91](https://github.com/silverstripe/silverstripe-lumberjack/commit/4056a918b110bccfab668c06c070147f1d1dbe7e) Update JS dependencies (github-actions) + - 2023-09-29 [1655e8b](https://github.com/silverstripe/silverstripe-lumberjack/commit/1655e8b4cc49fed12041801fb57b20cb623aec94) Bump word-wrap from 1.2.3 to 1.2.5 (dependabot[bot]) + - 2023-07-11 [b9a2082](https://github.com/silverstripe/silverstripe-lumberjack/commit/b9a20827ff9c93fc4bad4700aae498be3fc8e51d) Update eslint module (#124) (Sabina Talipova) + +- cwp/starter-theme (4.0.0 -> 4.1.0-rc1) + - 2024-01-08 [d762ea9](https://github.com/silverstripe/cwp-starter-theme/commit/d762ea99c36ab91758a47b7aa82788140b8e51fc) Update JS dependencies (#240) (Guy Sartorelli) + - 2024-01-08 [fdf930e](https://github.com/silverstripe/cwp-starter-theme/commit/fdf930e73262e82a23736c546f85fe26cabe866f) Bump @babel/traverse from 7.23.0 to 7.23.7 (dependabot[bot]) + - 2023-10-28 [6a2dff8](https://github.com/silverstripe/cwp-starter-theme/commit/6a2dff8889e6229f925121153e5c884293abc814) Bump browserify-sign from 4.2.1 to 4.2.2 (dependabot[bot]) + - 2023-10-03 [5de9fba](https://github.com/silverstripe/cwp-starter-theme/commit/5de9fbaacdb0485eafbdaa27763a57b43bb1e409) Update JS dependencies (#233) (github-actions[bot]) + - 2023-08-31 [b79bcbd](https://github.com/silverstripe/cwp-starter-theme/commit/b79bcbdfadf307369f2a5c21962cbcec167fbbdb) Bump minimatch from 3.0.4 to 3.0.8 (dependabot[bot]) + - 2023-08-29 [0adbddc](https://github.com/silverstripe/cwp-starter-theme/commit/0adbddc5468e55885df159f13c35ce356c317347) Bump semver from 5.7.1 to 5.7.2 (dependabot[bot]) + - 2023-08-28 [2a0d10f](https://github.com/silverstripe/cwp-starter-theme/commit/2a0d10f500e186004ca40f4be3ede1610637834c) Bump url-parse from 1.5.1 to 1.5.10 (dependabot[bot]) + - 2023-08-28 [2ee7c94](https://github.com/silverstripe/cwp-starter-theme/commit/2ee7c941142c6b56012725486eb0d7aefd2b2974) Bump eventsource from 1.0.7 to 1.1.2 (dependabot[bot]) + - 2023-08-28 [8b3912f](https://github.com/silverstripe/cwp-starter-theme/commit/8b3912fa1d79b4a1cd17ef92de8ec4f1884f54eb) Bump follow-redirects from 1.13.0 to 1.15.2 (dependabot[bot]) + - 2023-08-28 [3bec8aa](https://github.com/silverstripe/cwp-starter-theme/commit/3bec8aaa6f6a4b76fb24f1f013dc50e9a7499096) Bump async from 2.6.3 to 2.6.4 (dependabot[bot]) + - 2023-08-28 [e8cb249](https://github.com/silverstripe/cwp-starter-theme/commit/e8cb249640c2a75dd4607d13d86ccc7f94db4647) Bump path-parse from 1.0.6 to 1.0.7 (dependabot[bot]) + - 2023-08-28 [83b1e25](https://github.com/silverstripe/cwp-starter-theme/commit/83b1e255a596c109791af6d7b2016d0ff423d2d8) Bump hosted-git-info from 2.8.5 to 2.8.9 (dependabot[bot]) + - 2023-08-28 [743463a](https://github.com/silverstripe/cwp-starter-theme/commit/743463a29ec371690722f5ce5a322f8134a91f72) Bump tar from 4.4.15 to 4.4.19 (dependabot[bot]) + - 2023-08-28 [f0ef7f0](https://github.com/silverstripe/cwp-starter-theme/commit/f0ef7f05ba319e0794e5d179ddeec19507b07aeb) Bump color-string from 1.5.3 to 1.9.1 (dependabot[bot]) + - 2023-08-28 [5a84ae2](https://github.com/silverstripe/cwp-starter-theme/commit/5a84ae2c4ef6e2951aa881d67e1800df5b18bf16) Bump ajv from 6.10.2 to 6.12.3 (dependabot[bot]) + - 2023-08-28 [81c5a23](https://github.com/silverstripe/cwp-starter-theme/commit/81c5a23e2d4d6c7722c80951ede0536dbb1677eb) Bump lodash from 4.17.19 to 4.17.21 (dependabot[bot]) + - 2023-08-28 [167a10f](https://github.com/silverstripe/cwp-starter-theme/commit/167a10f5d3a4635a10664df36df2ffc862cbcc36) Bump decode-uri-component from 0.2.0 to 0.2.2 (dependabot[bot]) + - 2023-08-28 [eeee5c7](https://github.com/silverstripe/cwp-starter-theme/commit/eeee5c77d3fa8bd210f729fe8c8c01ac8379763e) Bump json5 from 1.0.1 to 1.0.2 (dependabot[bot]) + - 2022-12-10 [c3c8d4a](https://github.com/silverstripe/cwp-starter-theme/commit/c3c8d4ac9e6cbbf3f2e2e8b876237d30be6c1653) Bump express from 4.17.1 to 4.18.2 (dependabot[bot]) + +- cwp/agency-extensions (3.1.0 -> 3.2.0-rc1) + - 2024-01-01 [0b3354c](https://github.com/silverstripe/cwp-agencyextensions/commit/0b3354c3fad9a086dfbd7d2598c96e84f398502a) Update JS dependencies (github-actions) + - 2023-10-01 [db01219](https://github.com/silverstripe/cwp-agencyextensions/commit/db01219a229ba11c443855c024907fd8bb7c65a2) Update JS dependencies (github-actions) + +- cwp/watea-theme (4.0.0 -> 4.1.0-rc1) + - 2024-01-01 [415858c](https://github.com/silverstripe/cwp-watea-theme/commit/415858cca4857f2bbe5ff1323ebf32511c14b3ff) Update JS dependencies (github-actions) + - 2023-10-01 [c407d54](https://github.com/silverstripe/cwp-watea-theme/commit/c407d54db397abcd8cb2bd9a3afa6364b62adb3d) Update JS dependencies (github-actions) + - 2023-08-29 [902113b](https://github.com/silverstripe/cwp-watea-theme/commit/902113b635a5eec72c62bf8b24d8e2dc45254226) build(deps): bump semver from 5.6.0 to 5.7.2 (dependabot[bot]) + - 2023-08-28 [78c47a5](https://github.com/silverstripe/cwp-watea-theme/commit/78c47a53a8b0277719b8b8bb459c57f6805bd4cb) build(deps): bump dot-prop from 4.2.0 to 4.2.1 (dependabot[bot]) + - 2023-08-28 [3f0de59](https://github.com/silverstripe/cwp-watea-theme/commit/3f0de59b4f62706295e20cb25d71e8dfecd6e709) build(deps): bump path-parse from 1.0.6 to 1.0.7 (dependabot[bot]) + - 2023-08-28 [878cc6a](https://github.com/silverstripe/cwp-watea-theme/commit/878cc6a8456886dd91051087ee593e12681907b4) build(deps): bump hosted-git-info from 2.7.1 to 2.8.9 (dependabot[bot]) + - 2023-08-28 [8781c5a](https://github.com/silverstripe/cwp-watea-theme/commit/8781c5aee9f5f91ab47280ef936ccfca7edc1004) build(deps): bump json5 from 1.0.1 to 1.0.2 (dependabot[bot]) + +- symbiote/silverstripe-multivaluefield (6.0.2 -> 6.1.0-rc1) + - 2023-07-11 [99564be](https://github.com/symbiote/silverstripe-multivaluefield/commit/99564be8c783cf7fd4e2778ec8218a97b8bb6645) Update eslint module (#97) (Sabina Talipova) + +- silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-rc1) + - 2024-01-08 [bddcb6e](https://github.com/silverstripe/silverstripe-linkfield/commit/bddcb6e098e5941d7c80031ae6583331242c28cc) Explicitly require framework ^5.2 (Steve Boyd) + +### Documentation {#changelog-documentation} + +- silverstripe/session-manager (2.1.0 -> 2.2.0-rc1) + - 2023-11-05 [2305049](https://github.com/silverstripe/silverstripe-session-manager/commit/23050493b4f0b354e567f64c19a5ab8a1d655822) Fix link (Steve Boyd) + +- silverstripe/tagfield (3.1.0 -> 3.2.0-rc1) + - 2023-11-20 [946d92a](https://github.com/silverstripe/silverstripe-tagfield/commit/946d92a7e8b5e2e1e3b9e2aeea54291d30e249e3) Update readme example (Steve Boyd) + +- silverstripe/userforms (6.1.0 -> 6.2.0-rc1) + - 2024-02-01 [c893194](https://github.com/silverstripe/silverstripe-userforms/commit/c89319477561e60ce9752ffc62f12a74fa55522b) Update syntax for callout blocks (#1263) (Guy Sartorelli) + +- dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-rc1) + - 2023-08-30 [fe95f59](https://github.com/silverstripe/silverstripe-elemental/commit/fe95f59b2b6768f2ee6c823e6972b1e070eded71) fix not needed duplication when restoring a page from archived state (Aljoša Balažic) + +- silverstripe/developer-docs (5.1.0 -> 5.2.0-rc1) + - 2024-03-20 [baeeb636](https://github.com/silverstripe/developer-docs/commit/baeeb636d938309af6e463706b372a11098c593b) Minor change to changelog regarding PHP 8.3 (#483) (Guy Sartorelli) + - 2024-03-18 [7e4e3460](https://github.com/silverstripe/developer-docs/commit/7e4e34607d7825768dbc326cf135933d3f69a47f) Readability and writing style review of 5.2.0 changelog (Guy Sartorelli) + - 2024-03-18 [a5f55891](https://github.com/silverstripe/developer-docs/commit/a5f558919adabb73dd4c6eb017ec7ec91fd6721d) Add more changes to the changelog (Guy Sartorelli) + - 2024-03-18 [6cbc0fa1](https://github.com/silverstripe/developer-docs/commit/6cbc0fa1940d0f89458cb45a3dbdd4b564585940) Update notes about linkfield migration guides (Guy Sartorelli) + - 2024-03-14 [f9a73555](https://github.com/silverstripe/developer-docs/commit/f9a73555b2e6dbdebc4cd58cc404be3d0344132c) Add PHP8.3 support to the changelog. (#480) (Guy Sartorelli) + - 2024-03-12 [ee99a449](https://github.com/silverstripe/developer-docs/commit/ee99a4490101f8534c5d6fa4423117c15839c162) change and/or to or (Steve Boyd) + - 2024-03-11 [9da6a80d](https://github.com/silverstripe/developer-docs/commit/9da6a80d5e981512e3892dc150e94911c75df73a) Elemental versioned badge (Steve Boyd) + - 2024-03-11 [37710318](https://github.com/silverstripe/developer-docs/commit/3771031889690be0b667bf35412d1f59a02642f2) Move 5.2.0-beta1 changelog to proper directory (Steve Boyd) + - 2024-03-05 [43b0baf1](https://github.com/silverstripe/developer-docs/commit/43b0baf1ebfa35e9d69e731bc5a73ed1907c87cb) Update image path (Steve Boyd) + - 2024-03-05 [2260d6dd](https://github.com/silverstripe/developer-docs/commit/2260d6dd8cb1cac9d6d697ed0b78a3514e4a6d0a) Fix 5.2.0-beta1 changelog (Steve Boyd) + - 2024-03-04 [cc5be721](https://github.com/silverstripe/developer-docs/commit/cc5be721e3a0c0c897eec624f15b973a81185fc0) Add composer runtime api mention (#464) (Thomas Portelange) + - 2024-02-29 [164b66f1](https://github.com/silverstripe/developer-docs/commit/164b66f1461b3a1975f9acc4b0e3f868d7c22b1a) Refer to release policies to avoid stale information (#462) (Guy Sartorelli) + - 2024-02-28 [6bc37ea3](https://github.com/silverstripe/developer-docs/commit/6bc37ea398725e9c4c18c773e502e88fae88b0c1) Document LTS support for databases (Guy Sartorelli) + - 2024-02-23 [621a9f40](https://github.com/silverstripe/developer-docs/commit/621a9f409747a48026978670e9aaea41c6ae5c0b) Fix placement of urlfield docs (#460) (Guy Sartorelli) + - 2024-02-20 [aa9ef537](https://github.com/silverstripe/developer-docs/commit/aa9ef537cfcf1d6a21027c81e54f95a406d1161e) Document manipulating eager loading queries (#456) (Guy Sartorelli) + - 2024-02-18 [22fd700d](https://github.com/silverstripe/developer-docs/commit/22fd700d374ebb1c2dd581fe2b90458afd95a273) Document official support for linkfield (#457) (Guy Sartorelli) + - 2024-02-08 [fee67b67](https://github.com/silverstripe/developer-docs/commit/fee67b6775c2476d20b78714acb8f5be4f87e2ca) Add new query trace comment to changelog (#404) (Guy Sartorelli) + - 2024-02-02 [b8012e86](https://github.com/silverstripe/developer-docs/commit/b8012e86993b31abb37425bbddcea54c19cf5962) Document using symfony/validator (#454) (Guy Sartorelli) + - 2024-02-02 [e5f5434b](https://github.com/silverstripe/developer-docs/commit/e5f5434bc708a1fa43a7a8bf82393e2ad159f2a8) Update syntax for callout blocks (#455) (Guy Sartorelli) + - 2024-02-01 [e77dd474](https://github.com/silverstripe/developer-docs/commit/e77dd474f1f7f0f4b1fdd3e3b0335357e1e508de) Update syntax for callout blocks (#452) (Guy Sartorelli) + - 2024-02-01 [c47892db](https://github.com/silverstripe/developer-docs/commit/c47892db13f880561b6f205a28331ceeec286163) Update syntax for callout blocks (#449) (Guy Sartorelli) + - 2024-01-30 [d9735932](https://github.com/silverstripe/developer-docs/commit/d973593293b56697bc43a22fc5e5a06b2bc9b3cb) Add UrlField (Steve Boyd) + - 2024-01-29 [f5a095af](https://github.com/silverstripe/developer-docs/commit/f5a095af472c7a07620f27505062e1d76b28d227) CMS JSON API's (Steve Boyd) + - 2024-01-29 [9f5ea80e](https://github.com/silverstripe/developer-docs/commit/9f5ea80e5582bbe7d648873f10eabea74cf956f0) Document PHPDoc as a PHP coding standard (#448) (Guy Sartorelli) + - 2024-01-25 [3136033f](https://github.com/silverstripe/developer-docs/commit/3136033fb9920698fd7048fd050e0ce0131f1f57) Add description for type/other label and clarify affects labels (Steve Boyd) + - 2024-01-18 [8ec4dfd6](https://github.com/silverstripe/developer-docs/commit/8ec4dfd616e83d50f69dec7e2a7a06f7b576d6f4) fix minor typo on class name in code sample (Ravindu) + - 2024-01-18 [04437708](https://github.com/silverstripe/developer-docs/commit/044377087e92cb44c22fee44fee6eb168346c5c9) Document making variants with different file extensions (Guy Sartorelli) + - 2024-01-17 [65b1ab1c](https://github.com/silverstripe/developer-docs/commit/65b1ab1c13d71173dddb4e9eff2f1025b61c7d6c) Refactor docs about file manipulation into its own page (Guy Sartorelli) + - 2024-01-17 [81574844](https://github.com/silverstripe/developer-docs/commit/815748443feb91317339e85b01bb95d0863d4b51) Document deprecated API (#440) (Guy Sartorelli) + - 2024-01-14 [9fffd6d8](https://github.com/silverstripe/developer-docs/commit/9fffd6d865bff22cad60b3191f5c5fe85e13fa72) Document added generic types (Guy Sartorelli) + - 2024-01-08 [980c4b95](https://github.com/silverstripe/developer-docs/commit/980c4b95e8367e5ab8095f6e774637ca805cb180) Document new redirector 404 in changelog (#437) (Guy Sartorelli) + - 2024-01-08 [3ad9dce5](https://github.com/silverstripe/developer-docs/commit/3ad9dce5af4747ef5588c76097e90ad4d411dc27) Document new config for splitting summary sentences (#428) (Guy Sartorelli) + - 2024-01-08 [c3f61e59](https://github.com/silverstripe/developer-docs/commit/c3f61e595c33b0822c518a5052fa7887f68145a6) Document changes to asset admin file size config (#430) (Guy Sartorelli) + - 2024-01-08 [d01a1eb4](https://github.com/silverstripe/developer-docs/commit/d01a1eb440a4841f379a02bb30c4440a646c6ba7) Fix spelling issue (#436) (Sabina Talipova) + - 2024-01-07 [52c71d71](https://github.com/silverstripe/developer-docs/commit/52c71d717c81799f9bb73697332d8bc22fc89186) `Update changelog for .brf support` (Ed Wilde) + - 2023-12-19 [1d517716](https://github.com/silverstripe/developer-docs/commit/1d517716ff78f317ea670495af1037538ee5fb7f) Auto scaffolding has_one relations (Steve Boyd) + - 2023-12-18 [a0054052](https://github.com/silverstripe/developer-docs/commit/a0054052de182fe195de894eec7cd1b7f867b939) Document lazy loading (Guy Sartorelli) + - 2023-12-14 [ea47bc59](https://github.com/silverstripe/developer-docs/commit/ea47bc5971447a451badb86d9b35bde77ab24d91) Document another exception to catch when dealing with email (#421) (Guy Sartorelli) + - 2023-12-14 [e1cc2c28](https://github.com/silverstripe/developer-docs/commit/e1cc2c28dbba5aceb6ab7c4a9d63bb9cc7bc28a6) Add SearchableDropdownField to 5.2.0 changelog (Steve Boyd) + - 2023-12-12 [e2c2ff19](https://github.com/silverstripe/developer-docs/commit/e2c2ff19c73a3af676a8dce57856e32f3d60618e) Update supported PHP version for CMS 5.2 (Sabina Talipova) + - 2023-12-11 [fd9af106](https://github.com/silverstripe/developer-docs/commit/fd9af106dc54690c388b4ff0c1a077dd0b5f6ce3) Document multi-reciprocal has_one relations (#417) (Guy Sartorelli) + - 2023-12-11 [137bdaa0](https://github.com/silverstripe/developer-docs/commit/137bdaa0a79253966caf2c46e7fd17c3e456e28e) Update changelog for security patches (Guy Sartorelli) + - 2023-12-10 [3657480d](https://github.com/silverstripe/developer-docs/commit/3657480d00064ced7eb47dd9c240687dfd78e775) Document gridfield with arbitrary data (Guy Sartorelli) + - 2023-12-10 [78e53226](https://github.com/silverstripe/developer-docs/commit/78e5322660f63c7096baaa9e96017163d9aa0daa) Nested RequestHandlers (Steve Boyd) + - 2023-11-29 [1a514d10](https://github.com/silverstripe/developer-docs/commit/1a514d1070a1303b6135a5d8dcf43a5aa617cce7) Document new staticpublishqueue configuration (#413) (Guy Sartorelli) + - 2023-11-27 [7aaf5358](https://github.com/silverstripe/developer-docs/commit/7aaf5358c96a8293a3f83f661d229ed9382edc0b) Document using GridField with arbitrary data (Guy Sartorelli) + - 2023-11-26 [2dcd339c](https://github.com/silverstripe/developer-docs/commit/2dcd339c73ab86b9fa0eed3d57f4709e8549d3da) Update coding conventions (Steve Boyd) + - 2023-11-26 [0786b201](https://github.com/silverstripe/developer-docs/commit/0786b2014bafc57f679432bd77440ae1bd7a8873) Add SortPlugin to the docs (Sabina Talipova) + - 2023-11-23 [554e4f0c](https://github.com/silverstripe/developer-docs/commit/554e4f0c4fa87154e51b27c859a63e62c893d13c) Include method signatures in public API definition (Guy Sartorelli) + - 2023-11-22 [51cba6cc](https://github.com/silverstripe/developer-docs/commit/51cba6cc5474e33b41154ca047791fc668ce9060) LogicException when no react component (Steve Boyd) + - 2023-11-14 [d9893215](https://github.com/silverstripe/developer-docs/commit/d989321526f521d40ee567658b67548ef2325ea6) Document new dev admin permissions (#399) (Guy Sartorelli) + - 2023-11-07 [6f0861b0](https://github.com/silverstripe/developer-docs/commit/6f0861b0117147c7912ac6ebf9aa3e663c2539cb) Select all and deselect all files (Steve Boyd) + - 2023-11-06 [3b59d4e2](https://github.com/silverstripe/developer-docs/commit/3b59d4e23b28da107f96a98523e0f54f8b6ef113) Deprecated $having parameter (Steve Boyd) + - 2023-11-02 [adb81fb1](https://github.com/silverstripe/developer-docs/commit/adb81fb19bd5b0387b7ebbfe460e5371d349e896) prefix (Steve Boyd) + - 2023-11-02 [5b23e3e7](https://github.com/silverstripe/developer-docs/commit/5b23e3e72c3552a00a10527c33e514bf3a5b0cb3) Remove references to old Addons website (#389) (Maxime Rainville) + - 2023-11-02 [7c7ed947](https://github.com/silverstripe/developer-docs/commit/7c7ed9470c56d7a9c8df49b8a62a13040062da06) Document new community roles (Guy Sartorelli) + - 2023-11-02 [c04c2e03](https://github.com/silverstripe/developer-docs/commit/c04c2e039dfbef58416baa01406c3a7b8eb2fe05) Document new hide_pagetypes config (Guy Sartorelli) + - 2023-10-25 [951c9c81](https://github.com/silverstripe/developer-docs/commit/951c9c817efc6fbebeddcefe84186070cc64e41a) Update 01_Code.md (Andrew Paxley) + - 2023-10-25 [f708c403](https://github.com/silverstripe/developer-docs/commit/f708c40355752dc64c998f125f38700990e2252f) Restructure the contributing docs (#385) (Guy Sartorelli) + - 2023-10-24 [3dcdc188](https://github.com/silverstripe/developer-docs/commit/3dcdc18866eeba26b453a0c252999b92baf12e5e) Update maintainer guidelines (#383) (Guy Sartorelli) + - 2023-10-24 [8566c1f0](https://github.com/silverstripe/developer-docs/commit/8566c1f040e86e9777291717c554d04ed902c316) Update contributing code docs (#379) (Guy Sartorelli) + - 2023-10-24 [caf0c452](https://github.com/silverstripe/developer-docs/commit/caf0c452e83f6ccd7c9bf236df04be31824e72c5) `Specify what makes a "core" module different (#384)` (Guy Sartorelli) + - 2023-10-24 [94aff599](https://github.com/silverstripe/developer-docs/commit/94aff5999f00c58a78ec2161b016d70564b727bb) Update triage resources (#382) (Guy Sartorelli) + - 2023-10-24 [a6d4f746](https://github.com/silverstripe/developer-docs/commit/a6d4f7465a2a4ec73eb8f0f1bfa0e74c2c395e14) Update documentation about documenation (#380) (Guy Sartorelli) + - 2023-10-24 [4bdfce04](https://github.com/silverstripe/developer-docs/commit/4bdfce04189842c99fce835703800a3165748de9) Update issues/bugs page (#378) (Guy Sartorelli) + - 2023-10-24 [71785917](https://github.com/silverstripe/developer-docs/commit/717859176a0b8b1826261ce82b5089909fa053c0) Update translation doc (#381) (Guy Sartorelli) + - 2023-10-19 [4e669f12](https://github.com/silverstripe/developer-docs/commit/4e669f12c5fcd6cc88e54f31f8a11accc03f70dd) Create new users with random passwords (Steve Boyd) + - 2023-10-17 [36f9313a](https://github.com/silverstripe/developer-docs/commit/36f9313aed059a83d2b8d386b2b26a5006b304d9) Update eagerloading docs to explicitly say no relation filter (#376) (Guy Sartorelli) + - 2023-10-17 [a9966929](https://github.com/silverstripe/developer-docs/commit/a99669290e6fb2a4c131c4ed7d94c8eed3771788) Mention that SS_TRUSTED_PROXY_IPS supports subnets (Johannes Hammersen) + - 2023-10-02 [c6525f22](https://github.com/silverstripe/developer-docs/commit/c6525f22b95158ebaee3b57ff9df6f9be23a9cf8) Document ORM changes for CMS 5.2 (#351) (Guy Sartorelli) + - 2023-09-25 [ce291746](https://github.com/silverstripe/developer-docs/commit/ce2917464f19de9a856cd1295146c1c90840e1f2) add errorpage allowed_error_codes to 5.2.0 changelog (Andrew Paxley) + - 2023-09-19 [2177d6a9](https://github.com/silverstripe/developer-docs/commit/2177d6a960cd26f0ba03b30ac2d67222e3cbee98) Document deprecation of old password encryptors (#348) (Guy Sartorelli) + +- silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-rc1) + - 2024-02-25 [d820d0b](https://github.com/silverstripe/silverstripe-linkfield/commit/d820d0b98a04656b9bfb205c8c231f7c08d4b50e) Fix docs links in readme (Guy Sartorelli) + - 2024-02-20 [7c11469](https://github.com/silverstripe/silverstripe-linkfield/commit/7c114696b6faf41ab2982892f4db8ada894c52b7) Link field User manual (Sabina Talipova) + - 2024-02-18 [a79f97d](https://github.com/silverstripe/silverstripe-linkfield/commit/a79f97d680ec4bb425579ff768c60f3a76d20ef2) Provide proper developer documentation (#224) (Guy Sartorelli) + - 2024-02-13 [2b0eef1](https://github.com/silverstripe/silverstripe-linkfield/commit/2b0eef18e79a20c14c02ec8116797b2069104f51) Automatic publishing of linked pages and files (Steve Boyd) + - 2024-02-12 [c5f91c4](https://github.com/silverstripe/silverstripe-linkfield/commit/c5f91c4ae92378a59f4f09be2c68f74d873490e1) Update PHPDocs (Guy Sartorelli) + - 2023-12-05 [22fcdcc](https://github.com/silverstripe/silverstripe-linkfield/commit/22fcdcc1415e09e775e47fe081f1921e4ff83ac2) Update PHPDoc for link models (#136) (Guy Sartorelli) + - 2023-12-05 [5b86669](https://github.com/silverstripe/silverstripe-linkfield/commit/5b866698633c83d0c1bb533f126a53eb20910f89) Update sentence in README (Steve Boyd) + - 2023-11-29 [cc21f8a](https://github.com/silverstripe/silverstripe-linkfield/commit/cc21f8acc3fe3b0ba04b6585763372596aca1065) Update README (Guy Sartorelli) + +### Translations {#changelog-translations} + +- silverstripe/assets (2.1.0 -> 2.2.0-rc1) + - 2024-02-08 [577d3f5](https://github.com/silverstripe/silverstripe-assets/commit/577d3f5eaf2c2613d5fba90073039dd13cdd5747) Update translations (#591) (Guy Sartorelli) + - 2024-02-07 [65c5d2a](https://github.com/silverstripe/silverstripe-assets/commit/65c5d2a88975723ca145006587dff8d343174138) Update translations (#590) (Guy Sartorelli) + +- silverstripe/framework (5.1.0 -> 5.2.0-rc1) + - 2024-02-08 [c40602957](https://github.com/silverstripe/silverstripe-framework/commit/c40602957310e265355dfc3b5b6fc1d0ba905832) Update translations (#11130) (Guy Sartorelli) + - 2024-02-07 [f952183cd](https://github.com/silverstripe/silverstripe-framework/commit/f952183cdf6c066d1e1d3cd1d006752a21f258e5) Update translations (#11126) (Guy Sartorelli) + - 2024-02-06 [26273bf37](https://github.com/silverstripe/silverstripe-framework/commit/26273bf3719dbcf7c1f57f893acddee76c551d25) Update translations (#11125) (Guy Sartorelli) + - 2023-11-06 [3c98264f8](https://github.com/silverstripe/silverstripe-framework/commit/3c98264f82f539680de2c2a48d6b2a16a4599bc9) Update translations (Steve Boyd) + - 2023-11-03 [5ff6811b0](https://github.com/silverstripe/silverstripe-framework/commit/5ff6811b007bc5a95786324e87db60e78fd2cba7) Update translations (Steve Boyd) + +- silverstripe/mimevalidator (3.0.0 -> 3.1.0-rc1) + - 2024-02-07 [7fd4a96](https://github.com/silverstripe/silverstripe-mimevalidator/commit/7fd4a964eac6f696a88a4af0abcc57d7db3e745b) Update translations (#72) (Guy Sartorelli) + +- silverstripe/admin (2.1.0 -> 2.2.0-rc1) + - 2024-03-06 [e2a7f456](https://github.com/silverstripe/silverstripe-admin/commit/e2a7f45605595cbe3be71250b9b92f506a3e4df5) `Add missing js translation strings to src/en.json file` (Peter Schiffer) + - 2024-02-26 [09b51af1](https://github.com/silverstripe/silverstripe-admin/commit/09b51af14ad5610fec89ca75977e0dbdef08853e) `Make Search options string translatable in SearchBox.js` (Peter Schiffer) + - 2024-02-08 [b4f13ed4](https://github.com/silverstripe/silverstripe-admin/commit/b4f13ed47830cfff78732dfa449bb243d7aa208f) Update translations (#1675) (Guy Sartorelli) + - 2024-02-07 [29e978be](https://github.com/silverstripe/silverstripe-admin/commit/29e978be4660147aa82958788053d10af6f05da3) Update translations (#1673) (Guy Sartorelli) + - 2023-11-06 [1c78d8f6](https://github.com/silverstripe/silverstripe-admin/commit/1c78d8f6596f318ca5d75985f80d92c3ee9ae922) Update translations (Steve Boyd) + - 2023-11-05 [9463da40](https://github.com/silverstripe/silverstripe-admin/commit/9463da40a1b2da36e1b6ab07c5183b02eb6ee3b3) Update translations (Steve Boyd) + +- silverstripe/asset-admin (2.1.0 -> 2.2.0-rc1) + - 2024-02-08 [2a4a4a3d](https://github.com/silverstripe/silverstripe-asset-admin/commit/2a4a4a3d5142622c0f8c0135b8460150c7d0c16c) Update translations (#1442) (Guy Sartorelli) + - 2024-02-06 [55c1b3f2](https://github.com/silverstripe/silverstripe-asset-admin/commit/55c1b3f27b8c83ec6c63c328b30f4803f30348e4) Update translations (#1439) (Guy Sartorelli) + - 2023-11-07 [7e9d7cd7](https://github.com/silverstripe/silverstripe-asset-admin/commit/7e9d7cd7b8f203e880e4e4d56351251f49531dc3) Update translations (Steve Boyd) + +- silverstripe/campaign-admin (2.1.0 -> 2.2.0-rc1) + - 2024-02-07 [7d3c679](https://github.com/silverstripe/silverstripe-campaign-admin/commit/7d3c679756b08915e691f073acb60c6913c13c25) Update translations (#294) (Guy Sartorelli) + +- silverstripe/versioned-admin (2.1.0 -> 2.2.0-rc1) + - 2024-02-08 [9f01c01](https://github.com/silverstripe/silverstripe-versioned-admin/commit/9f01c0170d3a0458e93fb19f147cf00ec02b80cb) Update translations (#324) (Guy Sartorelli) + - 2024-02-07 [6e9c8e8](https://github.com/silverstripe/silverstripe-versioned-admin/commit/6e9c8e8dabb61897ee820a7950046fcb391d4cd9) Update translations (#322) (Guy Sartorelli) + +- silverstripe/cms (5.1.0 -> 5.2.0-rc1) + - 2024-02-08 [ac348693](https://github.com/silverstripe/silverstripe-cms/commit/ac3486938f90d37347093f41720de92883c98f95) Update translations (#2921) (Guy Sartorelli) + - 2024-02-07 [9dfc5dea](https://github.com/silverstripe/silverstripe-cms/commit/9dfc5dea2eb4923179b5ba7d2b39f8db7fd1e32d) Update translations (#2920) (Guy Sartorelli) + - 2023-11-06 [a51effa2](https://github.com/silverstripe/silverstripe-cms/commit/a51effa2acdcb3eed04949900ea987a0ee40076c) Update translations (Steve Boyd) + +- silverstripe/errorpage (2.1.0 -> 2.2.0-rc1) + - 2024-02-08 [14ce510](https://github.com/silverstripe/silverstripe-errorpage/commit/14ce5105559c359289a999b1b0f4826948e31c6b) Update translations (#101) (Guy Sartorelli) + - 2024-02-06 [df9b24b](https://github.com/silverstripe/silverstripe-errorpage/commit/df9b24beafc25e53fa4e67e6d341d514de1a53f9) Update translations (#98) (Guy Sartorelli) + - 2023-11-06 [8660060](https://github.com/silverstripe/silverstripe-errorpage/commit/8660060a92748167572e7e4667c6919ffaed1c8a) Update translations (Steve Boyd) + +- silverstripe/reports (5.1.0 -> 5.2.0-rc1) + - 2024-02-08 [c9c6c3ff](https://github.com/silverstripe/silverstripe-reports/commit/c9c6c3ff1e579e7b800c644565451b4578a3db39) Update translations (#176) (Guy Sartorelli) + - 2024-02-07 [f5b5daa7](https://github.com/silverstripe/silverstripe-reports/commit/f5b5daa71199a93bd301746de076283f3ba29563) Update translations (#175) (Guy Sartorelli) + +- silverstripe/siteconfig (5.1.0 -> 5.2.0-rc1) + - 2024-02-08 [e3c7621e](https://github.com/silverstripe/silverstripe-siteconfig/commit/e3c7621e710933e8e2adc5e473586c319b87d22c) Update translations (#156) (Guy Sartorelli) + - 2024-02-07 [3a46ee94](https://github.com/silverstripe/silverstripe-siteconfig/commit/3a46ee94c52fd460df92adc4c516ea0fd4cb5a18) Update translations (#155) (Guy Sartorelli) + - 2023-11-06 [d3073a87](https://github.com/silverstripe/silverstripe-siteconfig/commit/d3073a874e4ead79e82a52cbac6d71bedfdac075) Update translations (Steve Boyd) + - 2023-11-03 [5842dac1](https://github.com/silverstripe/silverstripe-siteconfig/commit/5842dac1bdc4dfc802c392f93a1710967fe4e8af) Update translations (Steve Boyd) + +- silverstripe/versioned (2.1.0 -> 2.2.0-rc1) + - 2024-02-08 [6871553](https://github.com/silverstripe/silverstripe-versioned/commit/6871553f5299b2caca2cbc5df3c07470c5a37728) Update translations (#437) (Guy Sartorelli) + - 2024-02-07 [a323d94](https://github.com/silverstripe/silverstripe-versioned/commit/a323d947f273a52f37fba3ed3489e4e68619b2b9) Update translations (#435) (Guy Sartorelli) + - 2024-02-06 [da1ba52](https://github.com/silverstripe/silverstripe-versioned/commit/da1ba526777e3de4836569b99b3b167db7cdfe36) Update translations (#434) (Guy Sartorelli) + +- silverstripe/session-manager (2.1.0 -> 2.2.0-rc1) + - 2024-02-08 [cc59d9c](https://github.com/silverstripe/silverstripe-session-manager/commit/cc59d9ca1215feb636996c300923c2076d99bf65) Update translations (#182) (Guy Sartorelli) + - 2024-02-07 [3e98627](https://github.com/silverstripe/silverstripe-session-manager/commit/3e986279f32ce9a5016111b117813d9678d6c977) Update translations (#181) (Guy Sartorelli) + +- silverstripe/login-forms (5.1.0 -> 5.2.0-rc1) + - 2024-02-08 [f9738e1](https://github.com/silverstripe/silverstripe-login-forms/commit/f9738e17fd734436d13d636c2ed7ae5966c15409) Update translations (#166) (Guy Sartorelli) + - 2024-02-07 [86f6214](https://github.com/silverstripe/silverstripe-login-forms/commit/86f6214512fbe056778689c30cbe1c322ea11b45) Update translations (#165) (Guy Sartorelli) + +- silverstripe/documentconverter (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [1bd09d5](https://github.com/silverstripe/silverstripe-documentconverter/commit/1bd09d508780951692598117e8ba31dca91bb204) Update translations (#69) (Guy Sartorelli) + +- silverstripe/iframe (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [a8243f3](https://github.com/silverstripe/silverstripe-iframe/commit/a8243f3bcb823a2d1d15d14c3c670b63b0dd2384) Update translations (#80) (Guy Sartorelli) + +- silverstripe/taxonomy (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [241c257](https://github.com/silverstripe/silverstripe-taxonomy/commit/241c2577d59e58a7d7c16652aeea6c20a2006e9c) Update translations (#105) (Guy Sartorelli) + - 2023-11-06 [2711d00](https://github.com/silverstripe/silverstripe-taxonomy/commit/2711d003740143a53ffc736652071035ac4db903) Update translations (Steve Boyd) + +- silverstripe/blog (4.1.0 -> 4.2.0-rc1) + - 2024-02-07 [95a2808](https://github.com/silverstripe/silverstripe-blog/commit/95a2808c04656f655dd27a0722ad85b85d140b64) Update translations (#742) (Guy Sartorelli) + +- silverstripe/spamprotection (4.1.0 -> 4.2.0-rc1) + - 2024-02-07 [5badc34](https://github.com/silverstripe/silverstripe-spamprotection/commit/5badc345defa7298f35c9ca9912adcbcbb7d3ff0) Update translations (#111) (Guy Sartorelli) + +- silverstripe/contentreview (5.1.0 -> 5.2.0-rc1) + - 2024-02-07 [bb3eec1](https://github.com/silverstripe/silverstripe-contentreview/commit/bb3eec116048a4b2653eb80a7542ca9ccc5b84b5) Update translations (#223) (Guy Sartorelli) + +- silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [5531318](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/5531318c64be3da83815212f243411955dd53ebf) Update translations (#225) (Guy Sartorelli) + +- symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0-rc1) + - 2024-02-07 [e147a4d](https://github.com/symbiote/silverstripe-advancedworkflow/commit/e147a4db5ab54207839b3081642d22e7d9cb8b5e) Update translations (#520) (Guy Sartorelli) + - 2023-11-06 [5efa077](https://github.com/symbiote/silverstripe-advancedworkflow/commit/5efa0771b8f904d911e45eb410cad6a42270d920) Update translations (Steve Boyd) + +- silverstripe/segment-field (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [8e0e850](https://github.com/silverstripe/silverstripe-segment-field/commit/8e0e850cacc6875b11f61426f663268027619226) Update translations (#98) (Guy Sartorelli) + +- silverstripe/userforms (6.1.0 -> 6.2.0-rc1) + - 2024-02-07 [d070e7d](https://github.com/silverstripe/silverstripe-userforms/commit/d070e7dcf93f149aa30489278831e07de016acdf) Update translations (#1265) (Guy Sartorelli) + - 2023-11-06 [b9df907](https://github.com/silverstripe/silverstripe-userforms/commit/b9df907abfb14b4f59fa87abccbb6554313b453f) Update translations (Steve Boyd) + +- silverstripe/externallinks (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [b12e686](https://github.com/silverstripe/silverstripe-externallinks/commit/b12e6868bc4ae8513921aee078e14e5497406ff8) Update translations (#120) (Guy Sartorelli) + +- silverstripe/securityreport (3.0.0 -> 3.1.0-rc1) + - 2024-02-07 [51c745e](https://github.com/silverstripe/silverstripe-securityreport/commit/51c745eb36231481cf1aedd12c2f7a81d477a357) Update translations (#75) (Guy Sartorelli) + +- silverstripe/versionfeed (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [8287278](https://github.com/silverstripe/silverstripe-versionfeed/commit/82872780eb98b12729adabd4a10134e9862c20d3) Update translations (#99) (Guy Sartorelli) + +- dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-rc1) + - 2024-02-07 [e1d6370](https://github.com/silverstripe/silverstripe-elemental/commit/e1d637079dedc0792ba370de3d79da91bc3c2942) Update translations (#1144) (Guy Sartorelli) + +- silverstripe/hybridsessions (3.0.2 -> 3.0.3) + - 2024-02-06 [402c6e4](https://github.com/silverstripe/silverstripe-hybridsessions/commit/402c6e40a7e34cd725af1c0539370328a4e22fcc) Update translations (Guy Sartorelli) + +- silverstripe/registry (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [8209e0d](https://github.com/silverstripe/silverstripe-registry/commit/8209e0de8fb30bc74543e9ce58f501a5b7a052ad) Update translations (#93) (Guy Sartorelli) + +- silverstripe/totp-authenticator (5.1.0 -> 5.2.0-rc1) + - 2024-02-07 [bc196b2](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/bc196b2a5b67822dd7d09a47a145e062c3ba8038) Update translations (#145) (Guy Sartorelli) + +- silverstripe/mfa (5.1.0 -> 5.2.0-rc1) + - 2023-11-07 [9390a7d](https://github.com/silverstripe/silverstripe-mfa/commit/9390a7d560663d4de507f44e40896b94684b714d) Update translations (Steve Boyd) + +- silverstripe/crontask (3.0.2 -> 3.0.3) + - 2024-02-07 [1d2db78](https://github.com/silverstripe/silverstripe-crontask/commit/1d2db788db8445b44016ec0c8bf1a59aadfb1065) Update translations (#86) (Guy Sartorelli) + +- silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [299929e](https://github.com/silverstripe/silverstripe-gridfieldqueuedexport/commit/299929e0147fc49ec4a15634770a86279bcb14a4) Update translations (#98) (Guy Sartorelli) + +- silverstripe/realme (5.2.0 -> 5.3.0-rc1) + - 2023-11-06 [96974a0](https://github.com/silverstripe/silverstripe-realme/commit/96974a0f0c79e6361625933665b3f3016823816b) Update translations (Steve Boyd) + - 2023-11-03 [f420ac8](https://github.com/silverstripe/silverstripe-realme/commit/f420ac8d41caf60f6316386798946cdd91d87932) Update translations (Steve Boyd) + +- silverstripe/webauthn-authenticator (5.1.0 -> 5.2.0-rc1) + - 2023-11-07 [81e45fe](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/81e45fe237ef8372e07f9e2f08890def9c95df66) Update translations (Steve Boyd) + +- silverstripe/subsites (3.1.0 -> 3.2.0-rc1) + - 2024-02-07 [d66e723](https://github.com/silverstripe/silverstripe-subsites/commit/d66e723a511ebc656efc07dcb86f5c5743dda62e) Update translations (#557) (Guy Sartorelli) + - 2023-11-06 [dd3073f](https://github.com/silverstripe/silverstripe-subsites/commit/dd3073f41aa0d3d724ade8c3630ebd14eaefdad3) Update translations (Steve Boyd) + +- silverstripe/lumberjack (3.0.2 -> 3.1.0-rc1) + - 2024-02-07 [cae40f4](https://github.com/silverstripe/silverstripe-lumberjack/commit/cae40f4367b0dcceb776abb9c2644e0dc7821629) Update translations (#140) (Guy Sartorelli) + +- dnadesign/silverstripe-elemental-userforms (4.1.0 -> 4.1.1) + - 2024-02-07 [ce60338](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/ce603388464d93c21010ddde3c849363ccc133a9) Update translations (#88) (Guy Sartorelli) + +- symbiote/silverstripe-gridfieldextensions (4.0.3 -> 4.0.5) + - 2024-02-07 [c84d8af](https://github.com/symbiote/silverstripe-gridfieldextensions/commit/c84d8afa7a082b314609eb23f57483c54cb1c813) Update translations (#381) (Guy Sartorelli) + +- symbiote/silverstripe-queuedjobs (5.0.2 -> 5.1.0-rc1) + - 2024-02-07 [892dbba](https://github.com/symbiote/silverstripe-queuedjobs/commit/892dbba99626cc2a9e4ecec6efd03600008b7aca) Update translations (#419) (Guy Sartorelli) + +### Other changes {#changelog-other-changes} + +- silverstripe/assets (2.1.0 -> 2.2.0-rc1) + - 2023-10-25 [63bd612](https://github.com/silverstripe/silverstripe-assets/commit/63bd6126b228452dd692d7a41b6e841e1c990d92) Add support for braille format files (#574) (Ed Wilde) + +- silverstripe/framework (5.1.0 -> 5.2.0-rc1) + - 2024-03-19 [6ede0316b](https://github.com/silverstripe/silverstripe-framework/commit/6ede0316bfc062df204d950097588c86a300280c) `Revert "Use field editorconfig when sanitising content" (#11180)` (Guy Sartorelli) + - 2024-03-04 [eb4ef623a](https://github.com/silverstripe/silverstripe-framework/commit/eb4ef623abeeda8b3b4941261dd06ec6a88df826) check for empty salt (Thomas Portelange) + - 2024-02-27 [59177dd31](https://github.com/silverstripe/silverstripe-framework/commit/59177dd3157f5b0894d5e7c07244a76a327c7c40) Delete tests/php/Core/Manifest/fixtures/VersionProviderTest directory (Thomas Portelange) + - 2024-02-27 [2921d68a5](https://github.com/silverstripe/silverstripe-framework/commit/2921d68a57ed718a5d0633b90c186d24b90c98dc) Update composer.json (Thomas Portelange) + - 2024-02-26 [a06ce0493](https://github.com/silverstripe/silverstripe-framework/commit/a06ce0493a5507bd78d35805f114b57927c14223) use VersionParser instead of comparator (Thomas Portelange) + - 2024-02-26 [80e197fe4](https://github.com/silverstripe/silverstripe-framework/commit/80e197fe4ffffc12136bb1dad49944971bddfe76) make error message more readable (Thomas Portelange) + - 2024-02-26 [a1d1e977c](https://github.com/silverstripe/silverstripe-framework/commit/a1d1e977c5912bcc5ed4a9a46901c523da1e7bbe) use composer/semver (Thomas Portelange) + - 2024-02-26 [071333f77](https://github.com/silverstripe/silverstripe-framework/commit/071333f774419f8f4549e9a5a027ead0796646c9) add composer/semver (Thomas Portelange) + - 2024-02-26 [68b79e11e](https://github.com/silverstripe/silverstripe-framework/commit/68b79e11ee6cca43637f6746c2c3ea64ee3af0a2) missing import (Thomas Portelange) + - 2024-02-26 [269692202](https://github.com/silverstripe/silverstripe-framework/commit/2696922023297943b1a5a9189490aa9a7f3a1243) update return type (Thomas Portelange) + - 2024-02-26 [1cf3dde9f](https://github.com/silverstripe/silverstripe-framework/commit/1cf3dde9f15623d61399814ee90360d225691b53) Update src/Core/Manifest/VersionProvider.php (Thomas Portelange) + - 2024-02-26 [2b64e98af](https://github.com/silverstripe/silverstripe-framework/commit/2b64e98afc6e2368cce156e7c55dda7accfc8f00) Update VersionProviderTest.php (Thomas Portelange) + - 2024-02-26 [b53148c03](https://github.com/silverstripe/silverstripe-framework/commit/b53148c034394a37b7c16ce34a340a83da3f4afe) add deprecation, remove class_exists (Thomas Portelange) + - 2024-02-26 [2600b2661](https://github.com/silverstripe/silverstripe-framework/commit/2600b266172a51215963ebbb0dc640d77f6ded95) add composer-runtime-api (Thomas Portelange) + - 2024-02-26 [e649310f7](https://github.com/silverstripe/silverstripe-framework/commit/e649310f7bb96f1970156d07a31d990dde317e0f) Update src/Core/Manifest/VersionProvider.php (Thomas Portelange) + - 2024-02-26 [a2486c085](https://github.com/silverstripe/silverstripe-framework/commit/a2486c085948c65545670fb903c99b92636eed7e) Update src/Core/Manifest/VersionProvider.php (Thomas Portelange) + - 2024-02-26 [a19671950](https://github.com/silverstripe/silverstripe-framework/commit/a196719502e96019c5a0cf00cad9c33ea0c0fed7) Update src/Core/Manifest/VersionProvider.php (Thomas Portelange) + - 2024-02-23 [bc0912718](https://github.com/silverstripe/silverstripe-framework/commit/bc091271826aa7be800d961c4739bc2482ff7a00) use composer runtime api (Thomas Portelange) + - 2024-02-08 [e0107e020](https://github.com/silverstripe/silverstripe-framework/commit/e0107e0202914edd25629443a044b6883c18bb83) Update src/ORM/DataQuery.php (Thomas Portelange) + - 2024-02-08 [2ac68a55a](https://github.com/silverstripe/silverstripe-framework/commit/2ac68a55a4a806a64459b744f76a49e37367ee0d) rename var (Thomas Portelange) + - 2023-12-12 [b6c646ffb](https://github.com/silverstripe/silverstripe-framework/commit/b6c646ffbea586a9ffaa15e6d8fb27e5e14b683a) `Also remove the unused $last_idx assignment` (Ed Wilde) + - 2023-12-12 [81541db89](https://github.com/silverstripe/silverstripe-framework/commit/81541db892b17db0caf9b349bd807ef9efdb117d) `Remove unused line in findTab()` (Ed Wilde) + - 2023-11-09 [b9da08a30](https://github.com/silverstripe/silverstripe-framework/commit/b9da08a3017128271ea25675a9de12c0147a79c8) Update task-not-found messaging (Andrew Paxley) + - 2023-11-09 [c77a77d58](https://github.com/silverstripe/silverstripe-framework/commit/c77a77d584bff98d9bc335d61ab3f46372954a90) Flip canView logic and combine into taskEnabled check (Andrew Paxley) + - 2023-10-15 [e5eb98cc3](https://github.com/silverstripe/silverstripe-framework/commit/e5eb98cc3491785cbae17bb53be0be05fd5a6f42) Use field editorconfig when sanitising content (Bernie Hamlin) + - 2023-10-11 [af536a88d](https://github.com/silverstripe/silverstripe-framework/commit/af536a88d22a450604b090810bf8800f39aec66e) Add support for braille format files (Ed Wilde) + +- silverstripe/mimevalidator (3.0.0 -> 3.1.0-rc1) + - 2023-10-11 [25bfefc](https://github.com/silverstripe/silverstripe-mimevalidator/commit/25bfefc1459e81015c623619354a60db2b1debae) Add support for braille format files (Ed Wilde) + +- silverstripe/admin (2.1.0 -> 2.2.0-rc1) + - 2024-02-15 [6f468685](https://github.com/silverstripe/silverstripe-admin/commit/6f468685ebb14383dafb0607c589ff201c7035f4) rename var (Thomas Portelange) + - 2024-02-14 [6bcccbbf](https://github.com/silverstripe/silverstripe-admin/commit/6bcccbbf7f0eaedcd0ca1d428a2a46a369c1d66d) use innerText, rename (Thomas Portelange) + - 2024-02-07 [4c0247cd](https://github.com/silverstripe/silverstripe-admin/commit/4c0247cd9975559a0ad416245f3ba01a439bcf32) `Revert "TLN Update translations (#1673)"` (Steve Boyd) + - 2023-10-27 [3c969733](https://github.com/silverstripe/silverstripe-admin/commit/3c969733bb3154a09e45f1905a6c8fe6bf12ba87) Define a minimum width for the logo (Ed Wilde) + - 2023-10-27 [050b8b93](https://github.com/silverstripe/silverstripe-admin/commit/050b8b93c89c40b1d5a3dc5a58b585bb961bf239) Add the new CMS logo locally (Ed Wilde) + - 2023-10-12 [7cda7c7e](https://github.com/silverstripe/silverstripe-admin/commit/7cda7c7e729c4c07658cd9bad90ea2f6fa5481b8) Update Storybook logo to the 5.1 OSS logo (Ed Wilde) + +- silverstripe/asset-admin (2.1.0 -> 2.2.0-rc1) + - 2023-12-12 [4fe280ed](https://github.com/silverstripe/silverstripe-asset-admin/commit/4fe280ed41dc452cac8bf8c82c170f7b00949dc7) Update sort param (Vivienne Tubbs) + +- silverstripe/cms (5.1.0 -> 5.2.0-rc1) + - 2023-01-11 [79acadc0](https://github.com/silverstripe/silverstripe-cms/commit/79acadc0bba1b84c1d4d9f85d8a0281e3c10fb43) PATCH: remove jQuery reference (Nicolaas / Sunny Side Up) + - 2023-01-09 [8d403a1d](https://github.com/silverstripe/silverstripe-cms/commit/8d403a1d83fc7cf30c4ffb4f28481004f9b63fe1) PATCH: fixing jquery link to thirdparty/jquery-query/jquery.query.js (Nicolaas / Sunny Side Up) + +- silverstripe/versioned (2.1.0 -> 2.2.0-rc1) + - 2023-10-30 [7eddb6b](https://github.com/silverstripe/silverstripe-versioned/commit/7eddb6b944b4c0f76a5deb4090f35aacbde88803) Apply suggestions from code review (Mojmir Fendek) + - 2023-10-19 [f21edce](https://github.com/silverstripe/silverstripe-versioned/commit/f21edce874766c6a195f4fb3ed6bc727dd182504) PR fixes. (Mojmir Fendek) + - 2023-10-19 [5ed82fe](https://github.com/silverstripe/silverstripe-versioned/commit/5ed82fe06eb104846762b88e8b38f4e1c832dd18) PR fixes. (Mojmir Fendek) + - 2023-10-19 [76568ac](https://github.com/silverstripe/silverstripe-versioned/commit/76568ac021abd442aa7ad53eff7dfbb7e468ee29) PR fixes. (Mojmir Fendek) + - 2023-10-18 [d6490ce](https://github.com/silverstripe/silverstripe-versioned/commit/d6490cef97a6d3efab6fa03e712a06739d8405ae) PR fixes. (Mojmir Fendek) + - 2023-10-16 [d2efe5a](https://github.com/silverstripe/silverstripe-versioned/commit/d2efe5acba12462d816ee6db4ca28f6c9b2ca06d) PR fixes. (Mojmir Fendek) + - 2021-04-06 [97d1ac6](https://github.com/silverstripe/silverstripe-versioned/commit/97d1ac66fadaf93613e48d8c46919723c7893604) PR fixes. (Mojmir Fendek) + - 2021-04-06 [dd2674f](https://github.com/silverstripe/silverstripe-versioned/commit/dd2674fa064dae94ec0bf4077f4886234d55a31a) Update src/RecursiveStagesService.php (Mojmir Fendek) + +- silverstripe/graphql (5.1.0 -> 5.2.0-rc1) + - 2023-10-19 [addf529](https://github.com/silverstripe/silverstripe-graphql/commit/addf529b5c26affd35a787529fc776d04d3dc15c) add canInit method and CAN_DEV_GRAPHQL permissions (Andrew Paxley) + +- silverstripe/login-forms (5.1.0 -> 5.2.0-rc1) + - 2023-09-11 [b0d6c3e](https://github.com/silverstripe/silverstripe-login-forms/commit/b0d6c3ed805c8e3ca2892f11a8dcbed4f617db9a) Small typo in README.md (Vinnie) + +- silverstripe/tagfield (3.1.0 -> 3.2.0-rc1) + - 2023-09-28 [9257956](https://github.com/silverstripe/silverstripe-tagfield/commit/92579562553441e2a203ff00156441848a10a633) fixed reference issue now that we've changed ref from createRef() (josephlewisnz) + - 2023-09-28 [f7af10a](https://github.com/silverstripe/silverstripe-tagfield/commit/f7af10a8372096c48e5ddfe10446ef33f713f125) build (josephlewisnz) + +- silverstripe/blog (4.1.0 -> 4.2.0-rc1) + - 2023-12-18 [b2f0d12](https://github.com/silverstripe/silverstripe-blog/commit/b2f0d12dd6199f09c3cf021979fa937a1974d1dc) Remove icons from gridfield add button (Mohamed Alsharaf) + - 2023-11-20 [d6375c5](https://github.com/silverstripe/silverstripe-blog/commit/d6375c5048c0bccefa8afe3afca95814a01f9bd7) addition to #685 also, respect mb in controller (Lukas Erni) + - 2023-11-16 [926ce56](https://github.com/silverstripe/silverstripe-blog/commit/926ce562f164c63eb01ed91b1e0aee45f8e3779c) remove plus icon for consistency (Lukas Erni) + +- silverstripe/spamprotection (4.1.0 -> 4.2.0-rc1) + - 2023-09-11 [2210891](https://github.com/silverstripe/silverstripe-spamprotection/commit/221089136f82f778f4f2281630cbe0a28618a402) `Revert "fix: if no spam protector set, fail sliently"` (Guy Sartorelli) + +- colymba/gridfield-bulk-editing-tools (4.0.0 -> 4.0.2) + - 2023-06-01 [3006076](https://github.com/colymba/GridFieldBulkEditingTools/commit/3006076c82f90ec7ae4779daa0263230f3702814) SS5 Fix: Replace json2array with json_decode (James Cocker) + +- silverstripe/sharedraftcontent (3.1.0 -> 3.2.0-rc1) + - 2023-10-16 [58a795e](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/58a795e50a940c29bbdd8761ce50c010830f79ec) Fixes internal infinite recursion on Nginx/PHP-FPM environments (Nathan J. Brauer) + +- silverstripe/userforms (6.1.0 -> 6.2.0-rc1) + - 2023-11-12 [26a4816](https://github.com/silverstripe/silverstripe-userforms/commit/26a48162ff0e5c9fccb3d764bd449ec2e8309429) Add extension hook to control file attachments per recipient and field (Michal Kleiner) + +- dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0-rc1) + - 2023-09-21 [eeb4546](https://github.com/silverstripe/silverstripe-elemental/commit/eeb45461b62ca697552220e56bde0d303a88f114) Revert Github specific markdown to maintain portability (Ed Wilde) + +- silverstripe/developer-docs (5.1.0 -> 5.2.0-rc1) + - 2023-12-14 [844f4755](https://github.com/silverstripe/developer-docs/commit/844f4755751319ff2d584285f08ea245c41643ad) Update 05_Simple_Contact_Form.md (erangaddd) + - 2023-12-06 [c516a99b](https://github.com/silverstripe/developer-docs/commit/c516a99bb67fbc15ebb0ad1337ccd1c293de1c33) Update 04_Upgrading_project.md (Tim) + - 2023-11-28 [deacfc1a](https://github.com/silverstripe/developer-docs/commit/deacfc1a179329cf72cce99707a81d63b58222ec) Fixed: link to formatting/modifying/casting variables (Patrick Côté) + - 2023-11-02 [0033a971](https://github.com/silverstripe/developer-docs/commit/0033a9715e5815e37d10dc4009e1a32eb2096ec0) Update a example code comment (Nate Devereux) + - 2023-10-19 [3e546176](https://github.com/silverstripe/developer-docs/commit/3e546176f9554657030d4f1268ac096026ebcdde) Apply suggestions from code review (Johannes Hammersen) + +- silverstripe/subsites (3.1.0 -> 3.2.0-rc1) + - 2023-09-06 [e020766](https://github.com/silverstripe/silverstripe-subsites/commit/e02076609543732432aac88aba6564222980fdd6) `Revert "Switch to listing views of subsite-filtered sections"` (Steve Boyd) + - 2022-09-27 [8ba7070](https://github.com/silverstripe/silverstripe-subsites/commit/8ba7070b02b4941520a2afc9d4ebde34c6e4d85e) Switch to listing views of subsite-filtered sections (Michael van Schaik) + +- symbiote/silverstripe-gridfieldextensions (4.0.3 -> 4.0.5) + - 2023-03-07 [1637e78](https://github.com/symbiote/silverstripe-gridfieldextensions/commit/1637e78ea1398217e143002ac85124917f83bf5a) Make link color white. (Robin) + +- tractorcow/silverstripe-fluent (7.0.0 -> 7.1.0-rc1) + - 2024-02-18 [ee8d7d1](https://github.com/tractorcow-farm/silverstripe-fluent/commit/ee8d7d1e4773985f252dd4d35297ad1cfcb27dda) use AsoluteLink method for xml styles to make sure link works with SS5 trailings slash setup, fixes #818 (Florian Thoma) + - 2023-10-17 [cf27342](https://github.com/tractorcow-farm/silverstripe-fluent/commit/cf273429b96c76db6ae454f23f8387cdb52609fe) MSSQL database doesn't allow aliases in GROUP BY (Klemen Dolinšek) + - 2023-04-12 [69a9df5](https://github.com/tractorcow-farm/silverstripe-fluent/commit/69a9df5febb0eeab74ac83a5b55ceb4cc0d69284) skip empty 'where' clauses (mikey-harveycameron) + +- silverstripe/linkfield (3.0.0-beta1 -> 4.0.0-rc1) + - 2023-10-18 [653071d](https://github.com/silverstripe/silverstripe-linkfield/commit/653071d4332bc3882732466d0a1e8f2eab60b259) Fixing typo of $Link.OpenInew to $Link.OpenInNew (Daniel Hurd) + - 2023-08-30 [245cdcc](https://github.com/silverstripe/silverstripe-linkfield/commit/245cdcce725164bd03e52371d1bb4e3d00b76f24) MISC: Docs update. (Mojmir Fendek) + - 2023-07-28 [437a915](https://github.com/silverstripe/silverstripe-linkfield/commit/437a9154bea6d15eb5a17d1bf394b549bff6c9f9) MISC: File link test. (Mojmir Fendek) + - 2022-10-27 [8f1a258](https://github.com/silverstripe/silverstripe-linkfield/commit/8f1a258f7f34a908936262e489cdf4125cf27db7) Add PhoneField. Add migration helpers from Linkable (#48) (Chris Penny) + - 2022-06-29 [636c679](https://github.com/silverstripe/silverstripe-linkfield/commit/636c6792ebf8c266e802814956eb1a8a954f92a7) PHP 8.1: Suppress deprecation notice (Chris Penny) + - 2022-05-13 [c1f42f2](https://github.com/silverstripe/silverstripe-linkfield/commit/c1f42f28efaf91065886c6e4f9dd8a37bc44d2e3) Debug. (Mojmir Fendek) + - 2021-11-16 [1068b78](https://github.com/silverstripe/silverstripe-linkfield/commit/1068b7830187a1fd9eed89a112a55bdd1e4bbd7f) Update namespace. Add table_name config to all models (#39) (Chris Penny) + +