Version 5 supported

5.2.0

Overview

Included module versions
ModuleVersion
bringyourownideas/silverstripe-composer-update-checker4.1.0
bringyourownideas/silverstripe-maintenance3.1.0
colymba/gridfield-bulk-editing-tools4.0.2
cwp/agency-extensions3.2.0
cwp/starter-theme4.1.0
cwp/watea-theme4.1.0
dnadesign/silverstripe-elemental5.2.0
dnadesign/silverstripe-elemental-userforms4.1.1
silverstripe-themes/simple3.3.1
silverstripe/admin2.2.0
silverstripe/asset-admin2.2.0
silverstripe/assets2.2.0
silverstripe/auditor3.1.0
silverstripe/blog4.2.0
silverstripe/campaign-admin2.2.0
silverstripe/cms5.2.0
silverstripe/config2.1.0
silverstripe/contentreview5.2.0
silverstripe/crontask3.0.3
silverstripe/documentconverter3.2.0
silverstripe/dynamodb5.0.1
silverstripe/elemental-bannerblock3.2.0
silverstripe/elemental-fileblock3.1.0
silverstripe/environmentcheck3.0.1
silverstripe/errorpage2.2.0
silverstripe/externallinks3.2.0
silverstripe/framework5.2.0
silverstripe/graphql5.2.0
silverstripe/gridfieldqueuedexport3.2.0
silverstripe/hybridsessions3.0.3
silverstripe/iframe3.2.0
silverstripe/installer5.2.0
silverstripe/ldap2.2.0
silverstripe/linkfield4.0.0
silverstripe/login-forms5.2.0
silverstripe/lumberjack3.1.0
silverstripe/mfa5.2.0
silverstripe/mimevalidator3.1.0
silverstripe/realme5.3.0
silverstripe/recipe-authoring-tools2.2.0
silverstripe/recipe-blog2.2.0
silverstripe/recipe-cms5.2.0
silverstripe/recipe-collaboration2.2.0
silverstripe/recipe-content-blocks3.2.0
silverstripe/recipe-core5.2.0
silverstripe/recipe-form-building2.2.0
silverstripe/recipe-kitchen-sink5.2.0
silverstripe/recipe-plugin2.0.0
silverstripe/recipe-reporting-tools2.2.0
silverstripe/recipe-services2.2.0
silverstripe/registry3.2.0
silverstripe/reports5.2.0
silverstripe/restfulserver3.0.0
silverstripe/securityreport3.1.0
silverstripe/segment-field3.2.0
silverstripe/session-manager2.2.0
silverstripe/sharedraftcontent3.2.0
silverstripe/siteconfig5.2.0
silverstripe/sitewidecontent-report4.2.0
silverstripe/spamprotection4.2.0
silverstripe/staticpublishqueue6.2.0
silverstripe/subsites3.2.0
silverstripe/tagfield3.2.0
silverstripe/taxonomy3.2.0
silverstripe/textextraction4.1.0
silverstripe/totp-authenticator5.2.0
silverstripe/userforms6.2.0
silverstripe/vendor-plugin2.0.2
silverstripe/versioned2.2.0
silverstripe/versioned-admin2.2.0
silverstripe/versionfeed3.2.0
silverstripe/webauthn-authenticator5.2.0
symbiote/silverstripe-advancedworkflow6.2.0
symbiote/silverstripe-gridfieldextensions4.0.5
symbiote/silverstripe-multivaluefield6.1.0
symbiote/silverstripe-queuedjobs5.1.0
tractorcow/silverstripe-fluent7.1.0

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 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.

PHP 8.3 support

This release includes official support for PHP 8.3 for all supported modules. There were only very minor code changes required to add this support, so your upgrades should be fairly straightforward in that regard.

Check out the PHP 8.3 release announcement to see what's new and what's changed.

Official support for silverstripe/linkfield

silverstripe/linkfield 4.0.0 has been released and is now a commercially supported module.

That means it's now covered by our minor release policy, our major release policy, and our security release process.

This module provides a Link model and two new form fields: LinkField and 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 and accessibility

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.

composer require silverstripe/linkfield

Check out the linkfield documentation for more information about this module.

Features and enhancements

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

Filtering or sorting an 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

You can pass an associative array into the 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.

use SilverStripe\ORM\DataList;

$teams = Team::get()->eagerLoad([
    'Players' => fn (DataList $list) => $list->filter(['Age:GreaterThan' => 18]),
]);

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.

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:

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,
        ],
    ];
}

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.

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() or DataObjectSchema::hasOneComponent() instead.

See multi-relational has_one in the relations docs for more details about this relation type.

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() 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.

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() 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.

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)

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() and 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().

Check out the SQL queries and data model and ORM documentation for usage details and examples.

Support for multiple (or no) tables in the 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.

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

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 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() method.

$query = new DataQuery(MyClass::class);
$query->selectField('\'my custom title\' AS "Title"');
$query->setAllowCollidingFieldStatements(true);

Other ORM changes

GridField components now work with 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 and 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 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) that can be confusing. To that end, you can now limit the codes in the dropdown with the ErrorPage.allowed_error_codes configuration array like so:

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() for the full list.

Versioned status badges for elemental

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 extension is used for elemental blocks, which it is by default.

examples of the versioned labels

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

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

Support for validation using symfony/validator

We've added a new ConstraintValidator class which provides an abstraction around symfony/validator, so you can easily validate values against symfony's validation constraints and get a ValidationResult object with the result.

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:

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 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 which is used by the RequiredFields form validator to identify 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

We've added a pair of new dropdown form fields which are particularly useful for dropdowns with a large number of 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 was used - which was not user friendly.

Previously the 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

We've added a new UrlField which is a subclass of TextField with some additional validation rules (powered by the Url symfony validation constraint). 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

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 for details about how to use this new API.

More nuanced permissions for /dev/* routes

Previously, all /dev/* routes registered with 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). 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

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.

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 and Generics in PHP using PHP DocComments | DEVSENSE 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

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:

use App\Model\CarouselItem;
use SilverStripe\ORM\DataList;

/**
 * @return DataList<CarouselItem>
 */
function getCarouselItems(): DataList
{
    return CarouselItem::get();
}

Generic typehints in Extension subclasses

The generic typing on the Extension class can be used to tell your IDE what type to expect for the $owner property and 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.

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.

namespace App\Extension;

use SilverStripe\Core\Extension;
use SilverStripe\SiteConfig\SiteConfig;

/**
 * @extends Extension<SiteConfig>
 */
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<LeftAndMain|GridFieldDetailForm_ItemRequest>.

Generic typehints in ContentController subclasses

If you use the data() method or the $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.

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.

namespace {

    use SilverStripe\CMS\Controllers\ContentController;

    /**
     * @template T of Page
     * @extends ContentController<T>
     */
    class PageController extends ContentController
    {
        // ...
    }
}
namespace App\PageType;

use PageController;

/**
 * @extends PageController<HomePage>
 */
class HomepageController extends PageController
{
    // ...
}

New exception in react forms

FormSchema::getSchema() now throws a LogicException if a react component was not found for a field type.

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

API changes

silverstripe/framework

The following legacy subclasses of 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 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.

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.

The following unused API have been deprecated and will be removed in a future major release:

The ViewableData::getIterator() method has been deprecated and will be removed in a future major release.

silverstripe/cms

The SiteTree.hide_ancestor configuration property has been deprecated. Use SiteTree.hide_pagetypes instead.

silverstripe/versioned

The $having parameter in the Versioned::Versions() method has been deprecated. This parameter was never used, and has been removed from the method signature.

Bug fixes

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

  • silverstripe/framework (5.1.0 -> 5.2.0)

  • silverstripe/admin (2.1.0 -> 2.2.0)

  • silverstripe/graphql (5.1.0 -> 5.2.0)

Features and enhancements

  • silverstripe/recipe-cms (5.1.0 -> 5.2.0)

    • 2024-01-17 9dbd01e Add generic types (#79) (Guy Sartorelli)
  • silverstripe/assets (2.1.0 -> 2.2.0)

    • 2024-01-25 3326749 Refactor FileIDHelper classes to reduce code duplication (#587) (Guy Sartorelli)
    • 2024-01-17 2ed92f8 Add generic types (#584) (Guy Sartorelli)
    • 2024-01-16 a40ab50 Allow file variants with different extensions (Guy Sartorelli)
  • silverstripe/framework (5.1.0 -> 5.2.0)

    • 2024-04-02 cca2f7059 Update PHPDocs for methods with missing nullable return types (#11187) (Thomas Portelange)
    • 2024-03-14 777056d86 fieldList is an array or null (Thomas Portelange)
    • 2024-03-12 b031ade73 update some docblock types (#11168) (Thomas Portelange)
    • 2024-02-20 528344d1b Allow manipulating eagerloading queries (#11140) (Guy Sartorelli)
    • 2024-02-16 a3ce922f1 Allow better subclassing of MoneyField (Dominik Beerbohm)
    • 2024-02-16 8664d2c4e Allow all valid true-like ini values (Guy Sartorelli)
    • 2024-02-08 5e53dbcdb Add a trace comment for queries in dev mode (#11065) (Guy Sartorelli)
    • 2024-02-02 2e4bc9515 Add UrlField (Steve Boyd)
    • 2024-02-02 7f7169533 Wire up symfony/validator (#11123) (Guy Sartorelli)
    • 2024-01-30 9d335f73d HasOneRelationFieldInterface (Steve Boyd)
    • 2024-01-17 357ed7ad7 Add generic types (#11108) (Guy Sartorelli)
    • 2023-12-21 2487c4085 Create Requirements::customScriptWithAttributes (#11076) (Finlay Metcalfe)
    • 2023-12-18 e66c1aec0 Use SearchableDropdownField for autoscaffolded has_one relationships (Steve Boyd)
    • 2023-12-14 23eca53df SearchableDropdownField (Steve Boyd)
    • 2023-12-11 c405ed6cf Allow a single has_one to manage multiple reciprocal has_many (#11084) (Guy Sartorelli)
    • 2023-11-22 fdb329913 Throw exception when no react component (Steve Boyd)
    • 2023-11-14 3d64eac12 Make most GridField components work with arbitrary data (Guy Sartorelli)
    • 2023-11-14 5838772b1 Explicitly require DataObject for some gridfield components (Guy Sartorelli)
    • 2023-11-13 b1295af28 Provide an easy way to filter arbitrary ViewableData in gridfields (Guy Sartorelli)
    • 2023-11-03 b9b891d05 handle sub-urls (Andrew Paxley)
    • 2023-11-02 2cb84e90d remove devbuild bypass (Andrew Paxley)
    • 2023-11-02 5d4327b23 replace permission checks with canView check on TestDBTask (Andrew Paxley)
    • 2023-10-31 78444a44c add DevAdminConfirmationMiddleware (Andrew Paxley)
    • 2023-10-19 159112ca8 Generate a random password if a blank password is entered (Steve Boyd)
    • 2023-10-03 a0cbebb2d allow stacked messages on FormMessage (Andrew Paxley)
    • 2023-10-02 44b170098 Add ORM abstraction for &quot;WITH&quot; clauses (#10943) (Guy Sartorelli)
    • 2023-09-27 7d5c62ed5 Add rightJoin method to DataList (#10961) (Guy Sartorelli)
    • 2023-09-24 fac335673 Enable allowing collisions for field statements (#10957) (Guy Sartorelli)
    • 2023-09-24 bbc0295f8 Add abstraction for sql RIGHT JOIN (#10954) (Guy Sartorelli)
    • 2023-09-24 b28749db4 Allow selecting multiple (or no) tables (#10953) (Guy Sartorelli)
    • 2023-09-19 b3b1d0761 Deprecate old password encryptors (#10948) (Guy Sartorelli)
    • 2023-08-04 76da701b6 Add sql UNION abstraction (Guy Sartorelli)
    • 2023-07-12 3244b44a5 add permissions for build tasks (Andrew Paxley)
    • 2021-12-04 bf629dfab Split sentences by configurable punctuation for summary (Guy Sartorelli)
  • silverstripe/admin (2.1.0 -> 2.2.0)

    • 2024-03-09 ea554c52 Move spinner to a seperate template so other module can include it (Maxime Rainville)
    • 2024-02-26 41f8bd3f Refactor FormBuilderModal and split up the Modal into its own component (#1631) (Maxime Rainville)
    • 2024-02-13 6d183e4d Add extra_requirements_i18n config to LeftAndMain (#1678) (Guy Sartorelli)
    • 2024-01-29 73e30a0f Add jsonSuccess() (Steve Boyd)
    • 2024-01-25 c16fb0f3 Refactor sslink slightly for easier maintenance (#1661) (Guy Sartorelli)
    • 2024-01-24 493909d0 Remove background form description and unclickable fields (#1652) (Sabina Talipova)
    • 2024-01-17 75b51fc1 Add generic types (#1648) (Guy Sartorelli)
    • 2023-12-13 c63d0136 SearchableDropdownField (Steve Boyd)
  • silverstripe/asset-admin (2.1.0 -> 2.2.0)

    • 2024-01-18 badbc4fd Add generic types (#1433) (Guy Sartorelli)
    • 2024-01-08 a144ac18 Let AssetAdmin default to Upload_Validator default upload limits (#1430) (Guy Sartorelli)
    • 2023-12-13 32480e20 Use SearchableMultiDropdownField (Steve Boyd)
    • 2023-11-07 b160b1c6 Select all and clear all functionality (Steve Boyd)
  • silverstripe/campaign-admin (2.1.0 -> 2.2.0)

    • 2024-01-17 5b75cb2 Add generic types (#291) (Guy Sartorelli)
    • 2023-11-07 1c20dbf More Actions button is hidden if Campaign is published (#288) (Sabina Talipova)
  • silverstripe/versioned-admin (2.1.0 -> 2.2.0)

    • 2024-01-18 ad08d76 Add generic types (#319) (Guy Sartorelli)
  • silverstripe/cms (5.1.0 -> 5.2.0)

    • 2024-01-18 3847b3ea Add generic types (#2914) (Guy Sartorelli)
    • 2024-01-08 a5d2b3bb Return 404 when redirector page wants to link to missing page (#2663) (Marco Hermo)
    • 2023-12-13 3d94a0e3 Use SearchableMultiDropdownField to select Members (Steve Boyd)
  • silverstripe/errorpage (2.1.0 -> 2.2.0)

    • 2024-01-17 93f6715 Add generic types (#95) (Guy Sartorelli)
    • 2023-09-25 b4f0088 add config for allowed_error_codes (Andrew Paxley)
    • 2023-09-25 9e1cde4 additional error codes, tidy translations (Andrew Paxley)
  • silverstripe/siteconfig (5.1.0 -> 5.2.0)

    • 2023-12-18 37e8a4f3 Use SearchableMultiDropdownField (Steve Boyd)
    • 2023-10-19 7ab6480b Add &quot;only these users&quot; option to siteconfig access settings (Guy Sartorelli)
  • silverstripe/versioned (2.1.0 -> 2.2.0)

    • 2024-01-19 96736c2 Add generic types (#431) (Guy Sartorelli)
    • 2023-12-12 1e73253 Respect new has_one config (#427) (Guy Sartorelli)
    • 2023-11-03 044bdb0 add CAN_DEV_BUILD to non_live_permissions (Andrew Paxley)
    • 2021-02-26 1735fd6 Stages differ recursive. (Danaë Miller-Clendon)
  • silverstripe/graphql (5.1.0 -> 5.2.0)

    • 2024-01-17 8fd1bdc Add generic types (#567) (Guy Sartorelli)
    • 2023-10-31 b47487d use init_permissions to match core PR (Andrew Paxley)
  • silverstripe/session-manager (2.1.0 -> 2.2.0)

    • 2024-01-18 94c0603 Add generic types (#177) (Guy Sartorelli)
  • silverstripe/login-forms (5.1.0 -> 5.2.0)

    • 2024-01-18 3a820bd Add generic types (#162) (Guy Sartorelli)
  • silverstripe/iframe (3.1.0 -> 3.2.0)

    • 2024-01-23 53008d0 Add generic types (#77) (Guy Sartorelli)
  • silverstripe/tagfield (3.1.0 -> 3.2.0)

    • 2024-01-23 556772b Add generic types (#277) (Guy Sartorelli)
  • silverstripe/taxonomy (3.1.0 -> 3.2.0)

    • 2024-01-23 336d1c7 Add generic types (#102) (Guy Sartorelli)
  • silverstripe/blog (4.1.0 -> 4.2.0)

    • 2024-01-18 3b80922 Add generic types (#739) (Guy Sartorelli)
  • silverstripe/spamprotection (4.1.0 -> 4.2.0)

    • 2024-01-18 77aba75 Add generic types (#108) (Guy Sartorelli)
  • silverstripe/contentreview (5.1.0 -> 5.2.0)

    • 2024-01-18 f04e9fa Add generic types (#220) (Guy Sartorelli)
  • silverstripe/sharedraftcontent (3.1.0 -> 3.2.0)

    • 2024-01-18 b78b1af Add generic types (#222) (Guy Sartorelli)
  • symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0)

    • 2024-01-23 65ec116 Add generic types (#511) (Guy Sartorelli)
  • silverstripe/userforms (6.1.0 -> 6.2.0)

    • 2024-01-18 ca972ff Add generic types (#1261) (Guy Sartorelli)
    • 2023-12-20 5bcbad6 Remove LastEdited from summary_fields (#1173) (Bauke)
  • silverstripe/externallinks (3.1.0 -> 3.2.0)

    • 2024-01-23 e8bdf12 Add generic types (#117) (Guy Sartorelli)
    • 2023-11-08 8797f1f Restrict access to getJobStatus execution (#113) (Sabina Talipova)
  • silverstripe/securityreport (3.0.0 -> 3.1.0)

    • 2024-01-18 2e8f342 Add generic types (#72) (Guy Sartorelli)
  • silverstripe/sitewidecontent-report (4.1.0 -> 4.2.0)

    • 2024-01-18 00ca457 Add generic types (#76) (Guy Sartorelli)
  • bringyourownideas/silverstripe-maintenance (3.0.1 -> 3.1.0)

    • 2023-06-14 32cccc9 Update translations (Steve Boyd)
  • bringyourownideas/silverstripe-composer-update-checker (4.0.0 -> 4.1.0)

    • 2023-06-14 3719b52 Update translations (Steve Boyd)
  • silverstripe/versionfeed (3.1.0 -> 3.2.0)

    • 2024-01-18 b7b4ff8 Add generic types (#94) (Guy Sartorelli)
  • dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0)

    • 2024-01-29 7351e65 Versioned badge to elements (Sabina Talipova)
    • 2024-01-22 b25ed5f Add generic types (#1131) (Guy Sartorelli)
    • 2024-01-19 bf8d867 BaseElement::getType() use static::class instead of __CLASS__ for better defaults (Christopher Darling)
  • silverstripe/auditor (3.0.0 -> 3.1.0)

    • 2024-01-18 8c847f5 Add generic types (#67) (Guy Sartorelli)
  • silverstripe/registry (3.1.0 -> 3.2.0)

    • 2024-01-23 a42be22 Add generic types (#90) (Guy Sartorelli)
  • silverstripe/mfa (5.1.0 -> 5.2.0)

    • 2024-01-19 97e6c80 Add generic types (#524) (Guy Sartorelli)
  • silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0)

    • 2024-01-18 6fb435f Add generic types (#94) (Guy Sartorelli)
  • silverstripe/ldap (2.1.0 -> 2.2.0)

    • 2024-01-19 894f204 Add generic types (#67) (Guy Sartorelli)
  • silverstripe/textextraction (4.0.0 -> 4.1.0)

    • 2024-01-22 cc43a12 Add generic types (#86) (Guy Sartorelli)
  • silverstripe/realme (5.2.0 -> 5.3.0)

    • 2024-01-18 5971936 Add generic types (#128) (Guy Sartorelli)
  • silverstripe/subsites (3.1.0 -> 3.2.0)

    • 2024-01-23 11a941f Add generic types (#554) (Guy Sartorelli)
  • silverstripe/lumberjack (3.0.2 -> 3.1.0)

    • 2024-01-17 dd5f929 Add generic types (#137) (Guy Sartorelli)
  • silverstripe/staticpublishqueue (6.1.0 -> 6.2.0)

    • 2024-01-19 192ea76 Add generic types (#182) (Guy Sartorelli)
    • 2023-12-22 50519cd Extension points for FilesystemPublisher. (Mojmir Fendek)
    • 2023-11-30 ebde61e Configuration property for disallowed status codes (#178) (Guy Sartorelli)
  • cwp/agency-extensions (3.1.0 -> 3.2.0)

    • 2024-01-22 0dc9d10 Add generic types (#110) (Guy Sartorelli)
  • symbiote/silverstripe-gridfieldextensions (4.0.3 -> 4.0.5)

    • 2024-01-23 78fa8ba Make toast message &quot;Records reordered.&quot; localisable (#321) (Tom Oude Rengerink)
  • symbiote/silverstripe-queuedjobs (5.0.2 -> 5.1.0)

    • 2024-01-23 9cf0162 Add generic types (#415) (Guy Sartorelli)
  • tractorcow/silverstripe-fluent (7.0.0 -> 7.1.0)

    • 2024-01-12 b55dcf4 Add generic types (Guy Sartorelli)
    • 2023-06-14 ef3fed4 Update translations (Steve Boyd)
  • silverstripe/linkfield (3.0.0-beta1 -> 4.0.0)

    • 2024-03-12 967c457 Pre-render the LinkField in entwine (#241) (Maxime Rainville)
    • 2024-03-11 1fb149f Use File Title (Steve Boyd)
    • 2024-02-20 87e8c17 Avoid potential data disclosure (#233) (Guy Sartorelli)
    • 2024-02-15 c75615f More standardisation (#223) (Guy Sartorelli)
    • 2024-02-14 3e97f0d Better versioned history (Steve Boyd)
    • 2024-02-13 0c0cdaa Globally disallow link types (Steve Boyd)
    • 2024-02-13 f3de6ac LinkField Behat tests (#201) (Sabina Talipova)
    • 2024-02-13 5d604a7 Icon alignment (Sabina Talipova)
    • 2024-02-12 fac2d31 Improve keyboard support (Steve Boyd)
    • 2024-02-12 05c7b42 Remove unused code (Guy Sartorelli)
    • 2024-02-12 28b833f Standardise naming and improve code quality (Guy Sartorelli)
    • 2024-02-12 51acf4f Add strong typing where possible (Guy Sartorelli)
    • 2024-02-12 d334cbc Move LeftAndMain requirements into config (Guy Sartorelli)
    • 2024-02-12 04ae65c Allow developers to exclude LinkText field (#215) (Guy Sartorelli)
    • 2024-02-12 afef74f Refactor link field traits into abstract class (Guy Sartorelli)
    • 2024-02-08 4e43d54 Rename and move Title field (Steve Boyd)
    • 2024-02-06 0099636 Improved validation (Steve Boyd)
    • 2024-01-31 5155f17 Set Published button dirty state when Link is an unpublished state (Steve Boyd)
    • 2024-01-29 8fbe94b Standardise API responses (Steve Boyd)
    • 2024-01-29 836d665 Improve hover active and focus state styling (Steve Boyd)
    • 2024-01-25 4ba8267 Add disabled field state (Steve Boyd)
    • 2024-01-24 0c01fcf Hide the open in new window checkbox from phone and email links (Steve Boyd)
    • 2024-01-24 9bb3a1a Add Readonly field status (#172) (Sabina Talipova)
    • 2024-01-24 e6f7705 Confirm user wishes to delete link (Steve Boyd)
    • 2024-01-18 2927d50 Show a cannot create message when types is empty (Steve Boyd)
    • 2024-01-17 343c3d2 MutliLinkField sorting (Steve Boyd)
    • 2024-01-16 eb88dd0 Join endpoint path segments (Steve Boyd)
    • 2024-01-11 6644853 Link type icon (Sabina Talipova)
    • 2024-01-11 912816c Add sorting by link type (Sabina Talipova)
    • 2024-01-10 09ca349 Show loading component during ajax read requests (Steve Boyd)
    • 2024-01-10 9d3a6f0 Gracefully handle AJAX failures (Steve Boyd)
    • 2024-01-10 c563394 Show save record first text on unsaved owners (Steve Boyd)
    • 2024-01-09 0ea34be Used on table extension (Steve Boyd)
    • 2024-01-09 2086a38 Change clear text to delete (Steve Boyd)
    • 2023-12-22 279cfb5 Save relations on link creation (Steve Boyd)
    • 2023-12-19 ea28fe1 Remove LinkFieldController from cms menu (Steve Boyd)
    • 2023-12-14 84824c7 Allowed link types (Sabina Talipova)
    • 2023-12-11 ffb1ae0 Add versioning to Link (Steve Boyd)
    • 2023-12-05 5e35a84 Add permission methods based on owner (Guy Sartorelli)
    • 2023-11-30 1e1083d Default link title for each link type (Sabina Talipova)
    • 2023-11-28 1be5f0d Add MultiLinkField for managing many-type relations (Guy Sartorelli)
    • 2023-11-28 acb9c84 Refactor LinkField in preparation for MultiLinkField (Guy Sartorelli)
    • 2023-11-14 64f5829 Add localization support (#119) (Sabina Talipova)
    • 2023-11-06 6035de8 LinkFieldController to handle FormSchema (Steve Boyd)
    • 2023-09-26 345c828 Allow projects to define their own subclass templates (Steve Boyd)
    • 2023-06-21 d667d94 Query string support. (Mojmir Fendek)
    • 2023-06-20 6b69001 New extension points added (JSON field). (Mojmir Fendek)
    • 2023-06-14 3478f28 Extension points for link model manipulation. (Mojmir Fendek)
    • 2023-06-07 77c7319 Allow form validation. (Mojmir Fendek)
    • 2023-06-06 3041730 Insert / edit link button label. (Mojmir Fendek)
    • 2023-06-06 d425b33 Allow model-level for customisation. (Mojmir Fendek)
    • 2023-06-05 6e8183a Extensibility improvements for link migration task. (Mojmir Fendek)
    • 2021-11-11 3e0f699 Empty link title fallbacks to Page. (#37) (Mojmir Fendek)

Bugfixes

  • silverstripe/vendor-plugin (2.0.1 -> 2.0.2)

    • 2023-10-10 175505b Method CopyMethod::copy as deprecated (Sabina Talipova)
  • silverstripe/assets (2.1.0 -> 2.2.0)

    • 2024-01-18 d9d5dac Pass variant args into array_merge correctly (Guy Sartorelli)
    • 2024-01-08 46e07eb Ensure the setAllowedMaxFileSize wont allow config values to exceed PHP limits (#469) (Nick)
    • 2023-12-19 6e3fd80 Allow inconclusive mimetypes (#582) (Guy Sartorelli)
  • silverstripe/framework (5.1.0 -> 5.2.0)

    • 2024-04-11 6743de435 Remove ambiguity for polymorphic queries (#11195) (Guy Sartorelli)
    • 2024-03-20 8aab888d5 Fix link for managing roles (#11178) (Guy Sartorelli)
    • 2024-03-01 fcf5e324d Handle non-breakable spaces (Thomas Portelange)
    • 2024-02-26 e7bc8ae99 Generate salt if needed (Thomas Portelange)
    • 2024-02-14 d33332cb9 Add eagerloaded data to ALL relevant lists (#11139) (Guy Sartorelli)
    • 2024-02-12 b56e771ed add missing rawurlencode (#11105) (Thomas Portelange)
    • 2024-02-08 e87c72470 Don't assume mysql handle is an object (#11129) (Guy Sartorelli)
    • 2024-02-07 1dd81488a fix unknown table (Thomas Portelange)
    • 2024-01-24 afd53d1d6 HTMLEditorField::setRows with Elemental (Sabina Talipova)
    • 2024-01-11 ff3a6f72d HTMLEditorField::setRows minimal hieght (#10965) (Sabina Talipova)
    • 2024-01-09 9bfb731bc Handle polymorphic relationships that use Owner instead of Parent (Steve Boyd)
    • 2024-01-08 e456de11b Fix clobbering of the upload size validation (#10059) (Nick)
    • 2023-12-19 7dc1a7a12 Correctly mark ConfirmedPasswordField children as required (Guy Sartorelli)
    • 2023-12-13 dd3a0dba2 Don't break the page if password recover email fails to send (Guy Sartorelli)
    • 2023-12-13 446810bc5 Allow new password to save even if there's an error sending email (Guy Sartorelli)
    • 2023-12-04 40b888eaf UnsavedRelationList::last() sometimes returned an ID instead of an item (Loz Calver)
    • 2023-12-04 e28af9a5a UnsavedRelationList first/last to return null if list is empty (fixes #11083) (Loz Calver)
    • 2023-11-29 6d903848a Don't replace config manifest for nested kernels (#11082) (Guy Sartorelli)
    • 2023-11-21 7eab49f85 Ensure environment is checked before enabling deprecations (#11055) (Guy Sartorelli)
    • 2023-11-16 05f1d9ab8 Make deprecation enabled check faster (Guy Sartorelli)
    • 2023-11-13 4dbbf04ba Add extraEmptyValues to TreedropdownField (Steve Boyd)
    • 2023-10-31 d883719c1 ModelAdmin toast elements (Sabina Talipova)
    • 2023-09-25 55e42683f Match multi-line JOIN statements (#10960) (Guy Sartorelli)
    • 2023-06-12 51fd1d6b7 Handle __TRAIT__ in i18nTextCollector (Steve Boyd)
  • silverstripe/admin (2.1.0 -> 2.2.0)

    • 2024-04-11 ce3f7ea2 Redirecting on preview loading (#1721) (Sabina Talipova)
    • 2024-04-08 d1bc8dc7 Cannot access dropdowns within accordion areas (Sabina Talipova)
    • 2024-03-19 aadc8aa9 Correctly validate emails in WYSIWYG links (#1710) (Guy Sartorelli)
    • 2024-03-04 1df1ee77 JS Console errors and warnings (Sabina Talipova)
    • 2024-02-26 60563dbd Support nested redux forms (Guy Sartorelli)
    • 2024-02-25 7918318d Don't panic if classname isn't set (#1687) (Guy Sartorelli)
    • 2024-02-22 129a94a2 Rebuild bundle (Mohamed Alsharaf)
    • 2024-02-22 b3e16081 Remove current active tab from session storage after use (Mohamed Alsharaf)
    • 2024-02-08 8a3833e8 Set the CSV importer based on the tab, not the model (#1676) (Guy Sartorelli)
    • 2024-02-01 725a9a11 Use valid class for model importers (#1670) (Guy Sartorelli)
    • 2024-01-25 359a3953 Type error (Sabina Talipova)
    • 2024-01-24 925e06f4 Add tinymce link menuitems per editor instance (#1653) (Guy Sartorelli)
    • 2024-01-24 799add9e HTMLEditorField::setRows with Elemental (Sabina Talipova)
    • 2024-01-23 c06b2f2a Use valid class for model importers (Guy Sartorelli)
    • 2024-01-17 79955d24 Elemental no longer allows saving of HTMLEditorField (#1651) (Sabina Talipova)
    • 2024-01-11 bc92e1f1 HTMLEditorField::setRows method (#1588) (Sabina Talipova)
    • 2024-01-09 4dd2432b Remove unstable prefix from useBlocker (Steve Boyd)
    • 2024-01-07 12e97880 Rebuild bundle (Steve Boyd)
    • 2023-12-21 d949db14 decode entities in toast message (Thomas Portelange)
    • 2023-12-19 0755502d Ensure react-select field menus are always on top (#1637) (Guy Sartorelli)
    • 2023-12-15 5d39d877 Set z-index of list (Steve Boyd)
    • 2023-12-01 4c53dece Prevents horizontal scrollbar in non-firefox (Lukas Erni)
    • 2023-11-08 c862349c Handle extra empty values (Steve Boyd)
    • 2023-10-31 22d5471f ModelAdmin toast elements (Sabina Talipova)
    • 2023-10-19 d393424b Make CanView/Edit group toggle logic more robust (#1610) (Guy Sartorelli)
  • silverstripe/asset-admin (2.1.0 -> 2.2.0)

    • 2024-01-25 bb3894ef TinyMCE Insert link from Files (Sabina Talipova)
    • 2024-01-24 b9db9c33 Add tinymce link menuitems per editor instance (#1435) (Guy Sartorelli)
    • 2023-11-08 a50f9e40 Limit Member map to 100 (Steve Boyd)
    • 2023-09-11 fd811f95 fix: expose ShowInSearch field in access UI (Will Rossiter)
  • silverstripe/versioned-admin (2.1.0 -> 2.2.0)

    • 2024-03-10 9c23cee Update ArchiveRestoreAction::doRestore() method to pass correct argument in redirection (Marco Hermo)
    • 2024-02-12 cd3fcb2 Use correct modelClass with others tab (Steve Boyd)
  • silverstripe/cms (5.1.0 -> 5.2.0)

    • 2024-01-24 dfc42e7c Add tinymce link menuitems per editor instance (#2916) (Guy Sartorelli)
    • 2023-12-19 9202ce9a Ensure react-select field menus are always on top (#2910) (Guy Sartorelli)
    • 2023-11-19 579986a6 Handle exceptions when using /0 as a URL (#2825) (Will Rossiter)
    • 2023-11-07 dd2bd613 Limit Member map to 100 (Steve Boyd)
  • silverstripe/versioned (2.1.0 -> 2.2.0)

    • 2024-02-19 11d24ae use rawurlencode when setting toast headers (#440) (Thomas Portelange)
    • 2023-11-01 c52c166 ModelAdmin toast elements (Sabina Talipova)
    • 2023-10-24 d614204 Remove implicitly added item (Sabina Talipova)
  • silverstripe/graphql (5.1.0 -> 5.2.0)

    • 2023-11-26 f929eb6 Add test cases for SortPlugin (Sabina Talipova)
    • 2023-11-22 5781c46 QuerySort::sort method should support sorting for multi arguments (Sabina Talipova)
  • silverstripe/documentconverter (3.1.0 -> 3.2.0)

    • 2024-03-19 240f576 Don't use deprecated usage of get_class() (#73) (Guy Sartorelli)
  • silverstripe/tagfield (3.1.0 -> 3.2.0)

    • 2023-12-13 18e5df1 z-index of select dropdown clashing with TinyMCE toolbar (Christopher Darling)
    • 2023-09-22 c931056 Added the state changed checks and bubble up event - pending build (josephlewisnz)
  • silverstripe/blog (4.1.0 -> 4.2.0)

    • 2024-03-19 9fae326 Use $owns instead of onBeforeWrite hook to publish profile image (James Cocker)
    • 2022-08-22 99d1063 Allow multibyte to be configured (#605) (Will Rossiter)
  • silverstripe/spamprotection (4.1.0 -> 4.2.0)

    • 2023-09-10 17106d8 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 Remove deprecated convert API for SS5.0 (#260) (Bram de Leeuw)
  • silverstripe/sharedraftcontent (3.1.0 -> 3.2.0)

    • 2023-11-09 e490370 Infinite recursion sanity checks with more helpful error messages (#214) (Nathan J. Brauer)
  • symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0)

    • 2024-01-25 8f08322 Argument order of insertBefore method (Mohamed Alsharaf)
    • 2024-01-25 5e3b9b0 Button layout that display icons (Mohamed Alsharaf)
    • 2023-12-14 7286f14 Use correct namespace for imports (Steve Boyd)
  • silverstripe/sitewidecontent-report (4.1.0 -> 4.2.0)

    • 2024-01-24 e6638ec update defensive check on tags field method (Phillip King)
  • silverstripe/versionfeed (3.1.0 -> 3.2.0)

    • 2024-03-19 49cc581 Don't use deprecated usage of get_class() (#103) (Guy Sartorelli)
    • 2024-02-29 66da923 Ensure page has extension before calling method (Steve Boyd)
    • 2024-01-23 c10085c Make sureHtmlDiff::compareHTML is not passed null values (Alexandre Saelens)
  • dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0)

    • 2024-04-03 e9d89bb Do not publish dataobject in requireDefaultRecords() (Steve Boyd)
    • 2024-02-26 f571da9 Remove workaround for nested redux form. (Guy Sartorelli)
    • 2024-01-30 95c31bd Failed Behat test (Sabina Talipova)
    • 2024-01-29 b23847a Behat test for badges (Sabina Talipova)
    • 2024-01-18 935e46d Null submit handler for element component (Steve Boyd)
    • 2023-12-06 d986b7d Handle empty element formstate (Steve Boyd)
    • 2023-09-20 7f1daf8 Element::getPage returning the wrong page (Will Rossiter)
    • 2023-09-19 215fadf Fix some bits in the readme (Ed Wilde)
  • silverstripe/auditor (3.0.0 -> 3.1.0)

    • 2023-12-21 567136d Adjust logic to account for custom table names (Maxime Rainville)
    • 2023-12-19 44ee87d Fix logging of failed logins &amp; unknown users (Ralph Slooten)
    • 2023-12-14 780b9af Use correct namespace for import (Steve Boyd)
  • silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0)

    • 2024-01-16 48b454f Undefined Exception on makeDir method (Marco Hermo)
  • cwp/watea-theme (4.0.0 -> 4.1.0)

    • 2023-09-04 8bfba56 Update .nvmrc (Steve Boyd)
  • symbiote/silverstripe-queuedjobs (5.0.2 -> 5.1.0)

    • 2022-10-04 7cdce8f grabMutex job lock query on SQLite (Maxime Rainville)
  • tractorcow/silverstripe-fluent (7.0.0 -> 7.1.0)

    • 2023-08-15 28056e5 fix stylesheet path (Thomas Portelange)
  • silverstripe/linkfield (3.0.0-beta1 -> 4.0.0)

    • 2024-03-19 d0c44eb Remove misleading migration docs and task (#259) (Guy Sartorelli)
    • 2024-03-10 e40f251 Remove tabs with only gridfields (Steve Boyd)
    • 2024-02-26 1a30c3e Remove workaround for nested redux form. (Guy Sartorelli)
    • 2024-02-12 c347b35 Archive record from live table on delete (Steve Boyd)
    • 2024-02-07 31d9ffa Do not show delete button when disabled (Steve Boyd)
    • 2024-01-31 09f637c Add HasOneRelationFieldInterface to LinkField (Steve Boyd)
    • 2024-01-30 790c561 Elemental non-inline editing (Steve Boyd)
    • 2024-01-25 da9ce9b Prevent nested asset-admin forms from submitting modal (Steve Boyd)
    • 2024-01-19 15f02d3 Defaul link type title and icon for disabled link types (Sabina Talipova)
    • 2024-01-15 f7fd63a Don't change scroll position when loading (#171) (Guy Sartorelli)
    • 2024-01-11 082657d Console warning about required type (#163) (Sabina Talipova)
    • 2024-01-08 bdf0b36 Nicely truncate link title/URL (#153) (Guy Sartorelli)
    • 2023-12-04 3c8edfd Don't render links that don't exist (#130) (Guy Sartorelli)
    • 2023-08-03 f2fd7bb Revert change that broke file modal (Maxime Rainville)
    • 2023-06-20 8533d27 Allow CMS fields customisations via extension to be executed after the default setup. (Mojmir Fendek)
    • 2023-06-11 61a27e5 File link URL generation corrected. (Mojmir Fendek)
    • 2023-06-06 8df6554 Corrected variable name (typo). (Mojmir Fendek)
    • 2023-06-06 f09a385 URL generation fix for internal link. (Mojmir Fendek)
    • 2023-06-01 b328570 Fix link migration task. (Mojmir Fendek)
    • 2023-05-25 9744bd8 List types can now be disabled via configuration (existing config, missing feature). (Mojmir Fendek)
    • 2023-02-15 677ae80 Fix Github actions. (Mojmir Fendek)
    • 2022-05-13 1e9c0ec Bump PHP versions. (Mojmir Fendek)
    • 2022-05-12 5239704 Fix Composer autoload settings. (Mojmir Fendek)
    • 2021-10-21 2eb755e Change link type in via a GridField edit form. (Mojmir Fendek)

Api changes

  • silverstripe/assets (2.1.0 -> 2.2.0)

    • 2021-07-20 595c5a5 allow chaining for Upload_Validator (Will Rossiter)
  • silverstripe/framework (5.1.0 -> 5.2.0)

    • 2024-01-16 8b427f4e7 Deprecate some unused API (Guy Sartorelli)
    • 2023-11-27 3fe42b84a Use correct param types (Steve Boyd)
  • silverstripe/cms (5.1.0 -> 5.2.0)

    • 2023-11-02 e826152f Add new SiteTree.hide_pagetypes configuration (Guy Sartorelli)
  • silverstripe/versioned (2.1.0 -> 2.2.0)

    • 2023-11-05 4d38781 Deprecate Versions() having parameter (Steve Boyd)
  • silverstripe/linkfield (3.0.0-beta1 -> 4.0.0)

    • 2023-12-12 7f65d4f Add new Owner relation for handling permissions (#127) (Guy Sartorelli)

Dependencies

  • silverstripe/recipe-kitchen-sink (5.1.0 -> 5.2.0)

    • 2023-09-28 fa436ba Add silverstripe/linkfield (Steve Boyd)
  • silverstripe/framework (5.1.0 -> 5.2.0)

    • 2023-11-12 bc47d65cc Deprecate configurable silent failures in GridField components (Guy Sartorelli)
    • 2023-05-31 7ae903872 Explicitly require psr/http-message ^1 (Steve Boyd)
  • silverstripe/admin (2.1.0 -> 2.2.0)

    • 2024-01-08 45a41970 Update JS dependencies (#1645) (Guy Sartorelli)
    • 2023-10-03 fb996163 Update JS dependencies (github-actions)
    • 2023-09-25 48e88977 Bump semver from 5.7.1 to 5.7.2 (dependabot[bot])
    • 2023-09-21 76faebbe Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot])
  • silverstripe/asset-admin (2.1.0 -> 2.2.0)

    • 2024-01-01 e405cafd Update JS dependencies (github-actions)
    • 2023-10-01 f84ff32f Update JS dependencies (github-actions)
    • 2023-09-21 35ab766e Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot])
  • silverstripe/campaign-admin (2.1.0 -> 2.2.0)

    • 2024-01-01 848cb54 Update JS dependencies (github-actions)
    • 2023-10-01 d28008a Update JS dependencies (github-actions)
  • silverstripe/versioned-admin (2.1.0 -> 2.2.0)

    • 2024-01-01 ce3efde Update JS dependencies (github-actions)
    • 2023-10-01 591b938 Update JS dependencies (github-actions)
    • 2023-09-21 82ed02a Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot])
  • silverstripe/cms (5.1.0 -> 5.2.0)

    • 2024-01-01 a6cbf65d Update JS dependencies (github-actions)
    • 2023-10-01 7d1d93ab Update JS dependencies (github-actions)
    • 2023-09-21 da660479 Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot])
  • silverstripe/session-manager (2.1.0 -> 2.2.0)

    • 2024-01-01 67555fa Update JS dependencies (github-actions)
    • 2023-10-01 22bf989 Update JS dependencies (github-actions)
  • silverstripe-themes/simple (3.3.0 -> 3.3.1)

    • 2023-11-17 d3228db Update jQuery to 3.7.1 (Garion Herman)
  • silverstripe/login-forms (5.1.0 -> 5.2.0)

    • 2024-01-01 64b1ad4 Update JS dependencies (github-actions)
    • 2023-10-01 4647dc2 Update JS dependencies (github-actions)
  • silverstripe/documentconverter (3.1.0 -> 3.2.0)

    • 2024-01-01 7435c07 Update JS dependencies (github-actions)
    • 2023-10-01 ea949aa Update JS dependencies (github-actions)
  • silverstripe/tagfield (3.1.0 -> 3.2.0)

    • 2024-01-01 5212c33 Update JS dependencies (github-actions)
    • 2023-10-01 036319b Update JS dependencies (github-actions)
  • silverstripe/taxonomy (3.1.0 -> 3.2.0)

    • 2024-01-08 8a4a0b1 Update deps to specify new auto-scaffolded has-one field (Steve Boyd)
  • silverstripe/blog (4.1.0 -> 4.2.0)

    • 2024-01-01 6351690 Update JS dependencies (github-actions)
    • 2023-10-19 2ef3981 Bump @babel/traverse from 7.23.0 to 7.23.2 (dependabot[bot])
    • 2023-10-01 e363b0e Update JS dependencies (github-actions)
  • silverstripe/contentreview (5.1.0 -> 5.2.0)

    • 2024-01-01 4124322 Update JS dependencies (github-actions)
    • 2023-10-01 1f750b9 Update JS dependencies (github-actions)
  • silverstripe/sharedraftcontent (3.1.0 -> 3.2.0)

    • 2024-01-01 429dfd2 Update JS dependencies (github-actions)
    • 2023-10-07 f3d77c4 Bump postcss from 8.4.24 to 8.4.31 (dependabot[bot])
  • symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0)

    • 2023-08-31 85e3f97 Update JS dependencies (Steve Boyd)
  • silverstripe/segment-field (3.1.0 -> 3.2.0)

    • 2024-01-01 16a2718 Update JS dependencies (github-actions)
    • 2023-10-01 7986025 Update JS dependencies (github-actions)
  • silverstripe/userforms (6.1.0 -> 6.2.0)

    • 2024-01-01 7796ec5 Update JS dependencies (github-actions)
    • 2023-10-01 0a33a7e Update JS dependencies (github-actions)
  • silverstripe/externallinks (3.1.0 -> 3.2.0)

    • 2024-01-01 01104bf Update JS dependencies (github-actions)
    • 2023-10-01 6b6b05e Update JS dependencies (github-actions)
    • 2023-09-29 204e7c5 Bump word-wrap from 1.2.3 to 1.2.5 (dependabot[bot])
  • silverstripe/sitewidecontent-report (4.1.0 -> 4.2.0)

    • 2024-01-01 d0dc6d0 Update JS dependencies (github-actions)
    • 2023-10-01 57805fd Update JS dependencies (github-actions)
  • bringyourownideas/silverstripe-maintenance (3.0.1 -> 3.1.0)

    • 2023-08-31 e4014d7 Update JS dependencies (Steve Boyd)
    • 2023-07-11 efba968 Update eslint module (#200) (Sabina Talipova)
  • dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0)

    • 2024-01-01 d5108cb Update JS dependencies (github-actions)
    • 2023-10-01 f425d9d Update JS dependencies (github-actions)
    • 2023-09-21 b84791f Bump graphql from 16.8.0 to 16.8.1 (dependabot[bot])
    • 2023-09-04 9ea6ead Update JS dependencies (github-actions)
  • silverstripe/elemental-bannerblock (3.1.0 -> 3.2.0)

    • 2024-01-01 f31ca86 Update JS dependencies (github-actions)
    • 2023-10-19 59a81dc Bump @babel/traverse from 7.22.10 to 7.23.2 (dependabot[bot])
    • 2023-10-08 7166c18 Bump postcss from 8.4.28 to 8.4.31 (dependabot[bot])
  • silverstripe/auditor (3.0.0 -> 3.1.0)

    • 2024-03-19 537dcd3 Use the canonical repository for proxy-db (#49) (Guy Sartorelli)
  • silverstripe/totp-authenticator (5.1.0 -> 5.2.0)

    • 2024-01-01 d1ce73e Update JS dependencies (github-actions)
    • 2023-10-01 5e14c36 Update JS dependencies (github-actions)
  • silverstripe/mfa (5.1.0 -> 5.2.0)

    • 2024-01-01 9cce064 Update JS dependencies (github-actions)
    • 2023-10-01 9ed339d Update JS dependencies (github-actions)
  • silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0)

    • 2024-01-01 c6ba6c4 Update JS dependencies (github-actions)
    • 2023-10-01 2cbe9d5 Update JS dependencies (github-actions)
  • silverstripe/realme (5.2.0 -> 5.3.0)

    • 2024-01-01 08baf2d Update JS dependencies (github-actions)
    • 2023-10-01 77345e7 Update JS dependencies (github-actions)
  • silverstripe/webauthn-authenticator (5.1.0 -> 5.2.0)

    • 2024-01-01 c2c7bf0 Update JS dependencies (github-actions)
    • 2023-10-19 3e39b93 Bump @babel/traverse from 7.22.10 to 7.23.2 (dependabot[bot])
    • 2023-10-08 f5b3005 Bump postcss from 8.4.28 to 8.4.31 (dependabot[bot])
  • silverstripe/subsites (3.1.0 -> 3.2.0)

    • 2024-01-01 17a729f Update JS dependencies (github-actions)
    • 2023-10-01 e56425e Update JS dependencies (github-actions)
  • silverstripe/lumberjack (3.0.2 -> 3.1.0)

    • 2024-01-01 a139526 Update JS dependencies (github-actions)
    • 2023-10-01 4056a91 Update JS dependencies (github-actions)
    • 2023-09-29 1655e8b Bump word-wrap from 1.2.3 to 1.2.5 (dependabot[bot])
    • 2023-07-11 b9a2082 Update eslint module (#124) (Sabina Talipova)
  • cwp/starter-theme (4.0.0 -> 4.1.0)

    • 2024-01-08 d762ea9 Update JS dependencies (#240) (Guy Sartorelli)
    • 2024-01-08 fdf930e Bump @babel/traverse from 7.23.0 to 7.23.7 (dependabot[bot])
    • 2023-10-28 6a2dff8 Bump browserify-sign from 4.2.1 to 4.2.2 (dependabot[bot])
    • 2023-10-03 5de9fba Update JS dependencies (#233) (github-actions[bot])
    • 2023-08-31 b79bcbd Bump minimatch from 3.0.4 to 3.0.8 (dependabot[bot])
    • 2023-08-29 0adbddc Bump semver from 5.7.1 to 5.7.2 (dependabot[bot])
    • 2023-08-28 2a0d10f Bump url-parse from 1.5.1 to 1.5.10 (dependabot[bot])
    • 2023-08-28 2ee7c94 Bump eventsource from 1.0.7 to 1.1.2 (dependabot[bot])
    • 2023-08-28 8b3912f Bump follow-redirects from 1.13.0 to 1.15.2 (dependabot[bot])
    • 2023-08-28 3bec8aa Bump async from 2.6.3 to 2.6.4 (dependabot[bot])
    • 2023-08-28 e8cb249 Bump path-parse from 1.0.6 to 1.0.7 (dependabot[bot])
    • 2023-08-28 83b1e25 Bump hosted-git-info from 2.8.5 to 2.8.9 (dependabot[bot])
    • 2023-08-28 743463a Bump tar from 4.4.15 to 4.4.19 (dependabot[bot])
    • 2023-08-28 f0ef7f0 Bump color-string from 1.5.3 to 1.9.1 (dependabot[bot])
    • 2023-08-28 5a84ae2 Bump ajv from 6.10.2 to 6.12.3 (dependabot[bot])
    • 2023-08-28 81c5a23 Bump lodash from 4.17.19 to 4.17.21 (dependabot[bot])
    • 2023-08-28 167a10f Bump decode-uri-component from 0.2.0 to 0.2.2 (dependabot[bot])
    • 2023-08-28 eeee5c7 Bump json5 from 1.0.1 to 1.0.2 (dependabot[bot])
    • 2022-12-10 c3c8d4a Bump express from 4.17.1 to 4.18.2 (dependabot[bot])
  • cwp/agency-extensions (3.1.0 -> 3.2.0)

    • 2024-01-01 0b3354c Update JS dependencies (github-actions)
    • 2023-10-01 db01219 Update JS dependencies (github-actions)
  • cwp/watea-theme (4.0.0 -> 4.1.0)

    • 2024-01-01 415858c Update JS dependencies (github-actions)
    • 2023-10-01 c407d54 Update JS dependencies (github-actions)
    • 2023-08-29 902113b build(deps): bump semver from 5.6.0 to 5.7.2 (dependabot[bot])
    • 2023-08-28 78c47a5 build(deps): bump dot-prop from 4.2.0 to 4.2.1 (dependabot[bot])
    • 2023-08-28 3f0de59 build(deps): bump path-parse from 1.0.6 to 1.0.7 (dependabot[bot])
    • 2023-08-28 878cc6a build(deps): bump hosted-git-info from 2.7.1 to 2.8.9 (dependabot[bot])
    • 2023-08-28 8781c5a build(deps): bump json5 from 1.0.1 to 1.0.2 (dependabot[bot])
  • symbiote/silverstripe-multivaluefield (6.0.2 -> 6.1.0)

    • 2023-07-11 99564be Update eslint module (#97) (Sabina Talipova)
  • silverstripe/linkfield (3.0.0-beta1 -> 4.0.0)

    • 2024-01-08 bddcb6e Explicitly require framework ^5.2 (Steve Boyd)

Documentation

  • silverstripe/session-manager (2.1.0 -> 2.2.0)

    • 2023-11-05 2305049 Fix link (Steve Boyd)
  • silverstripe/tagfield (3.1.0 -> 3.2.0)

    • 2023-11-20 946d92a Update readme example (Steve Boyd)
  • silverstripe/userforms (6.1.0 -> 6.2.0)

    • 2024-04-09 edfd0f5 Linting (Steve Boyd)
    • 2024-02-01 c893194 Update syntax for callout blocks (#1263) (Guy Sartorelli)
  • dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0)

    • 2024-04-10 36ea174 Tidy up docs (Steve Boyd)
    • 2024-04-09 68a2ad1 Linting (Steve Boyd)
    • 2023-08-30 fe95f59 fix not needed duplication when restoring a page from archived state (Aljoša Balažic)
  • silverstripe/developer-docs (5.1.0 -> 5.2.0)

    • 2024-03-27 45e82979 Add documentation about repository management (#487) (Guy Sartorelli)
    • 2024-03-24 cafdefc6 Add missing info and fix linting issues (Guy Sartorelli)
    • 2024-03-24 0dc9ad2c Fix path to images from rc changelog (Guy Sartorelli)
    • 2024-03-20 baeeb636 Minor change to changelog regarding PHP 8.3 (#483) (Guy Sartorelli)
    • 2024-03-18 7e4e3460 Readability and writing style review of 5.2.0 changelog (Guy Sartorelli)
    • 2024-03-18 a5f55891 Add more changes to the changelog (Guy Sartorelli)
    • 2024-03-18 6cbc0fa1 Update notes about linkfield migration guides (Guy Sartorelli)
    • 2024-03-14 f9a73555 Add PHP8.3 support to the changelog. (#480) (Guy Sartorelli)
    • 2024-03-12 ee99a449 change and/or to or (Steve Boyd)
    • 2024-03-11 9da6a80d Elemental versioned badge (Steve Boyd)
    • 2024-03-11 37710318 Move 5.2.0-beta1 changelog to proper directory (Steve Boyd)
    • 2024-03-05 43b0baf1 Update image path (Steve Boyd)
    • 2024-03-05 2260d6dd Fix 5.2.0-beta1 changelog (Steve Boyd)
    • 2024-03-04 cc5be721 Add composer runtime api mention (#464) (Thomas Portelange)
    • 2024-02-29 164b66f1 Refer to release policies to avoid stale information (#462) (Guy Sartorelli)
    • 2024-02-28 6bc37ea3 Document LTS support for databases (Guy Sartorelli)
    • 2024-02-23 621a9f40 Fix placement of urlfield docs (#460) (Guy Sartorelli)
    • 2024-02-20 aa9ef537 Document manipulating eager loading queries (#456) (Guy Sartorelli)
    • 2024-02-18 22fd700d Document official support for linkfield (#457) (Guy Sartorelli)
    • 2024-02-08 fee67b67 Add new query trace comment to changelog (#404) (Guy Sartorelli)
    • 2024-02-02 b8012e86 Document using symfony/validator (#454) (Guy Sartorelli)
    • 2024-02-02 e5f5434b Update syntax for callout blocks (#455) (Guy Sartorelli)
    • 2024-02-01 e77dd474 Update syntax for callout blocks (#452) (Guy Sartorelli)
    • 2024-02-01 c47892db Update syntax for callout blocks (#449) (Guy Sartorelli)
    • 2024-01-30 d9735932 Add UrlField (Steve Boyd)
    • 2024-01-29 f5a095af CMS JSON API's (Steve Boyd)
    • 2024-01-29 9f5ea80e Document PHPDoc as a PHP coding standard (#448) (Guy Sartorelli)
    • 2024-01-25 3136033f Add description for type/other label and clarify affects labels (Steve Boyd)
    • 2024-01-18 8ec4dfd6 fix minor typo on class name in code sample (Ravindu)
    • 2024-01-18 04437708 Document making variants with different file extensions (Guy Sartorelli)
    • 2024-01-17 65b1ab1c Refactor docs about file manipulation into its own page (Guy Sartorelli)
    • 2024-01-17 81574844 Document deprecated API (#440) (Guy Sartorelli)
    • 2024-01-14 9fffd6d8 Document added generic types (Guy Sartorelli)
    • 2024-01-08 980c4b95 Document new redirector 404 in changelog (#437) (Guy Sartorelli)
    • 2024-01-08 3ad9dce5 Document new config for splitting summary sentences (#428) (Guy Sartorelli)
    • 2024-01-08 c3f61e59 Document changes to asset admin file size config (#430) (Guy Sartorelli)
    • 2024-01-08 d01a1eb4 Fix spelling issue (#436) (Sabina Talipova)
    • 2024-01-07 52c71d71 Update changelog for .brf support (Ed Wilde)
    • 2023-12-19 1d517716 Auto scaffolding has_one relations (Steve Boyd)
    • 2023-12-18 a0054052 Document lazy loading (Guy Sartorelli)
    • 2023-12-14 ea47bc59 Document another exception to catch when dealing with email (#421) (Guy Sartorelli)
    • 2023-12-14 e1cc2c28 Add SearchableDropdownField to 5.2.0 changelog (Steve Boyd)
    • 2023-12-12 e2c2ff19 Update supported PHP version for CMS 5.2 (Sabina Talipova)
    • 2023-12-11 fd9af106 Document multi-reciprocal has_one relations (#417) (Guy Sartorelli)
    • 2023-12-11 137bdaa0 Update changelog for security patches (Guy Sartorelli)
    • 2023-12-10 3657480d Document gridfield with arbitrary data (Guy Sartorelli)
    • 2023-12-10 78e53226 Nested RequestHandlers (Steve Boyd)
    • 2023-11-29 1a514d10 Document new staticpublishqueue configuration (#413) (Guy Sartorelli)
    • 2023-11-27 7aaf5358 Document using GridField with arbitrary data (Guy Sartorelli)
    • 2023-11-26 2dcd339c Update coding conventions (Steve Boyd)
    • 2023-11-26 0786b201 Add SortPlugin to the docs (Sabina Talipova)
    • 2023-11-23 554e4f0c Include method signatures in public API definition (Guy Sartorelli)
    • 2023-11-22 51cba6cc LogicException when no react component (Steve Boyd)
    • 2023-11-14 d9893215 Document new dev admin permissions (#399) (Guy Sartorelli)
    • 2023-11-07 6f0861b0 Select all and deselect all files (Steve Boyd)
    • 2023-11-06 3b59d4e2 Deprecated $having parameter (Steve Boyd)
    • 2023-11-02 adb81fb1 prefix (Steve Boyd)
    • 2023-11-02 5b23e3e7 Remove references to old Addons website (#389) (Maxime Rainville)
    • 2023-11-02 7c7ed947 Document new community roles (Guy Sartorelli)
    • 2023-11-02 c04c2e03 Document new hide_pagetypes config (Guy Sartorelli)
    • 2023-10-25 951c9c81 Update 01_Code.md (Andrew Paxley)
    • 2023-10-25 f708c403 Restructure the contributing docs (#385) (Guy Sartorelli)
    • 2023-10-24 3dcdc188 Update maintainer guidelines (#383) (Guy Sartorelli)
    • 2023-10-24 8566c1f0 Update contributing code docs (#379) (Guy Sartorelli)
    • 2023-10-24 caf0c452 Specify what makes a &quot;core&quot; module different (#384) (Guy Sartorelli)
    • 2023-10-24 94aff599 Update triage resources (#382) (Guy Sartorelli)
    • 2023-10-24 a6d4f746 Update documentation about documenation (#380) (Guy Sartorelli)
    • 2023-10-24 4bdfce04 Update issues/bugs page (#378) (Guy Sartorelli)
    • 2023-10-24 71785917 Update translation doc (#381) (Guy Sartorelli)
    • 2023-10-19 4e669f12 Create new users with random passwords (Steve Boyd)
    • 2023-10-17 36f9313a Update eagerloading docs to explicitly say no relation filter (#376) (Guy Sartorelli)
    • 2023-10-17 a9966929 Mention that SS_TRUSTED_PROXY_IPS supports subnets (Johannes Hammersen)
    • 2023-10-02 c6525f22 Document ORM changes for CMS 5.2 (#351) (Guy Sartorelli)
    • 2023-09-25 ce291746 add errorpage allowed_error_codes to 5.2.0 changelog (Andrew Paxley)
    • 2023-09-19 2177d6a9 Document deprecation of old password encryptors (#348) (Guy Sartorelli)
  • silverstripe/totp-authenticator (5.1.0 -> 5.2.0)

    • 2024-04-09 3f8e3a3 Linting (Steve Boyd)
  • silverstripe/mfa (5.1.0 -> 5.2.0)

    • 2024-04-09 27ed519 Change colon to dash (Steve Boyd)
    • 2024-04-09 8fa7de5 Linting (Steve Boyd)
  • silverstripe/webauthn-authenticator (5.1.0 -> 5.2.0)

    • 2024-04-09 39809c7 Linting (Steve Boyd)
  • silverstripe/linkfield (3.0.0-beta1 -> 4.0.0)

    • 2024-02-25 d820d0b Fix docs links in readme (Guy Sartorelli)
    • 2024-02-20 7c11469 Link field User manual (Sabina Talipova)
    • 2024-02-18 a79f97d Provide proper developer documentation (#224) (Guy Sartorelli)
    • 2024-02-13 2b0eef1 Automatic publishing of linked pages and files (Steve Boyd)
    • 2024-02-12 c5f91c4 Update PHPDocs (Guy Sartorelli)
    • 2023-12-05 22fcdcc Update PHPDoc for link models (#136) (Guy Sartorelli)
    • 2023-12-05 5b86669 Update sentence in README (Steve Boyd)
    • 2023-11-29 cc21f8a Update README (Guy Sartorelli)

Translations

  • silverstripe/assets (2.1.0 -> 2.2.0)

    • 2024-02-08 577d3f5 Update translations (#591) (Guy Sartorelli)
    • 2024-02-07 65c5d2a Update translations (#590) (Guy Sartorelli)
  • silverstripe/framework (5.1.0 -> 5.2.0)

    • 2024-02-08 c40602957 Update translations (#11130) (Guy Sartorelli)
    • 2024-02-07 f952183cd Update translations (#11126) (Guy Sartorelli)
    • 2024-02-06 26273bf37 Update translations (#11125) (Guy Sartorelli)
    • 2023-11-06 3c98264f8 Update translations (Steve Boyd)
    • 2023-11-03 5ff6811b0 Update translations (Steve Boyd)
  • silverstripe/mimevalidator (3.0.0 -> 3.1.0)

    • 2024-02-07 7fd4a96 Update translations (#72) (Guy Sartorelli)
  • silverstripe/admin (2.1.0 -> 2.2.0)

    • 2024-03-06 e2a7f456 Add missing js translation strings to src/en.json file (Peter Schiffer)
    • 2024-02-26 09b51af1 Make Search options string translatable in SearchBox.js (Peter Schiffer)
    • 2024-02-08 b4f13ed4 Update translations (#1675) (Guy Sartorelli)
    • 2024-02-07 29e978be Update translations (#1673) (Guy Sartorelli)
    • 2023-11-06 1c78d8f6 Update translations (Steve Boyd)
    • 2023-11-05 9463da40 Update translations (Steve Boyd)
  • silverstripe/asset-admin (2.1.0 -> 2.2.0)

    • 2024-02-08 2a4a4a3d Update translations (#1442) (Guy Sartorelli)
    • 2024-02-06 55c1b3f2 Update translations (#1439) (Guy Sartorelli)
    • 2023-11-07 7e9d7cd7 Update translations (Steve Boyd)
  • silverstripe/campaign-admin (2.1.0 -> 2.2.0)

    • 2024-02-07 7d3c679 Update translations (#294) (Guy Sartorelli)
  • silverstripe/versioned-admin (2.1.0 -> 2.2.0)

    • 2024-02-08 9f01c01 Update translations (#324) (Guy Sartorelli)
    • 2024-02-07 6e9c8e8 Update translations (#322) (Guy Sartorelli)
  • silverstripe/cms (5.1.0 -> 5.2.0)

    • 2024-02-08 ac348693 Update translations (#2921) (Guy Sartorelli)
    • 2024-02-07 9dfc5dea Update translations (#2920) (Guy Sartorelli)
    • 2023-11-06 a51effa2 Update translations (Steve Boyd)
  • silverstripe/errorpage (2.1.0 -> 2.2.0)

    • 2024-02-08 14ce510 Update translations (#101) (Guy Sartorelli)
    • 2024-02-06 df9b24b Update translations (#98) (Guy Sartorelli)
    • 2023-11-06 8660060 Update translations (Steve Boyd)
  • silverstripe/reports (5.1.0 -> 5.2.0)

    • 2024-02-08 c9c6c3ff Update translations (#176) (Guy Sartorelli)
    • 2024-02-07 f5b5daa7 Update translations (#175) (Guy Sartorelli)
  • silverstripe/siteconfig (5.1.0 -> 5.2.0)

    • 2024-02-08 e3c7621e Update translations (#156) (Guy Sartorelli)
    • 2024-02-07 3a46ee94 Update translations (#155) (Guy Sartorelli)
    • 2023-11-06 d3073a87 Update translations (Steve Boyd)
    • 2023-11-03 5842dac1 Update translations (Steve Boyd)
  • silverstripe/versioned (2.1.0 -> 2.2.0)

    • 2024-02-08 6871553 Update translations (#437) (Guy Sartorelli)
    • 2024-02-07 a323d94 Update translations (#435) (Guy Sartorelli)
    • 2024-02-06 da1ba52 Update translations (#434) (Guy Sartorelli)
  • silverstripe/session-manager (2.1.0 -> 2.2.0)

    • 2024-02-08 cc59d9c Update translations (#182) (Guy Sartorelli)
    • 2024-02-07 3e98627 Update translations (#181) (Guy Sartorelli)
  • silverstripe/login-forms (5.1.0 -> 5.2.0)

    • 2024-02-08 f9738e1 Update translations (#166) (Guy Sartorelli)
    • 2024-02-07 86f6214 Update translations (#165) (Guy Sartorelli)
  • silverstripe/documentconverter (3.1.0 -> 3.2.0)

    • 2024-02-07 1bd09d5 Update translations (#69) (Guy Sartorelli)
  • silverstripe/iframe (3.1.0 -> 3.2.0)

    • 2024-02-07 a8243f3 Update translations (#80) (Guy Sartorelli)
  • silverstripe/taxonomy (3.1.0 -> 3.2.0)

    • 2024-02-07 241c257 Update translations (#105) (Guy Sartorelli)
    • 2023-11-06 2711d00 Update translations (Steve Boyd)
  • silverstripe/blog (4.1.0 -> 4.2.0)

    • 2024-02-07 95a2808 Update translations (#742) (Guy Sartorelli)
  • silverstripe/spamprotection (4.1.0 -> 4.2.0)

    • 2024-02-07 5badc34 Update translations (#111) (Guy Sartorelli)
  • silverstripe/contentreview (5.1.0 -> 5.2.0)

    • 2024-02-07 bb3eec1 Update translations (#223) (Guy Sartorelli)
  • silverstripe/sharedraftcontent (3.1.0 -> 3.2.0)

    • 2024-02-07 5531318 Update translations (#225) (Guy Sartorelli)
  • symbiote/silverstripe-advancedworkflow (6.1.0 -> 6.2.0)

    • 2024-02-07 e147a4d Update translations (#520) (Guy Sartorelli)
    • 2023-11-06 5efa077 Update translations (Steve Boyd)
  • silverstripe/segment-field (3.1.0 -> 3.2.0)

    • 2024-02-07 8e0e850 Update translations (#98) (Guy Sartorelli)
  • silverstripe/userforms (6.1.0 -> 6.2.0)

    • 2024-02-07 d070e7d Update translations (#1265) (Guy Sartorelli)
    • 2023-11-06 b9df907 Update translations (Steve Boyd)
  • silverstripe/externallinks (3.1.0 -> 3.2.0)

    • 2024-02-07 b12e686 Update translations (#120) (Guy Sartorelli)
  • silverstripe/securityreport (3.0.0 -> 3.1.0)

    • 2024-02-07 51c745e Update translations (#75) (Guy Sartorelli)
  • silverstripe/versionfeed (3.1.0 -> 3.2.0)

    • 2024-02-07 8287278 Update translations (#99) (Guy Sartorelli)
  • dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0)

    • 2024-02-07 e1d6370 Update translations (#1144) (Guy Sartorelli)
  • silverstripe/hybridsessions (3.0.2 -> 3.0.3)

    • 2024-02-06 402c6e4 Update translations (Guy Sartorelli)
  • silverstripe/registry (3.1.0 -> 3.2.0)

    • 2024-02-07 8209e0d Update translations (#93) (Guy Sartorelli)
  • silverstripe/totp-authenticator (5.1.0 -> 5.2.0)

    • 2024-02-07 bc196b2 Update translations (#145) (Guy Sartorelli)
  • silverstripe/mfa (5.1.0 -> 5.2.0)

    • 2023-11-07 9390a7d Update translations (Steve Boyd)
  • silverstripe/crontask (3.0.2 -> 3.0.3)

    • 2024-02-07 1d2db78 Update translations (#86) (Guy Sartorelli)
  • silverstripe/gridfieldqueuedexport (3.1.0 -> 3.2.0)

    • 2024-02-07 299929e Update translations (#98) (Guy Sartorelli)
  • silverstripe/realme (5.2.0 -> 5.3.0)

    • 2023-11-06 96974a0 Update translations (Steve Boyd)
    • 2023-11-03 f420ac8 Update translations (Steve Boyd)
  • silverstripe/webauthn-authenticator (5.1.0 -> 5.2.0)

    • 2023-11-07 81e45fe Update translations (Steve Boyd)
  • silverstripe/subsites (3.1.0 -> 3.2.0)

    • 2024-02-07 d66e723 Update translations (#557) (Guy Sartorelli)
    • 2023-11-06 dd3073f Update translations (Steve Boyd)
  • silverstripe/lumberjack (3.0.2 -> 3.1.0)

    • 2024-02-07 cae40f4 Update translations (#140) (Guy Sartorelli)
  • dnadesign/silverstripe-elemental-userforms (4.1.0 -> 4.1.1)

    • 2024-02-07 ce60338 Update translations (#88) (Guy Sartorelli)
  • symbiote/silverstripe-gridfieldextensions (4.0.3 -> 4.0.5)

    • 2024-02-07 c84d8af Update translations (#381) (Guy Sartorelli)
  • symbiote/silverstripe-queuedjobs (5.0.2 -> 5.1.0)

    • 2024-02-07 892dbba Update translations (#419) (Guy Sartorelli)

Other changes

  • silverstripe/assets (2.1.0 -> 2.2.0)

    • 2023-10-25 63bd612 Add support for braille format files (#574) (Ed Wilde)
  • silverstripe/framework (5.1.0 -> 5.2.0)

    • 2024-03-19 6ede0316b Revert &quot;Use field editorconfig when sanitising content&quot; (#11180) (Guy Sartorelli)
    • 2024-03-04 eb4ef623a check for empty salt (Thomas Portelange)
    • 2024-02-27 59177dd31 Delete tests/php/Core/Manifest/fixtures/VersionProviderTest directory (Thomas Portelange)
    • 2024-02-27 2921d68a5 Update composer.json (Thomas Portelange)
    • 2024-02-26 a06ce0493 use VersionParser instead of comparator (Thomas Portelange)
    • 2024-02-26 80e197fe4 make error message more readable (Thomas Portelange)
    • 2024-02-26 a1d1e977c use composer/semver (Thomas Portelange)
    • 2024-02-26 071333f77 add composer/semver (Thomas Portelange)
    • 2024-02-26 68b79e11e missing import (Thomas Portelange)
    • 2024-02-26 269692202 update return type (Thomas Portelange)
    • 2024-02-26 1cf3dde9f Update src/Core/Manifest/VersionProvider.php (Thomas Portelange)
    • 2024-02-26 2b64e98af Update VersionProviderTest.php (Thomas Portelange)
    • 2024-02-26 b53148c03 add deprecation, remove class_exists (Thomas Portelange)
    • 2024-02-26 2600b2661 add composer-runtime-api (Thomas Portelange)
    • 2024-02-26 e649310f7 Update src/Core/Manifest/VersionProvider.php (Thomas Portelange)
    • 2024-02-26 a2486c085 Update src/Core/Manifest/VersionProvider.php (Thomas Portelange)
    • 2024-02-26 a19671950 Update src/Core/Manifest/VersionProvider.php (Thomas Portelange)
    • 2024-02-23 bc0912718 use composer runtime api (Thomas Portelange)
    • 2024-02-08 e0107e020 Update src/ORM/DataQuery.php (Thomas Portelange)
    • 2024-02-08 2ac68a55a rename var (Thomas Portelange)
    • 2023-12-12 b6c646ffb Also remove the unused $last_idx assignment (Ed Wilde)
    • 2023-12-12 81541db89 Remove unused line in findTab() (Ed Wilde)
    • 2023-11-09 b9da08a30 Update task-not-found messaging (Andrew Paxley)
    • 2023-11-09 c77a77d58 Flip canView logic and combine into taskEnabled check (Andrew Paxley)
    • 2023-10-15 e5eb98cc3 Use field editorconfig when sanitising content (Bernie Hamlin)
    • 2023-10-11 af536a88d Add support for braille format files (Ed Wilde)
  • silverstripe/mimevalidator (3.0.0 -> 3.1.0)

    • 2023-10-11 25bfefc Add support for braille format files (Ed Wilde)
  • silverstripe/admin (2.1.0 -> 2.2.0)

    • 2024-02-15 6f468685 rename var (Thomas Portelange)
    • 2024-02-14 6bcccbbf use innerText, rename (Thomas Portelange)
    • 2024-02-07 4c0247cd Revert &quot;TLN Update translations (#1673)&quot; (Steve Boyd)
    • 2023-10-27 3c969733 Define a minimum width for the logo (Ed Wilde)
    • 2023-10-27 050b8b93 Add the new CMS logo locally (Ed Wilde)
    • 2023-10-12 7cda7c7e Update Storybook logo to the 5.1 OSS logo (Ed Wilde)
  • silverstripe/asset-admin (2.1.0 -> 2.2.0)

    • 2023-12-12 4fe280ed Update sort param (Vivienne Tubbs)
  • silverstripe/cms (5.1.0 -> 5.2.0)

    • 2023-01-11 79acadc0 PATCH: remove jQuery reference (Nicolaas / Sunny Side Up)
    • 2023-01-09 8d403a1d PATCH: fixing jquery link to thirdparty/jquery-query/jquery.query.js (Nicolaas / Sunny Side Up)
  • silverstripe/versioned (2.1.0 -> 2.2.0)

    • 2023-10-30 7eddb6b Apply suggestions from code review (Mojmir Fendek)
    • 2023-10-19 f21edce PR fixes. (Mojmir Fendek)
    • 2023-10-19 5ed82fe PR fixes. (Mojmir Fendek)
    • 2023-10-19 76568ac PR fixes. (Mojmir Fendek)
    • 2023-10-18 d6490ce PR fixes. (Mojmir Fendek)
    • 2023-10-16 d2efe5a PR fixes. (Mojmir Fendek)
    • 2021-04-06 97d1ac6 PR fixes. (Mojmir Fendek)
    • 2021-04-06 dd2674f Update src/RecursiveStagesService.php (Mojmir Fendek)
  • silverstripe/graphql (5.1.0 -> 5.2.0)

    • 2023-10-19 addf529 add canInit method and CAN_DEV_GRAPHQL permissions (Andrew Paxley)
  • silverstripe/login-forms (5.1.0 -> 5.2.0)

    • 2023-09-11 b0d6c3e Small typo in README.md (Vinnie)
  • silverstripe/tagfield (3.1.0 -> 3.2.0)

    • 2023-09-28 9257956 fixed reference issue now that we've changed ref from createRef() (josephlewisnz)
    • 2023-09-28 f7af10a build (josephlewisnz)
  • silverstripe/blog (4.1.0 -> 4.2.0)

    • 2023-12-18 b2f0d12 Remove icons from gridfield add button (Mohamed Alsharaf)
    • 2023-11-20 d6375c5 addition to #685 also, respect mb in controller (Lukas Erni)
    • 2023-11-16 926ce56 remove plus icon for consistency (Lukas Erni)
  • silverstripe/spamprotection (4.1.0 -> 4.2.0)

    • 2023-09-11 2210891 Revert &quot;fix: if no spam protector set, fail sliently&quot; (Guy Sartorelli)
  • colymba/gridfield-bulk-editing-tools (4.0.0 -> 4.0.2)

    • 2023-06-01 3006076 SS5 Fix: Replace json2array with json_decode (James Cocker)
  • silverstripe/sharedraftcontent (3.1.0 -> 3.2.0)

    • 2023-10-16 58a795e Fixes internal infinite recursion on Nginx/PHP-FPM environments (Nathan J. Brauer)
  • silverstripe/userforms (6.1.0 -> 6.2.0)

    • 2023-11-12 26a4816 Add extension hook to control file attachments per recipient and field (Michal Kleiner)
  • dnadesign/silverstripe-elemental (5.1.0 -> 5.2.0)

    • 2023-09-21 eeb4546 Revert Github specific markdown to maintain portability (Ed Wilde)
  • silverstripe/developer-docs (5.1.0 -> 5.2.0)

    • 2023-12-14 844f4755 Update 05_Simple_Contact_Form.md (erangaddd)
    • 2023-12-06 c516a99b Update 04_Upgrading_project.md (Tim)
    • 2023-11-28 deacfc1a Fixed: link to formatting/modifying/casting variables (Patrick Côté)
    • 2023-11-02 0033a971 Update a example code comment (Nate Devereux)
    • 2023-10-19 3e546176 Apply suggestions from code review (Johannes Hammersen)
  • silverstripe/subsites (3.1.0 -> 3.2.0)

    • 2023-09-06 e020766 Revert &quot;Switch to listing views of subsite-filtered sections&quot; (Steve Boyd)
    • 2022-09-27 8ba7070 Switch to listing views of subsite-filtered sections (Michael van Schaik)
  • symbiote/silverstripe-gridfieldextensions (4.0.3 -> 4.0.5)

    • 2023-03-07 1637e78 Make link color white. (Robin)
  • tractorcow/silverstripe-fluent (7.0.0 -> 7.1.0)

    • 2024-02-18 ee8d7d1 use AsoluteLink method for xml styles to make sure link works with SS5 trailings slash setup, fixes #818 (Florian Thoma)
    • 2023-10-17 cf27342 MSSQL database doesn't allow aliases in GROUP BY (Klemen Dolinšek)
    • 2023-04-12 69a9df5 skip empty 'where' clauses (mikey-harveycameron)
  • silverstripe/linkfield (3.0.0-beta1 -> 4.0.0)

    • 2023-10-18 653071d Fixing typo of $Link.OpenInew to $Link.OpenInNew (Daniel Hurd)
    • 2023-08-30 245cdcc MISC: Docs update. (Mojmir Fendek)
    • 2023-07-28 437a915 MISC: File link test. (Mojmir Fendek)
    • 2022-10-27 8f1a258 Add PhoneField. Add migration helpers from Linkable (#48) (Chris Penny)
    • 2022-06-29 636c679 PHP 8.1: Suppress deprecation notice (Chris Penny)
    • 2022-05-13 c1f42f2 Debug. (Mojmir Fendek)
    • 2021-11-16 1068b78 Update namespace. Add table_name config to all models (#39) (Chris Penny)