From 065be7071767a5355b3ae78b0b559b566cc2ae58 Mon Sep 17 00:00:00 2001 From: Maxime Rainville Date: Tue, 21 Sep 2021 22:29:32 +1200 Subject: [PATCH 1/7] DOC Remove reference to being able to test GraphQL v4 without inlining recipes and tweak swiftmailer doc --- docs/en/04_Changelogs/4.9.0.md | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/docs/en/04_Changelogs/4.9.0.md b/docs/en/04_Changelogs/4.9.0.md index 65580940c..21146136c 100644 --- a/docs/en/04_Changelogs/4.9.0.md +++ b/docs/en/04_Changelogs/4.9.0.md @@ -100,8 +100,7 @@ Upgrading to Recipe {{ version }} is recommended for all sites. This upgrade can - [Features and enhancements](#features-and-enhancements) - [Image lazy loading](#image-lazy-loading) - [Manage your CMS sessions across devices](#session-manager) - - [Default mail transport upgraded to sendmail](#sendmail) - - [Support for silverstripe/graphql v4](#graphqlv4) + - [Upgrade to Swiftmailer version 6](#swiftmailer) - [Other new features](#other-features) - [Bugfixes](#bugfixes) @@ -194,25 +193,20 @@ Functional tests should use `$this->logInAs($member)` and `$this->logOut()` when Review the [Functional Testing developer documentation](/developer_guides/testing/functional_testing/#loginas) for more details on `logInAs()` and `logOut()`. -### Default mail transport upgraded to sendmail {#sendmail} +### Upgrade to Swiftmailer version 6 {#swiftmailer} -Silverstripe CMS provides an API over the top of the [SwiftMailer](http://swiftmailer.org/) PHP library which comes with an extensive list of "transports" for sending mail via different services. +Silverstripe CMS provides an API over the top of the [SwiftMailer](http://swiftmailer.org/) PHP library which comes with an extensive list of "transports" for sending mail via different services. Silverstripe CMS 4.9.0 upgrades to Swiftmailer version 6 from version 5. -Prior to 4.9.0, Silverstripe CMS 4 defaulted to using the built-in PHP `mail()` command via a deprecated class `Swift_MailTransport`. However, using this layer is less secure and is strongly discouraged. +#### Moving away from _Swift_MailTransport_ +Prior to 4.9.0, Silverstripe CMS 4 defaulted to using the built-in PHP `mail()` command via a deprecated class `Swift_MailTransport`. However, the Swiftmailer maintainers have decided to remove this class because of some inherent security flaw in the way the PHP mail function handles the `from` header. -Installations of Silverstripe CMS setup using silverstripe/installer 4.9.0 or greater default to using the more secure class `Swift_SendmailTransport` which uses a `sendmail` binary. +Read this [GitHub comment by a SwiftMailer maintainer](https://github.com/swiftmailer/swiftmailer/issues/866#issuecomment-289291228) for a detailed explanation of the weakness of the PHP mail function. -It's highly recommended that existing Silverstripe CMS installation still using `Swift_MailTransport` upgrade to using `Swift_SendmailTransport` or another available transport, such as `Swift_SmtpTransport`. Details on how to use these classes are available in the [email section](https://docs.silverstripe.org/en/4/developer_guides/email/) of the developer docs. +We have included the deprecated `Swift_MailTransport` class in the `silverstripe/framework` codebase to ensure backward compatibility for project upgrading to Silverstripe Recipe CMS 4.9.0. However, using this layer is less secure and is strongly discouraged. -### Support for silverstripe/graphql v4 {#graphqlv4} +New Silverstripe CMS project created from `silverstripe/installer` 4.9.0 or greater will default to using the more secure class `Swift_SendmailTransport` which uses a `sendmail` binary. -The Silverstripe CMS 4.8.0 release added support for the experimental `silverstripe/graphql` v4 module. We made it easier for early adopters to run `silverstripe/graphql` v4 in this release: - -- Upgrade to the Silverstripe CMS 4.9.0 release. -- Confirm your project `composer.json` file has a `"minimum-stability": "dev"` key. -- Explicitely require `silverstripe/graphql` v4 by running `composer require silverstripe/graphql:^4` - -You don't need to inline any recipes anymore. +It's highly recommended that existing Silverstripe CMS installation using `Swift_MailTransport` upgrade to `Swift_SendmailTransport` or another available transport, such as `Swift_SmtpTransport`. Details on how to use these classes are available in the [email section](https://docs.silverstripe.org/en/4/developer_guides/email/) of the developer docs. ### Other new features From 1e5414eac7ba9800b0848da2422f4d7033d562fc Mon Sep 17 00:00:00 2001 From: Michal Kleiner Date: Mon, 30 Aug 2021 19:02:03 +1200 Subject: [PATCH 2/7] FIX Use correct ancestor class when querying for stage and live children MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The right ancestor class that has the Hierarchy extension applied needs to be used since it doesn’t have to be the class directly extending from DataObject, which means the ID and ParentID columns might be in different tables. --- src/ORM/Hierarchy/Hierarchy.php | 44 +++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/src/ORM/Hierarchy/Hierarchy.php b/src/ORM/Hierarchy/Hierarchy.php index 9760155f0..b482bc025 100644 --- a/src/ORM/Hierarchy/Hierarchy.php +++ b/src/ORM/Hierarchy/Hierarchy.php @@ -4,6 +4,8 @@ namespace SilverStripe\ORM\Hierarchy; use SilverStripe\Admin\LeftAndMain; use SilverStripe\Control\Controller; +use SilverStripe\Core\ClassInfo; +use SilverStripe\Core\Extensible; use SilverStripe\ORM\DataList; use SilverStripe\ORM\SS_List; use SilverStripe\ORM\ValidationResult; @@ -333,7 +335,7 @@ class Hierarchy extends DataExtension if (empty($options['numChildrenMethod']) || $options['numChildrenMethod'] === 'numChildren') { $idList = is_array($recordList) ? $recordList : ($recordList instanceof DataList ? $recordList->column('ID') : null); - self::prepopulate_numchildren_cache($this->owner->baseClass(), $idList); + self::prepopulate_numchildren_cache($this->getHierarchyBaseClass(), $idList); } $this->owner->extend('onPrepopulateTreeDataCache', $recordList, $options); @@ -407,25 +409,47 @@ class Hierarchy extends DataExtension && in_array($controller->getAction(), ["treeview", "listview", "getsubtree"]); } + /** + * Find the first class in the inheritance chain that has Hierarchy extension applied + * + * @return string + */ + private function getHierarchyBaseClass(): string + { + $ancestry = ClassInfo::ancestry($this->owner); + $ancestorClass = array_shift($ancestry); + while ($ancestorClass && !Extensible::has_extension($ancestorClass, self::class)) { + $ancestorClass = array_shift($ancestry); + } + + return $ancestorClass; + } + /** * Return children in the stage site. * * @param bool $showAll Include all of the elements, even those not shown in the menus. Only applicable when * extension is applied to {@link SiteTree}. - * @param bool $skipParentIDFilter Set to true to supress the ParentID and ID where statements. + * @param bool $skipParentIDFilter Set to true to suppress the ParentID and ID where statements. * @return DataList */ public function stageChildren($showAll = false, $skipParentIDFilter = false) { - $hideFromHierarchy = $this->owner->config()->hide_from_hierarchy; - $hideFromCMSTree = $this->owner->config()->hide_from_cms_tree; - $baseClass = $this->owner->baseClass(); - $baseTable = $this->owner->baseTable(); - $staged = DataObject::get($baseClass)->where(sprintf( + /** @var DataObject|Hierarchy $owner */ + $owner = $this->owner; + $hideFromHierarchy = $owner->config()->hide_from_hierarchy; + $hideFromCMSTree = $owner->config()->hide_from_cms_tree; + $class = $this->getHierarchyBaseClass(); + + $schema = DataObject::getSchema(); + $tableForParentID = $schema->tableForField($class, 'ParentID'); + $tableForID = $schema->tableForField($class, 'ID'); + + $staged = DataObject::get($class)->where(sprintf( '%s.%s <> %s.%s', - Convert::symbol2sql($baseTable), + Convert::symbol2sql($tableForParentID), Convert::symbol2sql("ParentID"), - Convert::symbol2sql($baseTable), + Convert::symbol2sql($tableForID), Convert::symbol2sql("ID") )); @@ -466,7 +490,7 @@ class Hierarchy extends DataExtension $hideFromHierarchy = $owner->config()->hide_from_hierarchy; $hideFromCMSTree = $owner->config()->hide_from_cms_tree; - $children = DataObject::get($owner->baseClass()) + $children = DataObject::get($this->getHierarchyBaseClass()) ->filter('ParentID', (int)$owner->ID) ->exclude('ID', (int)$owner->ID) ->setDataQueryParam([ From 7226d7fab6e3e10566892f5a2222d57de3266eae Mon Sep 17 00:00:00 2001 From: Michal Kleiner Date: Sat, 25 Sep 2021 00:17:25 +1200 Subject: [PATCH 3/7] ENH Add tests for Hierarchy extension when applied to a subclass --- tests/php/Forms/TreeDropdownFieldTest.php | 70 ++++++++++++++++++- tests/php/Forms/TreeDropdownFieldTest.yml | 26 +++++++ tests/php/ORM/HierarchyTest.php | 39 +++++++++++ tests/php/ORM/HierarchyTest.yml | 17 +++++ .../HierarchyOnSubclassTestObject.php | 30 ++++++++ .../HierarchyOnSubclassTestSubObject.php | 18 +++++ 6 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 tests/php/ORM/HierarchyTest/HierarchyOnSubclassTestObject.php create mode 100644 tests/php/ORM/HierarchyTest/HierarchyOnSubclassTestSubObject.php diff --git a/tests/php/Forms/TreeDropdownFieldTest.php b/tests/php/Forms/TreeDropdownFieldTest.php index ec349fa0b..17de5c8d3 100644 --- a/tests/php/Forms/TreeDropdownFieldTest.php +++ b/tests/php/Forms/TreeDropdownFieldTest.php @@ -12,6 +12,8 @@ use SilverStripe\Forms\FieldList; use SilverStripe\Forms\Form; use SilverStripe\Forms\TreeDropdownField; use SilverStripe\ORM\DataObject; +use SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestObject; +use SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject; use SilverStripe\ORM\Tests\HierarchyTest\TestObject; class TreeDropdownFieldTest extends SapphireTest @@ -20,7 +22,9 @@ class TreeDropdownFieldTest extends SapphireTest protected static $fixture_file = 'TreeDropdownFieldTest.yml'; protected static $extra_dataobjects = [ - TestObject::class + TestObject::class, + HierarchyOnSubclassTestObject::class, + HierarchyOnSubclassTestSubObject::class, ]; public function testSchemaStateDefaults() @@ -137,6 +141,37 @@ class TreeDropdownFieldTest extends SapphireTest $this->assertEquals($expectedNodeIDs, $actualNodeIDs); } + public function testTreeSearchJsonFlatlistWithLowNodeThresholdUsingSubObject() + { + // Initialise our TreeDropDownField + $field = new TreeDropdownField('TestTree', 'Test tree - Hierarchy on subclass', HierarchyOnSubclassTestSubObject::class); + $field->config()->set('node_threshold_total', 2); + + // Search for all Test object matching our criteria + $request = new HTTPRequest( + 'GET', + 'url', + ['search' => 'SubObject', 'format' => 'json', 'flatList' => '1'] + ); + $request->setSession(new Session([])); + $response = $field->tree($request); + $tree = json_decode($response->getBody(), true); + $actualNodeIDs = array_column($tree['children'], 'id'); + + // Get the list of expected node IDs from the YML Fixture + $expectedNodeIDs = array_map( + function ($key) { + return $this->objFromFixture(HierarchyOnSubclassTestSubObject::class, $key)->ID; + }, + ['four', 'fourB', 'fourA2'] // Those are the identifiers of the object we expect our search to find + ); + + sort($actualNodeIDs); + sort($expectedNodeIDs); + + $this->assertEquals($expectedNodeIDs, $actualNodeIDs); + } + public function testTreeSearch() { $field = new TreeDropdownField('TestTree', 'Test tree', Folder::class); @@ -233,6 +268,39 @@ class TreeDropdownFieldTest extends SapphireTest ); } + public function testTreeSearchUsingSubObject() + { + $field = new TreeDropdownField('TestTree', 'Test tree', HierarchyOnSubclassTestSubObject::class); + + // case-insensitive search against keyword 'SubObject' for objects that have Hierarchy extension + // applied to a class that doesn't directly inherit from DataObject + $request = new HTTPRequest('GET', 'url', ['search' => 'SubObject']); + $request->setSession(new Session([])); + $response = $field->tree($request); + $tree = $response->getBody(); + + $subObject1 = $this->objFromFixture(HierarchyOnSubclassTestSubObject::class, 'four'); + $subObject1ChildB = $this->objFromFixture(HierarchyOnSubclassTestSubObject::class, 'fourB'); + + $parser = new CSSContentParser($tree); + $cssPath = 'ul.tree li#selector-TestTree-' . $subObject1->ID . ' li#selector-TestTree-' . $subObject1ChildB->ID . ' a'; + $firstResult = $parser->getBySelector($cssPath); + $this->assertEquals( + $subObject1ChildB->Name, + (string)$firstResult[0], + $subObject1ChildB->Name . ' is found, nested under ' . $subObject1->Name + ); + + // other objects which don't contain the keyword 'SubObject' are not returned in search results + $subObject2 = $this->objFromFixture(HierarchyOnSubclassTestSubObject::class, 'five'); + $cssPath = 'ul.tree li#selector-TestTree-' . $subObject2->ID . ' a'; + $noResult = $parser->getBySelector($cssPath); + $this->assertEmpty( + $noResult, + $subObject2 . ' is not found' + ); + } + public function testReadonly() { $field = new TreeDropdownField('TestTree', 'Test tree', File::class); diff --git a/tests/php/Forms/TreeDropdownFieldTest.yml b/tests/php/Forms/TreeDropdownFieldTest.yml index 2207cc300..66ced1fc9 100644 --- a/tests/php/Forms/TreeDropdownFieldTest.yml +++ b/tests/php/Forms/TreeDropdownFieldTest.yml @@ -62,3 +62,29 @@ SilverStripe\ORM\Tests\HierarchyTest\TestObject: ParentID: =>SilverStripe\ORM\Tests\HierarchyTest\TestObject.twoA three: Title: Three MatchSearchCriteria +SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject: + four: + Title: Four SubObject + fourA: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.four + Title: Child A of Four + fourB: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.four + Title: Child B of Four SubObject + fourA1: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.fourA + Title: Child 1 of Child A of Four + fourA2: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.fourA + Title: Child 2 of Child A of Four SubObject + fourB1: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.fourB + Title: Child 1 of Child B of Four + fourB2: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.fourB + Title: Child 2 of Child B of Four + fourB3: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.fourB + Title: Child 3 of Child B of Four + five: + Title: Five diff --git a/tests/php/ORM/HierarchyTest.php b/tests/php/ORM/HierarchyTest.php index f4b859d99..f22a313ad 100644 --- a/tests/php/ORM/HierarchyTest.php +++ b/tests/php/ORM/HierarchyTest.php @@ -14,6 +14,8 @@ class HierarchyTest extends SapphireTest HierarchyTest\TestObject::class, HierarchyTest\HideTestObject::class, HierarchyTest\HideTestSubObject::class, + HierarchyTest\HierarchyOnSubclassTestObject::class, + HierarchyTest\HierarchyOnSubclassTestSubObject::class, ]; public static function getExtraDataObjects() @@ -145,6 +147,43 @@ class HierarchyTest extends SapphireTest ); } + public function testNumChildrenHierarchyOnSubclass() + { + /** @var HierarchyTest\HierarchyOnSubclassTestObject $obj5 */ + $obj5 = $this->objFromFixture(HierarchyTest\HierarchyOnSubclassTestObject::class, 'obj5'); + + $this->assertFalse( + $obj5->hasMethod('numChildren'), + 'numChildren() cannot be called on object without Hierarchy extension' + ); + + /** @var HierarchyTest\HierarchyOnSubclassTestSubObject $obj5a */ + $obj5a = $this->objFromFixture(HierarchyTest\HierarchyOnSubclassTestSubObject::class, 'obj5a'); + /** @var HierarchyTest\HierarchyOnSubclassTestSubObject $obj5b */ + $obj5b = $this->objFromFixture(HierarchyTest\HierarchyOnSubclassTestSubObject::class, 'obj5b'); + + $this->assertEquals(2, $obj5a->numChildren()); + $this->assertEquals(1, $obj5b->numChildren()); + + $obj5bChild2 = new HierarchyTest\HierarchyOnSubclassTestSubObject(); + $obj5bChild2->ParentID = $obj5b->ID; + $obj5bChild2->write(); + $this->assertEquals( + $obj5b->numChildren(false), + 2, + 'numChildren() caching can be disabled through method parameter' + ); + $obj5bChild3 = new HierarchyTest\HierarchyOnSubclassTestSubObject(); + $obj5bChild3->ParentID = $obj5b->ID; + $obj5bChild3->write(); + $obj5b->flushCache(); + $this->assertEquals( + $obj5b->numChildren(), + 3, + 'numChildren() caching can be disabled by flushCache()' + ); + } + public function testLoadDescendantIDListIntoArray() { /** @var HierarchyTest\TestObject $obj2 */ diff --git a/tests/php/ORM/HierarchyTest.yml b/tests/php/ORM/HierarchyTest.yml index cd2e66576..a8a9d8c3b 100644 --- a/tests/php/ORM/HierarchyTest.yml +++ b/tests/php/ORM/HierarchyTest.yml @@ -53,3 +53,20 @@ SilverStripe\ORM\Tests\HierarchyTest\HideTestObject: SilverStripe\ORM\Tests\HierarchyTest\HideTestSubObject: obj4b: Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HideTestObject.obj4 +SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestObject: + obj5: + Title: Obj 5 +SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject: + obj5a: + Title: Obj 5a + obj5b: + Title: Obj 5b + obj5aa: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.obj5a + Title: Obj 5aa + obj5ab: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.obj5a + Title: Obj 5ab + obj5ba: + Parent: =>SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject.obj5b + Title: Obj 5ba diff --git a/tests/php/ORM/HierarchyTest/HierarchyOnSubclassTestObject.php b/tests/php/ORM/HierarchyTest/HierarchyOnSubclassTestObject.php new file mode 100644 index 000000000..48dfdd9a1 --- /dev/null +++ b/tests/php/ORM/HierarchyTest/HierarchyOnSubclassTestObject.php @@ -0,0 +1,30 @@ + 'Varchar' + ]; + + private static $extensions = [ + Versioned::class, + ]; + + private static $default_sort = 'Title ASC'; + + public function cmstreeclasses() + { + return $this->markingClasses(); + } +} diff --git a/tests/php/ORM/HierarchyTest/HierarchyOnSubclassTestSubObject.php b/tests/php/ORM/HierarchyTest/HierarchyOnSubclassTestSubObject.php new file mode 100644 index 000000000..427474942 --- /dev/null +++ b/tests/php/ORM/HierarchyTest/HierarchyOnSubclassTestSubObject.php @@ -0,0 +1,18 @@ + Date: Fri, 24 Sep 2021 22:29:43 +1200 Subject: [PATCH 4/7] MNT Fix minor typos --- src/Forms/TreeDropdownField.php | 2 +- src/ORM/Hierarchy/Hierarchy.php | 6 +++--- tests/php/Forms/TreeDropdownFieldTest.php | 10 +++++----- tests/php/ORM/HierarchyCachingTest.php | 8 ++++---- tests/php/ORM/HierarchyTest.php | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Forms/TreeDropdownField.php b/src/Forms/TreeDropdownField.php index b27dae2e5..a6f21ec14 100644 --- a/src/Forms/TreeDropdownField.php +++ b/src/Forms/TreeDropdownField.php @@ -501,7 +501,7 @@ class TreeDropdownField extends FormField // Begin marking $markingSet->markPartialTree(); - // Explicitely mark our search results if necessary + // Explicitly mark our search results if necessary foreach ($this->searchIds as $id => $marked) { if ($marked) { $object = $this->objectForKey($id); diff --git a/src/ORM/Hierarchy/Hierarchy.php b/src/ORM/Hierarchy/Hierarchy.php index b482bc025..6f6d2e84c 100644 --- a/src/ORM/Hierarchy/Hierarchy.php +++ b/src/ORM/Hierarchy/Hierarchy.php @@ -30,7 +30,7 @@ class Hierarchy extends DataExtension { /** * The lower bounds for the amount of nodes to mark. If set, the logic will expand nodes until it reaches at least - * this number, and then stops. Root nodes will always show regardless of this settting. Further nodes can be + * this number, and then stops. Root nodes will always show regardless of this setting. Further nodes can be * lazy-loaded via ajax. This isn't a hard limit. Example: On a value of 10, with 20 root nodes, each having 30 * children, the actual node count will be 50 (all root nodes plus first expanded child). * @@ -286,7 +286,7 @@ class Hierarchy extends DataExtension /** * Return the number of direct children. By default, values are cached after the first invocation. Can be - * augumented by {@link augmentNumChildrenCountQuery()}. + * augmented by {@link augmentNumChildrenCountQuery()}. * * @param bool $cache Whether to retrieve values from cache * @return int @@ -322,7 +322,7 @@ class Hierarchy extends DataExtension /** * Pre-populate any appropriate caches prior to rendering a tree. * This is used to allow for the efficient rendering of tree views, notably in the CMS. - * In the cace of Hierarchy, it caches numChildren values. Other extensions can provide an + * In the case of Hierarchy, it caches numChildren values. Other extensions can provide an * onPrepopulateTreeDataCache(DataList $recordList = null, array $options) methods to hook * into this event as well. * diff --git a/tests/php/Forms/TreeDropdownFieldTest.php b/tests/php/Forms/TreeDropdownFieldTest.php index 17de5c8d3..3d78c7ab3 100644 --- a/tests/php/Forms/TreeDropdownFieldTest.php +++ b/tests/php/Forms/TreeDropdownFieldTest.php @@ -56,7 +56,7 @@ class TreeDropdownFieldTest extends SapphireTest { $field = new TreeDropdownField('TestTree', 'Test tree', Folder::class); - // case insensitive search against keyword 'sub' for folders + // case-insensitive search against keyword 'sub' for folders $request = new HTTPRequest('GET', 'url', ['search'=>'sub', 'format' => 'json']); $request->setSession(new Session([])); $response = $field->tree($request); @@ -87,7 +87,7 @@ class TreeDropdownFieldTest extends SapphireTest { $field = new TreeDropdownField('TestTree', 'Test tree', Folder::class); - // case insensitive search against keyword 'sub' for folders + // case-insensitive search against keyword 'sub' for folders $request = new HTTPRequest('GET', 'url', ['search'=>'sub', 'format' => 'json', 'flatList' => '1']); $request->setSession(new Session([])); $response = $field->tree($request); @@ -176,7 +176,7 @@ class TreeDropdownFieldTest extends SapphireTest { $field = new TreeDropdownField('TestTree', 'Test tree', Folder::class); - // case insensitive search against keyword 'sub' for folders + // case-insensitive search against keyword 'sub' for folders $request = new HTTPRequest('GET', 'url', ['search'=>'sub']); $request->setSession(new Session([])); $response = $field->tree($request); @@ -214,7 +214,7 @@ class TreeDropdownFieldTest extends SapphireTest $field = new TreeDropdownField('TestTree', 'Test tree', File::class); - // case insensitive search against keyword 'sub' for files + // case-insensitive search against keyword 'sub' for files $request = new HTTPRequest('GET', 'url', ['search'=>'sub']); $request->setSession(new Session([])); $response = $field->tree($request); @@ -340,7 +340,7 @@ class TreeDropdownFieldTest extends SapphireTest $treeBaseID = $this->idFromFixture(Folder::class, 'folder1'); $field = new TreeDropdownField('TestTree', 'Test tree', Folder::class); - // getSchemaDataDefaults needs the field to be attach to a form + // getSchemaDataDefaults needs the field to be attached to a form new Form( null, 'mock', diff --git a/tests/php/ORM/HierarchyCachingTest.php b/tests/php/ORM/HierarchyCachingTest.php index 7f101fb50..2d3de8dfb 100644 --- a/tests/php/ORM/HierarchyCachingTest.php +++ b/tests/php/ORM/HierarchyCachingTest.php @@ -48,10 +48,10 @@ class HierachyCacheTest extends SapphireTest [TestObject::class, 'obj2', true, 2, 'Root object numChildren should count direct children when cache'], [TestObject::class, 'obj3a', false, 2, 'Sub object numChildren should count direct children'], [TestObject::class, 'obj3a', true, 2, 'Sub object numChildren should count direct children when cache'], - [TestObject::class, 'obj3d', false, 0, 'Childess Sub object numChildren should be 0'], - [TestObject::class, 'obj3d', true, 0, 'Childess Sub object numChildren should be 0 when cache'], + [TestObject::class, 'obj3d', false, 0, 'Childless Sub object numChildren should be 0'], + [TestObject::class, 'obj3d', true, 0, 'Childless Sub object numChildren should be 0 when cache'], [HideTestObject::class, 'obj4', false, 1, 'Hidden object should not be included in count'], - [HideTestObject::class, 'obj4', true, 1, 'Hidden object should not be included in couunt when cache'] + [HideTestObject::class, 'obj4', true, 1, 'Hidden object should not be included in count when cache'] ]; } @@ -68,7 +68,7 @@ class HierachyCacheTest extends SapphireTest $this->assertEquals($expected, $actual, $message); if ($cache) { - // When caching is eanbled, try re-accessing the numChildren value to make sure it doesn't change. + // When caching is enabled, try re-accessing the numChildren value to make sure it doesn't change. $actual = $node->numChildren($cache); $this->assertEquals($expected, $actual, $message); } diff --git a/tests/php/ORM/HierarchyTest.php b/tests/php/ORM/HierarchyTest.php index f22a313ad..6d4676377 100644 --- a/tests/php/ORM/HierarchyTest.php +++ b/tests/php/ORM/HierarchyTest.php @@ -258,7 +258,7 @@ class HierarchyTest extends SapphireTest $this->assertEquals('Obj 2 » Obj 2a » Obj 2aa', $obj2aa->getBreadcrumbs()); } - public function testNoHideFromHeirarchy() + public function testNoHideFromHierarchy() { /** @var HierarchyTest\HideTestObject $obj4 */ $obj4 = $this->objFromFixture(HierarchyTest\HideTestObject::class, 'obj4'); @@ -271,7 +271,7 @@ class HierarchyTest extends SapphireTest $this->assertEquals($obj4->liveChildren()->Count(), 2); } - public function testHideFromHeirarchy() + public function testHideFromHierarchy() { HierarchyTest\HideTestObject::config()->update( 'hide_from_hierarchy', From bad4cbef7da6e63538d0dc0385fc6bb122f06d42 Mon Sep 17 00:00:00 2001 From: Maxime Rainville Date: Mon, 4 Oct 2021 11:19:09 +1300 Subject: [PATCH 5/7] DOC Explain how to get off CWP --- .../03_Upgrading/03_Migrating_off_CWP.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 docs/en/03_Upgrading/03_Upgrading/03_Migrating_off_CWP.md diff --git a/docs/en/03_Upgrading/03_Upgrading/03_Migrating_off_CWP.md b/docs/en/03_Upgrading/03_Upgrading/03_Migrating_off_CWP.md new file mode 100644 index 000000000..f0080dfcf --- /dev/null +++ b/docs/en/03_Upgrading/03_Upgrading/03_Migrating_off_CWP.md @@ -0,0 +1,77 @@ +--- +title: Migrating off CWP +summary: Migrate your project off the Common Web Platform v2 +--- + +# Migrate your project off the Common Web Platform v2 + +Until November 2021, Silverstripe Ltd maintained a specialised version of the Silverstripe CMS project for the New Zealand Government and related New Zealand public-sector agencies. This version was called _Common Web Platform_ (CWP for short). + +The CWP CMS release has been discontinued. CWP projects who wish to continue to receive updates must migrate their code base off the latest CWP release back to the regular Silverstripe CMS release. + +## Steps to migrate away from CWP + +Before you begin this process you must identify which version of Silverstripe CMS Recipe you want to upgrade to. You can upgrade to [Silverstripe CMS Recipe 4.9.0](/changelogs/4.9.0/) or greater. + +[Review the changelog list](/changelogs/) to choose the Silverstripe CMS Recipe version you wish to upgrade to. Read the changelog carefully. It may contain additional release specific upgrade guidance beyond the steps in this guide. + +1. If your current composer file contains `cwp/cwp-installer`, run `composer update-recipe cwp/cwp-installer` to inline the recipe. +2. If your current composer file contains `cwp/cwp-recipe-cms`, run `composer update-recipe cwp/cwp-recipe-cms` to inline the recipe. +3. If your current composer file contains `cwp/cwp-recipe-core`, replace it with `silverstripe/recipe-ccl`. +4. If your current composer file contains `cwp/cwp-recipe-search`, replace it with `silverstripe/recipe-solr-search`. +5. Review all your composer requirements and update the constraints so the module versions documented in the changelog for you desired Silverstripe CMS Recipe release are installable. +6. Run a `composer update` to get the lastest tag of each module. + +The `silverstripe/recipe-solr-search` and `silverstripe/recipe-ccl` release versions follow the same numbering scheme as the recipes they superseded: +- the last release version of `cwp/cwp-recipe-search` and `cwp/cwp-recipe-core` is 2.8.0 +- the first release version of `silverstripe/recipe-solr-search` and `silverstripe/recipe-ccl` is 2.9.0. + +### Optional clean-up step + +`composer update-recipe` adds some superfluous data to your `composer.json` file. You may remove the following entries from your composer file: +- `extra.project-dependencies-installed` and all the underlying entries +- all the `cwp` entries under the `provide` key. + +Once you've completed the clean up, you should run a `composer update` to sync up your changes in the `composer.lock` file. + +## Questions + +### What constraint should I use in my requirement version? + +That really depends on how comfortable your organisiation is with automatically applying updates to your Silverstripe CMS project. + +The three broad constraint categories you can use are, in descending order of restrictiveness: +- _exact version_ which forces composer to install the exact version of a package (e.g.: `"silverstripe/userforms: "5.9.0"`) +- _tilde constraint_ which allows composer to install a later version of a package within the same minor release line (e.g.: `"silverstripe/userforms: "~5.9.2"` will allow composer to install the `5.9.2` or `5.9.3` releases, but not the `5.10.0` or `5.9.1` ones) +- _caret constraint_ which allows composer to install a later version of a package within the same major release line (e.g.: `"silverstripe/userforms: "^5.9.2"` will allow composer to install the `5.9.3` or `5.10.0` releases, but not the `6.0.0` one). + +The _tilde constraint_ is a suitable default and is the constraint style that ships in the `silverstripe/installer`. + +Read [Next Significant Release Operators](https://getcomposer.org/doc/articles/versions.md#next-significant-release-operators) in the composer documentation for more information version constraint operators. + +### What if I get a conflict when running composer update? + +Composer normally tells you which packages are in conflict. You can try using the `--with-all-dependencies` flag and allow composer upgrade or downgrade other dependencies to resolve conflicts: +```bash +composer update --with-all-dependencies +``` + +If the `--with-all-dependencies` flag doesn't fix the problem, carefully read the composer error message and try to identify which constraints need to be updated to resolve to an installable set of dependencies. + +### What happens if I do not migrate off the CWP CMS recipes? + +The CWP CMS recipes have been archived, but existing versions will remain installable for the indefinite future. No new versions of the CWP CMS recipes will be tagged. The CWP CMS recipes are in lockstep with exact versions of various Silverstripe CMS modules. This means you will not be able to upgrade to any Silverstripe CMS Recipes beyond the 4.8 release. + +Your project will still work, but will not receive any bug fixes, security fixes or new features that ship in later releases. + +### What if my project is still using CWP 1? + +Read the [Upgrading to Silverstripe CMS 4](Upgrading_project.md) guide first. + +Once you've completed the _Upgrade your dependencies_ step, follow the directions in this guide to remove all the legacy CWP CMS recipes. + +### Is there a way to create a new project that would require all the modules a CWP project would have? + +There's no officially supported alternative to the `cwp/cwp-installer` module. There's nothing stopping you from creating a new project using `cwp/cwp-installer` as a baseline and then inlining the CWP CMS recipes using the steps outlined in this guide. + +However, your project will not be following the most up-to-date best practices if you use this approach. From fd8b0cc25361c9af87d309ba2b665eb616c29b93 Mon Sep 17 00:00:00 2001 From: Maxime Rainville Date: Mon, 4 Oct 2021 15:16:10 +1300 Subject: [PATCH 6/7] MNT Fix broken test caused by missing table --- tests/php/ORM/HierarchyCachingTest.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/php/ORM/HierarchyCachingTest.php b/tests/php/ORM/HierarchyCachingTest.php index 2d3de8dfb..101827117 100644 --- a/tests/php/ORM/HierarchyCachingTest.php +++ b/tests/php/ORM/HierarchyCachingTest.php @@ -9,6 +9,8 @@ use SilverStripe\Versioned\Versioned; use SilverStripe\ORM\Tests\HierarchyTest\TestObject; use SilverStripe\ORM\Tests\HierarchyTest\HideTestObject; use SilverStripe\ORM\Tests\HierarchyTest\HideTestSubObject; +use SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestObject; +use SilverStripe\ORM\Tests\HierarchyTest\HierarchyOnSubclassTestSubObject; /** * @internal Only test the right values are returned, not that the cache is actually used. @@ -22,6 +24,8 @@ class HierachyCacheTest extends SapphireTest TestObject::class, HideTestObject::class, HideTestSubObject::class, + HierarchyOnSubclassTestObject::class, + HierarchyOnSubclassTestSubObject::class ]; public function setUp() From 340793a1ffdc31094d5c3d61f65b257616fd1f2a Mon Sep 17 00:00:00 2001 From: Maxime Rainville Date: Tue, 5 Oct 2021 18:31:18 +1300 Subject: [PATCH 7/7] MNT Added 4.9.0 changelog --- .../03_Migrating_off_CWP.md | 0 docs/en/04_Changelogs/4.9.0.md | 649 +++++++++++++++++- 2 files changed, 643 insertions(+), 6 deletions(-) rename docs/en/03_Upgrading/{03_Upgrading => }/03_Migrating_off_CWP.md (100%) diff --git a/docs/en/03_Upgrading/03_Upgrading/03_Migrating_off_CWP.md b/docs/en/03_Upgrading/03_Migrating_off_CWP.md similarity index 100% rename from docs/en/03_Upgrading/03_Upgrading/03_Migrating_off_CWP.md rename to docs/en/03_Upgrading/03_Migrating_off_CWP.md diff --git a/docs/en/04_Changelogs/4.9.0.md b/docs/en/04_Changelogs/4.9.0.md index 21146136c..871bb24db 100644 --- a/docs/en/04_Changelogs/4.9.0.md +++ b/docs/en/04_Changelogs/4.9.0.md @@ -1,8 +1,6 @@ -# 4.9.0 (Unreleased) - ## Overview -A full list of module versions included in CMS Recipe {{ version }} is provided below. We recommend referencing recipes in your dependencies, rather than individual modules, to simplify version tracking. See [Recipes](/getting_started/). +A full list of module versions included in CMS Recipe 4.9.0 is provided below. We recommend referencing recipes in your dependencies, rather than individual modules, to simplify version tracking. See [Recipes](/getting_started/).
@@ -92,18 +90,36 @@ A full list of module versions included in CMS Recipe {{ version }} is provided
-Upgrading to Recipe {{ version }} is recommended for all sites. This upgrade can be carried out by any development team familiar with Silverstripe. +Upgrading to Silverstripe CMS Recipe 4.9.0 is recommended for all sites. This upgrade can be carried out by any development team familiar with Silverstripe. +- [Security considerations](#security-considerations) - [Security audit and regression test](#audit) - [For development teams of Common Web Platform projects](#cwp-end) - [Dropping support for Internet Explorer 11](#ie11eol) - [Features and enhancements](#features-and-enhancements) + - [Changes to our release process](#release-process) - [Image lazy loading](#image-lazy-loading) - [Manage your CMS sessions across devices](#session-manager) - [Upgrade to Swiftmailer version 6](#swiftmailer) - [Other new features](#other-features) - [Bugfixes](#bugfixes) + +## Security considerations {#security-considerations} + +This release includes security fixes. 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 high-level 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-2021-28661 Default GraphQL permission checker not inherited by query subclass](https://www.silverstripe.org/download/security-releases/CVE-2021-28661) Severity: Low +* [CVE-2021-36150 Insert from files link text - Reflective (self) Cross Site Scripting](https://www.silverstripe.org/download/security-releases/CVE-2021-36150) Severity: Medium + +### Note for CVE-2021-28661 Default GraphQL permission checker not inherited by query subclass + +If your site has a custom GraphQL 3 ItemQuery/ListQuery Scaffolder implementation that relies on having no permission check, you will need to add a custom permission checker to bypass the `canView()` check. See the [security announcement](https://www.silverstripe.org/download/security-releases/CVE-2021-28661) for implementation details. + + + ## Regression test and Security audit{#audit} This release has been comprehensively regression tested and passed to a third party for a security-focused audit. @@ -114,7 +130,7 @@ While it is still advised that you perform your own due diligence when upgrading This release marks the first release for Common Web Platform projects to eject out of managing projects in the CWP 2.x version line and to begin following the standard CMS 4.x version line, by adopting the CMS Recipe. -More information and guidance on how to manage your project composer.json file will be published as part of the CMS 4.9.0 stable release and supporting documentation. +Review the [Migrate your project off the Common Web Platform v2](/Upgrading/Migrating_off_CWP) guidance to learn how to transition from CWP. ## Dropping support for Internet Explorer 11{#ie11eol} @@ -126,6 +142,28 @@ While the Silverstripe CMS UI might not allow content authors to manage content ## Features and enhancements {#features-and-enhancements} +### Changes to our release process{#release-process} + +This change log has historically focused on noting changes as part of the CMS modules contained in what's referred to as the CMS Recipe (see recipes). + +This release brings a new approach to the way we shipped code and communicate its release. These changes are aimed at making it easier for developers to keep their project up to date and to understand what has been released in popular modules *outside* of the CMS Recipe. + +#### Unified release for Core and Supported modules + +Until recently, we shipped core modules and supported modules in two different releases. From now on, we will shipped core modules and supported modules in one go. + +The main difference is that changelogs will now contain entries for all supported modules. This does not require Silverstripe CMS project to install any additianal modules when upgrading. + +#### Looser constraints allow easier adoption of patch releases + +The *CMS Recipe* is the recommended way that all CMS projects manage the core repositories that are required to run a standard Silverstripe CMS project. Previously, Silverstripe CMS recipes were *lockstep* with exact constraints. This precluded projects using recipes from installing patch releases of individual modules until a subsequent release of a recipe (often 3+ months later). Now, the CMS recipe and other recipes used to bundle module combinations have looser constraints. + +The loose constraints will allow your project to take advantage of any subsequent patch releases of containing modules with a simple composer update, respecting commitments to SemVer versioning and not introducing any breaking changes. This allows projects to make more immediate use of bugfix releases, while giving module maintainers the incentive to release patch versions more frequently. + +For projects that are more weary of frequent patch releases and would prefer to retain tighter module version constraints, it is recommended that you either: +- eject out of the CMS recipe +- record each module individually in the `composer.json` file + ### Image lazy loading {#image-lazy-loading} Most modern browsers support the ability to "lazy load" images. When an image is configured to be @@ -200,7 +238,7 @@ Silverstripe CMS provides an API over the top of the [SwiftMailer](http://swiftm #### Moving away from _Swift_MailTransport_ Prior to 4.9.0, Silverstripe CMS 4 defaulted to using the built-in PHP `mail()` command via a deprecated class `Swift_MailTransport`. However, the Swiftmailer maintainers have decided to remove this class because of some inherent security flaw in the way the PHP mail function handles the `from` header. -Read this [GitHub comment by a SwiftMailer maintainer](https://github.com/swiftmailer/swiftmailer/issues/866#issuecomment-289291228) for a detailed explanation of the weakness of the PHP mail function. +Read this [GitHub comment by a SwiftMailer maintainer](https://github.com/swiftmailer/swiftmailer/issues/866#issuecomment-289291228) for a detailed explanation of the weakness of the PHP mail function. We have included the deprecated `Swift_MailTransport` class in the `silverstripe/framework` codebase to ensure backward compatibility for project upgrading to Silverstripe Recipe CMS 4.9.0. However, using this layer is less secure and is strongly discouraged. @@ -210,8 +248,607 @@ It's highly recommended that existing Silverstripe CMS installation using `Swift ### Other new features +* [New title tip component](https://silverstripe.github.io/silverstripe-pattern-lib/?knob-Content=Example%20tip%20contents&selectedKind=Admin%2FTip&selectedStory=Title%20tip&full=0&addons=1&stories=1&panelRight=0&addonPanel=storybook%2Fnotes%2Fpanel) allowing you to provide extra context on the purpose of a field * [Dot notation support in form fields](https://github.com/silverstripe/silverstripe-framework/pull/9192): Save directly into nested has_one relationships (see [docs](/developer_guides/forms/how_tos/handle_nested_data)). ## Bugfixes {#bugfixes} 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/admin (1.8.0 -> 1.9.0) + * 2021-09-01 [e125ed4](https://github.com/silverstripe/silverstripe-admin/commit/e125ed4d349fbe11fd1a7fbdf57dfa9716a6b87b) Escape html tag characters in link text (Steve Boyd) - See [cve-2021-36150](https://www.silverstripe.org/download/security-releases/cve-2021-36150) + + * silverstripe/graphql (3.5.0 -> 3.6.0) + * 2021-08-11 [d391399](https://github.com/silverstripe/silverstripe-graphql/commit/d391399007efb67bd36c6b963e89f5e95bf0bdad) Add a CanViewPermissionChecker if permission checker is null (Steve Boyd) - See [cve-2021-28661](https://www.silverstripe.org/download/security-releases/cve-2021-28661) + + +### Features and Enhancements + + + * silverstripe/installer (4.8.0 -> 4.9.0) + * 2021-08-18 [be9d875](https://github.com/silverstripe/silverstripe-installer/commit/be9d8751417847af8939e2a7cd663aa73e45491a) Use Swift_SendmailTransport for new projects (Steve Boyd) + + * silverstripe/assets (1.8.0 -> 1.9.0) + * 2021-07-05 [9526c54](https://github.com/silverstripe/silverstripe-assets/commit/9526c54eb4aeadc8381ffb13491c6cd12be66664) Add lazy loading to image rendered in SS template (Maxime Rainville) + * 2021-07-05 [ce3a649](https://github.com/silverstripe/silverstripe-assets/commit/ce3a649413c51f990bfcdab42473a6ca26c49848) Image lazy-loading for wysiwyg images (#455) (Steve Boyd) + * 2021-05-19 [80019e9](https://github.com/silverstripe/silverstripe-assets/commit/80019e9f92a246ceaa8d4879275bd8d718b76550) Ensure logged in members can access draft files (#446) (Aaron Carlino) + + * silverstripe/config (1.1.0 -> 1.2.0) + * 2018-02-26 [e0e4013](https://github.com/silverstripe/silverstripe-config/commit/e0e4013cce8904e9cbabc445ba7e6551b5e79b58) New alias for 1.x-dev (Daniel Hensby) + + * silverstripe/framework (4.8.0 -> 4.9.0) + * 2021-08-08 [f99ba5d71](https://github.com/silverstripe/silverstripe-framework/commit/f99ba5d71656eb2ce8797ef4ca48de4a08f19be7) Add extension point to DataObject-&amp;gt;hydrate() (Matt Peel) + * 2021-07-31 [a90d46dbc](https://github.com/silverstripe/silverstripe-framework/commit/a90d46dbc4e7f23e2c022e7e4e931c7ee8900794) Title tips for form fields (Steve Boyd) + * 2021-07-18 [4cd6b1434](https://github.com/silverstripe/silverstripe-framework/commit/4cd6b1434ab2534f536f90335f4ad570181c98b4) Reduce duplication of code in GridField view and edit buttons. (#9953) (GuySartorelli) + * 2021-06-29 [e4e4b0924](https://github.com/silverstripe/silverstripe-framework/commit/e4e4b0924deeb6e2f254de1b44a8e72ce9af9cf7) Use text field&#039;s title for validation messages. (GuySartorelli) + * 2021-06-25 [d710990e1](https://github.com/silverstripe/silverstripe-framework/commit/d710990e13f2ce430651538f2b746f36aa189347) Provide onBeforeRenderHolder extension hook. (GuySartorelli) + * 2021-06-17 [b625ba99b](https://github.com/silverstripe/silverstripe-framework/commit/b625ba99b3a5877e847004c41ae3e774b795f5be) Remove wording for authenticated devices being manageable (Steve Boyd) + * 2021-05-23 [9dd69c40e](https://github.com/silverstripe/silverstripe-framework/commit/9dd69c40e31186b09ae62e300104dacfab125715) Add DBText-&amp;gt;Summary tests (Michal Kleiner) + * 2021-05-10 [f8a943115](https://github.com/silverstripe/silverstripe-framework/commit/f8a94311521db9fe52c2dd430b6ce731c51ce5f1) Add extension point to Director::is_site_url (Michal Kleiner) + * 2020-08-26 [8883413ba](https://github.com/silverstripe/silverstripe-framework/commit/8883413ba71a7b117b79a237d07f3ed72301fa8a) Add GridFieldDetailForm::setRedirectMissingRecords() (Sam Minnee) + * 2019-08-24 [02fb7c3b1](https://github.com/silverstripe/silverstripe-framework/commit/02fb7c3b178f85b75365b0efb46ae8b25a204590) Support dot syntax in form field names (Sam Minnee) + + * silverstripe/mimevalidator (2.1.1 -> 2.2.0) + * 2020-11-16 [c528307](https://github.com/silverstripe/silverstripe-mimevalidator/commit/c528307ecffaa7b5765e634fad9305547374d884) Update translations (Maxime Rainville) + * 2020-11-15 [b409695](https://github.com/silverstripe/silverstripe-mimevalidator/commit/b4096951574d70198306bd2189ce00a893b98763) Update translations (Maxime Rainville) + + * silverstripe/admin (1.8.0 -> 1.9.0) + * 2021-08-03 [e7a9513](https://github.com/silverstripe/silverstripe-admin/commit/e7a9513951a7163b2a12f6c3adf17df48609e22d) FormField Title tooltip (Steve Boyd) + * 2021-07-08 [4817216](https://github.com/silverstripe/silverstripe-admin/commit/4817216d1e4627d9318f47358f6b9555c6a9ea3f) Avoid &quot;new&quot; keyword to instantiate injectable CMSMenuItem (GuySartorelli) + + * silverstripe/asset-admin (1.8.0 -> 1.9.0) + * 2021-08-02 [a420ec9b](https://github.com/silverstripe/silverstripe-asset-admin/commit/a420ec9ba7bff41ad0a0da26b7b0e47e861f7d1c) Add image form input to opt out of lazy loading (Steve Boyd) + * 2021-06-28 [a77bae9e](https://github.com/silverstripe/silverstripe-asset-admin/commit/a77bae9e44e709e5d025d45685e592bb01a0e794) Remove duplicate permission check (Steve Boyd) + * 2021-06-20 [4979699a](https://github.com/silverstripe/silverstripe-asset-admin/commit/4979699a436467fb37ae8b20a47914f02be68cc8) Update data source used for file delete modal (Steve Boyd) + + * silverstripe/session-manager (0.1.1 -> 1.1.0) + * 2021-06-20 [efe3023](https://github.com/silverstripe/silverstripe-session-manager/commit/efe3023cf769cf125af2fbc3f840a2b24aeba7d2) Remove logout confirmation (Steve Boyd) + * 2021-06-09 [b8afcdd](https://github.com/silverstripe/silverstripe-session-manager/commit/b8afcdd74039cca1210c8f32cd7ff11736c2f66d) Update folders + namespaces, remove unused class (Steve Boyd) + + * silverstripe/userforms (5.9.0 -> 5.10.0) + * 2021-05-31 [3fbccea](https://github.com/silverstripe/silverstripe-userforms/commit/3fbccea2ea5e6808d4fc48afbf662be910e49f8a) Avoid use of &#039;new&#039; keyword on injectable classes from this module. (GuySartorelli) + + * dnadesign/silverstripe-elemental (4.6.0 -> 4.7.0) + * 2021-06-27 [eae0ff9](https://github.com/silverstripe/silverstripe-elemental/commit/eae0ff9ecae4fc28847cac0b96460f7a08cd4994) Top Page enhancements. (#832) (Mojmir Fendek) + + * silverstripe/mfa (4.3.0 -> 4.4.0) + * 2021-06-16 [51d6094](https://github.com/silverstripe/silverstripe-mfa/commit/51d60948e61b539cbdd21f6c62ac27bccddf0e6a) Increase rate limit (Steve Boyd) + + +### Bugfixes + + + * silverstripe/installer (4.8.0 -> 4.9.0) + * 2021-06-21 [9487628](https://github.com/silverstripe/silverstripe-installer/commit/9487628f7a8476a8eb39a78fb5d4664b6de7a1ff) Fix typo (Seno) + + * silverstripe/framework (4.8.0 -> 4.9.0) + * 2021-08-23 [de87d91d2](https://github.com/silverstripe/silverstripe-framework/commit/de87d91d22e4dc35beae51da634a692fa16fd8ce) Trim email addresses to comply with RFC 2822, 3.6.2 (Steve Boyd) + * 2021-08-06 [9a7c99fc4](https://github.com/silverstripe/silverstripe-framework/commit/9a7c99fc4bbf97c7d08e6bc98192280f96470e44) Take current request protocol into account when deleting session cookie (Florian Thoma) + * 2021-08-05 [ecb233012](https://github.com/silverstripe/silverstripe-framework/commit/ecb233012d0569f0ea4982ec343c64992397352c) Fix error when executing method SSViewer::templates() when $subTemplates is still null (Bram de Leeuw) + * 2021-07-27 [e436e13df](https://github.com/silverstripe/silverstripe-framework/commit/e436e13dfcd6d3420935ffb6bd55abb58c503141) Fix link typo in 01_Caching.md (Vlad Mencl) + * 2021-07-07 [b2a85e7a0](https://github.com/silverstripe/silverstripe-framework/commit/b2a85e7a02a78359d11329e5b6a226dfe6ce8df7) BASE_PATH fallback assumed wrong file location (#9977) (Ingo Schommer) + * 2021-07-06 [87d076faa](https://github.com/silverstripe/silverstripe-framework/commit/87d076faa6b41694e7b21f9e2610cbd92e9d70b2) Cast DBInt value to int (Steve Boyd) + * 2021-07-01 [8e803bbcf](https://github.com/silverstripe/silverstripe-framework/commit/8e803bbcfcd542e58cab667d0789873270c8547a) Parse Enums with dots in their values (Steve Boyd) + * 2021-06-29 [0b979dc34](https://github.com/silverstripe/silverstripe-framework/commit/0b979dc3453cbeedad30befa8720d7ca5d41028e) Cache duplicate embeds separately (Steve Boyd) + * 2021-06-17 [7ed7ad025](https://github.com/silverstripe/silverstripe-framework/commit/7ed7ad0254195980f8226d1dbb542debe5288d85) Ensure changing a password to blank is validated (Steve Boyd) + * 2021-06-05 [28b5b803b](https://github.com/silverstripe/silverstripe-framework/commit/28b5b803be5570397d6db605f5547d3c6b9fdd5a) Defensively copy mocked datetime (David Peck) + * 2021-05-31 [472fc4ebb](https://github.com/silverstripe/silverstripe-framework/commit/472fc4ebb4a6459bb8485e0a60c14485b2ec56a3) Update DataQuery::exists to return false when limit causes no result to be returned (#9946) (Maxime Rainville) + * 2021-05-20 [5e2ca7f0a](https://github.com/silverstripe/silverstripe-framework/commit/5e2ca7f0a346df30135a00be32781a2ffa36229c) Tidy extension and cli fix for tests (Ingo Schommer) + * 2021-05-14 [7024af541](https://github.com/silverstripe/silverstripe-framework/commit/7024af541b61653e19caa596f293b7ce69b5e0c7) Fix typos in 04_Data_Types_and_Casting.md (Manuel Thalmann) + * 2021-05-14 [6e499b73a](https://github.com/silverstripe/silverstripe-framework/commit/6e499b73af1764cd26d3db9695eaca353c2afe83) Fix typos in 03_Lists.md (Manuel Thalmann) + * 2021-05-13 [a5e4a5c97](https://github.com/silverstripe/silverstripe-framework/commit/a5e4a5c97d78cd4efb47c3478b85b46fbc49d139) Fix typos in 02_Relations.md (Manuel Thalmann) + * 2021-05-13 [f44119ff5](https://github.com/silverstripe/silverstripe-framework/commit/f44119ff59937e3b4b7ec7dcbd557c348b70b4fb) Fix typos in 01_Data_Model_and_ORM.md (Manuel Thalmann) + * 2020-09-16 [2017a2043](https://github.com/silverstripe/silverstripe-framework/commit/2017a2043360f25676d5dff33a5422156051951a) Use empty array as a fallback for preg_split within dbtext summary (Michal Kleiner) + * 2020-08-04 [9d03a6856](https://github.com/silverstripe/silverstripe-framework/commit/9d03a6856c72b171b52a599268dea84eacc2c89e) Retain custom sort on custom lists in GridFieldAddExistingAutoCompleter (Ingo Schommer) + * 2019-08-26 [5dcf5197d](https://github.com/silverstripe/silverstripe-framework/commit/5dcf5197daa916c5b2126ec4421e35afe869c546) Make the ./_ substitution optional. (Sam Minnee) + * 2019-08-26 [c7c6bdebd](https://github.com/silverstripe/silverstripe-framework/commit/c7c6bdebdf655261f597b0f563bd11d3494dc9c4) Allow join-object to be referenced as a component (Sam Minnee) + * 2019-08-24 [6ba7bf7b2](https://github.com/silverstripe/silverstripe-framework/commit/6ba7bf7b2f5bda81f50392cf1331a359b779c407) Replace ‘.’s with ‘_’s in HTML IDs (Sam Minnee) + + * silverstripe/admin (1.8.0 -> 1.9.0) + * 2021-07-01 [e361ae2](https://github.com/silverstripe/silverstripe-admin/commit/e361ae257648c8d8011b1f355ae3cd5bc3b1fe66) Unload previous preview when new URL is not available (Steve Boyd) + * 2021-06-17 [c18402a](https://github.com/silverstripe/silverstripe-admin/commit/c18402ad046c2aa6498a33fdb3ceb002a5f0b6bd) Treedropdown css (Steve Boyd) + * 2021-06-04 [ec80b60](https://github.com/silverstripe/silverstripe-admin/commit/ec80b6051011f9d16c63450ce2dcde4cb2d0c01d) Fix broken ModelAdmin test (Maxime Rainville) + * 2021-06-02 [56c3a8f](https://github.com/silverstripe/silverstripe-admin/commit/56c3a8f7338fdc43d500bf1c5fe5e192e20203f3) Refactor HeaderField to be a functional component (Maxime Rainville) + * 2021-05-28 [a0a3701](https://github.com/silverstripe/silverstripe-admin/commit/a0a37011aa79114ca3568862a6d4a96c6886539d) managed_models slugs can&#039;t have hyphens (#1220) (Andrew Aitken-Fincham) + + * silverstripe/asset-admin (1.8.0 -> 1.9.0) + * 2021-08-12 [f3065b6f](https://github.com/silverstripe/silverstripe-asset-admin/commit/f3065b6f86d013f162234631a21f6830d99ad108) Update unit test to use TestSession for session (Steve Boyd) + * 2021-07-16 [b7061ce8](https://github.com/silverstripe/silverstripe-asset-admin/commit/b7061ce8f51b2035026e8dce1504b13bbfce7153) Update Editor to fetch file info directly from GraphQL so the editor works even when viewing a file not on the current page (Maxime Rainville) + * 2021-07-15 [5db5c6cc](https://github.com/silverstripe/silverstripe-asset-admin/commit/5db5c6ccc2ae83d7a11a94143f88b169a00524de) Always sort by folders first (Steve Boyd) + * 2021-06-20 [91d59457](https://github.com/silverstripe/silverstripe-asset-admin/commit/91d594575ad279a2b0610d7b12a5d3d468fe5cdd) Update overrides url when file is selected (Steve Boyd) + + * silverstripe/versioned-admin (1.8.0 -> 1.9.0) + * 2021-06-10 [789e52c](https://github.com/silverstripe/silverstripe-versioned-admin/commit/789e52ceb8ba0b66ca704b9d7df695ae1a547089) Update broken translations (Maxime Rainville) + + * silverstripe/cms (4.8.0 -> 4.9.0) + * 2021-06-23 [9d77ff3b](https://github.com/silverstripe/silverstripe-cms/commit/9d77ff3b9021ed4a2d3516ed9013f95c059474fb) Show &#039;No preview available&#039; message for pages with no state (Steve Boyd) + * 2020-09-17 [2332831a](https://github.com/silverstripe/silverstripe-cms/commit/2332831a2d32265cc1ccb9bbfbff6a11cb576cc3) Fix Behat test to use new toast notification step (Maxime Rainville) + + * silverstripe/session-manager (0.1.1 -> 1.1.0) + * 2021-06-28 [cf17c0e](https://github.com/silverstripe/silverstripe-session-manager/commit/cf17c0e5cbaeffd0b6c7045e120b2988a4e9aea9) Fix title of user docs (Andre Kiste) + * 2021-04-22 [640bf52](https://github.com/silverstripe/silverstripe-session-manager/commit/640bf52761ea6c5bb01604111e91cd3333096b8c) Refactor LoginSessionController to use sensible REST request and to allow all users to invalidate their session (Maxime Rainville) + + * silverstripe/login-forms (4.4.1 -> 4.5.0) + * 2021-06-24 [c554983](https://github.com/silverstripe/silverstripe-login-forms/commit/c5549830ae19c5e452115f2d915104116f8c7a03) Add Darkmod style for popover (#98) (Maxime Rainville) + + * silverstripe/spellcheck (2.2.0 -> 2.2.1) + * 2021-05-30 [1a54396](https://github.com/silverstripe/silverstripe-spellcheck/commit/1a543961fec40cdd63cc3cd2b4ee3ddf71f9c43a) Add namespaces back to translation files (Steve Boyd) + + * silverstripe/tagfield (2.6.0 -> 2.7.0) + * 2021-07-26 [88c069c](https://github.com/silverstripe/silverstripe-tagfield/commit/88c069c3ae3a915c45c8cb3ec8363bb7f3c04178) Fix missing CSS class for StringTagField initialisation (closes #148) (Loz Calver) + * 2021-06-18 [325de9e](https://github.com/silverstripe/silverstripe-tagfield/commit/325de9e94d4d29ff65b49fe36ac2d14019c6ffa7) Fix StringTagField initialisation (fixes #148) (Loz Calver) + + * silverstripe/widgets (2.1.0 -> 2.1.1) + * 2021-05-30 [d4ae7ff](https://github.com/silverstripe/silverstripe-widgets/commit/d4ae7ff9ab0844551f64a9a3ac2fb8425319b87f) Add namespaces back to translation files (Steve Boyd) + + * silverstripe/contentreview (4.2.0 -> 4.3.0) + * 2020-10-29 [ebcfc48](https://github.com/silverstripe/silverstripe-contentreview/commit/ebcfc483beb17f11123eb53fc3b4715ee45d8241) Clear non-recurring custom date when reviewing (Jules) + + * silverstripe/sharedraftcontent (2.4.0 -> 2.5.0) + * 2021-07-27 [e010663](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/e0106638387575d271118b4dd6be838a8365fe72) Add `no-change-track` to link input (Will Rossiter) + * 2021-07-08 [e7e9633](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/e7e9633858b002095646a94870e09b6613722b76) Rename file to match class name (Steve Boyd) + * 2021-06-29 [82c2649](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/82c26498e98787da943cb34bd206796ee2f10558) resolve previewing pages which redirect (#143) (Will Rossiter) + + * silverstripe/userforms (5.9.0 -> 5.10.0) + * 2021-07-08 [69b397f](https://github.com/silverstripe/silverstripe-userforms/commit/69b397f4673b8d411b04872e5b13960d9d49aaaf) Fix bad lang merge (Daniel Hensby) + * 2021-06-22 [18eccb6](https://github.com/silverstripe/silverstripe-userforms/commit/18eccb65d426ec4ea873b1231789c6e8cf58ed94) Log any email exceptions gracefully (Will Rossiter) + * 2021-06-20 [02c15f3](https://github.com/silverstripe/silverstripe-userforms/commit/02c15f321aa4e688bd5b7e330d4be8229d22b7eb) Fix: Allow removing the Versioned extension from EditableFormField (GuySartorelli) + * 2021-05-31 [b13cb73](https://github.com/silverstripe/silverstripe-userforms/commit/b13cb73deb855e08182784316e71c13957f12ce8) Add namespaces back to translation files, use EditibleFileField class (Steve Boyd) + * 2021-04-12 [4a883f1](https://github.com/silverstripe/silverstripe-userforms/commit/4a883f1641b725b2ccbcc65ff25df31522b8b2b8) fix for testing EmailRecipients (Bauke Zwaan) + * 2021-03-31 [beaf901](https://github.com/silverstripe/silverstripe-userforms/commit/beaf90120865b9f5da7d3e46631eb881b96f1a75) When deleting form submission, delete linked file (Will Rossiter) + * 2021-03-22 [e925aa1](https://github.com/silverstripe/silverstripe-userforms/commit/e925aa197942eaac103661aa7a94723305000810) Uploaded files not appearing in emails (Will Rossiter) + + * dnadesign/silverstripe-elemental (4.6.0 -> 4.7.0) + * 2021-02-09 [ce4696e](https://github.com/silverstripe/silverstripe-elemental/commit/ce4696e94dae3c6e78e6ccd71edc08b882f77ca1) Add missing use statement. (GuySartorelli) + * 2021-02-08 [fb3bad4](https://github.com/silverstripe/silverstripe-elemental/commit/fb3bad4b05042e40720f0126d8692dc65af77633) ignored_classes Content field emptied by MigrateContentToElement task (GuySartorelli) + + +### API Changes + + + * silverstripe/assets (1.8.0 -> 1.9.0) + * 2021-06-24 [46e11eb](https://github.com/silverstripe/silverstripe-assets/commit/46e11ebd8bd8d074aed68ca9959030d2cd47a46c) Add image lazy load config (Steve Boyd) + + * silverstripe/framework (4.8.0 -> 4.9.0) + * 2021-08-18 [92f47da08](https://github.com/silverstripe/silverstripe-framework/commit/92f47da08bcb6d70d46f178e71bcbb69b819a270) Update SwiftMailer from v5 to v6 (#10048) (Steve Boyd) + + +### Dependencies + + + * silverstripe/recipe-kitchen-sink (4.8.0 -> 4.9.0) + * 2021-09-03 [80f7404](https://github.com/silverstripe/recipe-kitchen-sink/commit/80f7404dffff4c99536b4fa599b689182149a880) Update fluent version (Steve Boyd) + * 2021-08-29 [ee098d0](https://github.com/silverstripe/recipe-kitchen-sink/commit/ee098d0b9651a172a50d014c691d2856d220ac0d) Update dependency versions (Steve Boyd) + + * silverstripe/recipe-cms (4.8.0 -> 4.9.0) + * 2021-08-19 [03c6888](https://github.com/silverstripe/recipe-cms/commit/03c6888a7ff52b048340b2f1ded59334eb3b0f63) Add session manager (Steve Boyd) + * 2021-05-17 [53f9a7f](https://github.com/silverstripe/recipe-cms/commit/53f9a7f59496792f13b18de0cf035329d612c128) Use versioned 1.8 (Steve Boyd) + * 2021-05-17 [861afad](https://github.com/silverstripe/recipe-cms/commit/861afaddaed921b528f839046570d42d5b1bca56) Update dependencies for CMS 4.8 (Steve Boyd) + + * silverstripe/recipe-core (4.8.0 -> 4.9.0) + * 2021-05-17 [05c5042](https://github.com/silverstripe/recipe-core/commit/05c5042e7ad9d7ca9661110720d929100365c404) Update dependencies for CMS 4.8 (Steve Boyd) + + * silverstripe/admin (1.8.0 -> 1.9.0) + * 2021-05-14 [f7f1a1f](https://github.com/silverstripe/silverstripe-admin/commit/f7f1a1fb189dea3fac9aaf54504af37e96767da9) Bump ini from 1.3.5 to 1.3.8 (dependabot[bot]) + * 2021-05-14 [a1c247f](https://github.com/silverstripe/silverstripe-admin/commit/a1c247fb8e007a6a3d896c9d1b3516659a088c00) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + * 2021-03-30 [0671a5c](https://github.com/silverstripe/silverstripe-admin/commit/0671a5cbddcd0cf05e426781599b545557baf821) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + + * silverstripe/asset-admin (1.8.0 -> 1.9.0) + * 2021-05-14 [e907bc48](https://github.com/silverstripe/silverstripe-asset-admin/commit/e907bc48138a98c1471695e83fff1a4043e0bac3) Bump ini from 1.3.5 to 1.3.8 (dependabot[bot]) + * 2021-03-30 [701cd745](https://github.com/silverstripe/silverstripe-asset-admin/commit/701cd7458039ae6750d963c1e843ee30e608c3db) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-09 [33f7ed89](https://github.com/silverstripe/silverstripe-asset-admin/commit/33f7ed892cc3276904abfaeee5bb953f4fe42f48) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + * 2020-10-16 [e6bfab23](https://github.com/silverstripe/silverstripe-asset-admin/commit/e6bfab2350540fe04153678842d6926ea9874ec7) Bump npm-user-validate from 1.0.0 to 1.0.1 (dependabot[bot]) + + * silverstripe/campaign-admin (1.8.0 -> 1.9.0) + * 2021-05-14 [7fc5304](https://github.com/silverstripe/silverstripe-campaign-admin/commit/7fc5304157d1247eee29e0ab4ba561e693746e0b) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + * 2021-05-14 [96df857](https://github.com/silverstripe/silverstripe-campaign-admin/commit/96df857964b8bf8cc7ab8774d8610500dcf11d57) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + + * silverstripe/versioned-admin (1.8.0 -> 1.9.0) + * 2021-08-05 [913781c](https://github.com/silverstripe/silverstripe-versioned-admin/commit/913781ca05c6cee4c8dfccf9b37cd26964bbfd6b) Bump hosted-git-info from 2.8.5 to 2.8.9 (dependabot[bot]) + * 2021-05-14 [b014432](https://github.com/silverstripe/silverstripe-versioned-admin/commit/b0144328ee36e406226697421124dc9585a92e9c) Bump elliptic from 6.5.1 to 6.5.4 (dependabot[bot]) + * 2021-05-07 [f9c0c1c](https://github.com/silverstripe/silverstripe-versioned-admin/commit/f9c0c1c22b5e83cf9d9170782e94223c2a9c2f2c) Bump url-parse from 1.4.7 to 1.5.1 (dependabot[bot]) + * 2021-05-07 [6e411b5](https://github.com/silverstripe/silverstripe-versioned-admin/commit/6e411b56e3be83f37328036c0dd87bcffcb855c0) Bump handlebars from 4.7.6 to 4.7.7 (dependabot[bot]) + * 2021-05-06 [c168356](https://github.com/silverstripe/silverstripe-versioned-admin/commit/c1683567d54be9577680661d1ac5bfbb236751d7) Bump ua-parser-js from 0.7.20 to 0.7.28 (dependabot[bot]) + * 2021-03-30 [e58a8c0](https://github.com/silverstripe/silverstripe-versioned-admin/commit/e58a8c08888ed93b10c7e4c93afc3a3e513f1eaf) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2020-12-31 [2f728b2](https://github.com/silverstripe/silverstripe-versioned-admin/commit/2f728b27e2855177f7e40efa06520194fe0e2354) Bump npm from 6.13.7 to 6.14.10 (dependabot[bot]) + + * silverstripe/cms (4.8.0 -> 4.9.0) + * 2021-08-08 [1d2c4a21](https://github.com/silverstripe/silverstripe-cms/commit/1d2c4a21a755b9714193d9407e9fdb2954a4a5c1) Bump ws from 5.2.2 to 5.2.3 (dependabot[bot]) + * 2021-05-14 [83e32a1f](https://github.com/silverstripe/silverstripe-cms/commit/83e32a1fe37edbc13d3e041691c35ec204737e63) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + * 2021-05-12 [ac78336f](https://github.com/silverstripe/silverstripe-cms/commit/ac78336f1fac77ef0a29879d0764baf9070ce234) Bump merge from 1.2.1 to 2.1.1 (dependabot[bot]) + * 2021-03-30 [26aba134](https://github.com/silverstripe/silverstripe-cms/commit/26aba13496a2700a063c4f63b18d52bba90cbb08) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + + * silverstripe/versioned (1.8.0 -> 1.9.0) + * 2021-05-24 [04d339b](https://github.com/silverstripe/silverstripe-versioned/commit/04d339b1fdfcb86f7cd46fb04ef6dfbad1bb39eb) Require-dev graphql ^3.5 or ^4 (Steve Boyd) + + * silverstripe/session-manager (0.1.1 -> 1.1.0) + * 2021-06-10 [036ba44](https://github.com/silverstripe/silverstripe-session-manager/commit/036ba44f4d9fce432f5dbef323a491dd6f3bc9a7) Bump css-what from 5.0.0 to 5.0.1 (dependabot[bot]) + * 2021-06-10 [603dc5d](https://github.com/silverstripe/silverstripe-session-manager/commit/603dc5d7870db3fbe8a4e1fb8f3af96f4120fd27) Bump ws from 5.2.2 to 5.2.3 (dependabot[bot]) + + * silverstripe/login-forms (4.4.1 -> 4.5.0) + * 2021-06-06 [179ad13](https://github.com/silverstripe/silverstripe-login-forms/commit/179ad13a0b7f8dc38619fe1e584b894ba8047ced) Bump ws from 6.2.1 to 6.2.2 (dependabot[bot]) + * 2021-03-30 [0f68703](https://github.com/silverstripe/silverstripe-login-forms/commit/0f687032ce77d192406d847f1645d01743b694fb) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + + * silverstripe/recipe-authoring-tools (1.8.0 -> 1.9.0) + * 2021-08-29 [9f53596](https://github.com/silverstripe/recipe-authoring-tools/commit/9f53596ad73775eebc68012e5bca100b25f4017d) Update dependency versions (Steve Boyd) + * 2021-05-18 [c68cc2a](https://github.com/silverstripe/recipe-authoring-tools/commit/c68cc2a3d11940bc7447155b3ce1a59dbcc51a8f) Update dependencies for CMS 4.8 (#11) (Andre Kiste) + + * silverstripe/tagfield (2.6.0 -> 2.7.0) + * 2021-08-05 [068df7e](https://github.com/silverstripe/silverstripe-tagfield/commit/068df7e190d6b955c01bdc2b667b324793b0f7c2) Bump ini from 1.3.5 to 1.3.8 (dependabot[bot]) + * 2021-08-05 [f996bba](https://github.com/silverstripe/silverstripe-tagfield/commit/f996bbab90c2fc5692355ff961d1503a1835b7bd) Bump ws from 5.2.2 to 5.2.3 (dependabot[bot]) + * 2021-08-05 [1273c72](https://github.com/silverstripe/silverstripe-tagfield/commit/1273c728e58d77e912d276c002dc737eaf5258d5) Bump https-proxy-agent from 2.2.2 to 2.2.4 (dependabot[bot]) + * 2021-05-10 [bb59a75](https://github.com/silverstripe/silverstripe-tagfield/commit/bb59a7562271ed2da87ae2669efe0470ba412824) Bump hosted-git-info from 2.8.8 to 2.8.9 (dependabot[bot]) + * 2021-05-09 [7b289cc](https://github.com/silverstripe/silverstripe-tagfield/commit/7b289cca43d68567ee3af6e0b8836351e8f2ac7c) Bump lodash from 4.17.20 to 4.17.21 (dependabot[bot]) + * 2021-05-08 [f685681](https://github.com/silverstripe/silverstripe-tagfield/commit/f685681fb3bb346f4c1ffa8016bc115fec587c92) Bump url-parse from 1.4.7 to 1.5.1 (dependabot[bot]) + * 2021-05-07 [476e657](https://github.com/silverstripe/silverstripe-tagfield/commit/476e657971b522ca8231f95effca50f69e4aff82) Bump handlebars from 4.5.3 to 4.7.7 (dependabot[bot]) + * 2021-05-07 [281e237](https://github.com/silverstripe/silverstripe-tagfield/commit/281e237eadea28b0f58b50a312ebc4f032510716) Bump ua-parser-js from 0.7.20 to 0.7.28 (dependabot[bot]) + * 2021-03-30 [6406f21](https://github.com/silverstripe/silverstripe-tagfield/commit/6406f215c8c75f7b5d36157b9b8a6758e8580694) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-09 [b11b434](https://github.com/silverstripe/silverstripe-tagfield/commit/b11b434cf51f4b74da61df81fb112a3094d3b2c0) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + * 2020-10-16 [3427bd4](https://github.com/silverstripe/silverstripe-tagfield/commit/3427bd4ef76866d5b75f02c83c95f24ffa1df548) Bump npm-user-validate from 1.0.0 to 1.0.1 (dependabot[bot]) + + * silverstripe/recipe-blog (1.8.0 -> 1.9.0) + * 2021-08-29 [ba5d424](https://github.com/silverstripe/recipe-blog/commit/ba5d424b81d06b5939e527645551b40eedf02e26) Update dependency versions (Steve Boyd) + * 2021-05-18 [aa6b6ab](https://github.com/silverstripe/recipe-blog/commit/aa6b6abaddaf5b3aa7fa67d2b8ac3d22840cdc2e) Update dependencies for CMS 4.8 (#22) (Andre Kiste) + + * silverstripe/blog (3.7.0 -> 3.8.0) + * 2021-06-06 [3a11155](https://github.com/silverstripe/silverstripe-blog/commit/3a11155ff40b32b51df2df1b13953ea3217deee7) Bump ws from 6.2.1 to 6.2.2 (dependabot[bot]) + * 2021-05-15 [5e90a4a](https://github.com/silverstripe/silverstripe-blog/commit/5e90a4a606bd4651ad90baa3e18eb8a67487f258) Bump npm from 6.13.0 to 6.14.13 (dependabot[bot]) + * 2021-05-14 [fde34fe](https://github.com/silverstripe/silverstripe-blog/commit/fde34fe80aafd9de19eabf45f3e2086e99550ba9) Bump hosted-git-info from 2.8.5 to 2.8.9 (dependabot[bot]) + * 2021-05-14 [8f507d6](https://github.com/silverstripe/silverstripe-blog/commit/8f507d60eace33ece04190a434e87ca915d4748f) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-05-14 [a5d1bb9](https://github.com/silverstripe/silverstripe-blog/commit/a5d1bb97ba1c59211773c6835c1e8e819396678a) Bump npm-registry-fetch from 4.0.2 to 4.0.7 (dependabot[bot]) + * 2021-05-14 [04e2d42](https://github.com/silverstripe/silverstripe-blog/commit/04e2d42a4d06147b6bc61197d38070e4fa2a049f) Bump node-sass from 4.13.0 to 4.14.1 (dependabot[bot]) + * 2021-04-07 [d7c4ad9](https://github.com/silverstripe/silverstripe-blog/commit/d7c4ad9a1be1d01b10be08d729b99bc2c52bcebf) Bump ini from 1.3.5 to 1.3.8 (dependabot[bot]) + * 2021-04-07 [0a98ad2](https://github.com/silverstripe/silverstripe-blog/commit/0a98ad234c3f315ff24471b4b0d5727a328e2506) Bump bin-links from 1.1.3 to 1.1.8 (dependabot[bot]) + * 2021-04-07 [b85e65b](https://github.com/silverstripe/silverstripe-blog/commit/b85e65bd3b1e5ac9dec1d8354d87fe2868fed179) Bump dot-prop from 4.2.0 to 4.2.1 (dependabot[bot]) + * 2021-04-07 [5ecb37f](https://github.com/silverstripe/silverstripe-blog/commit/5ecb37f2c6f9ebf65aac765ae876ba4b4732b136) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + + * silverstripe/comments (3.5.0 -> 3.6.0) + * 2021-06-05 [3a41303](https://github.com/silverstripe/silverstripe-comments/commit/3a4130302ddc4fdd20935044f4e659c7b813c7b6) Bump ws from 6.2.1 to 6.2.2 (dependabot[bot]) + * 2021-05-10 [a4eeec4](https://github.com/silverstripe/silverstripe-comments/commit/a4eeec4bba3e8b23bd5bc1adaff14bf92115282e) Bump hosted-git-info from 2.8.8 to 2.8.9 (dependabot[bot]) + + * silverstripe/recipe-collaboration (1.8.0 -> 1.9.0) + * 2021-08-29 [61a51a7](https://github.com/silverstripe/recipe-collaboration/commit/61a51a7797c6f822e8fac4b75538e4de4b6693cf) Update dependency versions (Steve Boyd) + + * silverstripe/contentreview (4.2.0 -> 4.3.0) + * 2021-08-08 [53209b9](https://github.com/silverstripe/silverstripe-contentreview/commit/53209b99db2f990890ef62016cb9e5d50e312c2e) Bump tar from 2.2.1 to 2.2.2 (dependabot[bot]) + * 2021-08-05 [21aebc4](https://github.com/silverstripe/silverstripe-contentreview/commit/21aebc40febc79c1348ded0261511507d71020db) Bump node-sass from 4.5.3 to 4.14.1 (dependabot[bot]) + * 2021-08-05 [aa019ea](https://github.com/silverstripe/silverstripe-contentreview/commit/aa019ea7ff1030480021a76a42b429deb06bc74b) Bump ini from 1.3.4 to 1.3.8 (dependabot[bot]) + * 2021-05-14 [63e500e](https://github.com/silverstripe/silverstripe-contentreview/commit/63e500e0831f507b5e928f8cac4170b0bbefec07) Bump is-my-json-valid from 2.16.1 to 2.20.5 (dependabot[bot]) + * 2021-05-12 [ce9ae1d](https://github.com/silverstripe/silverstripe-contentreview/commit/ce9ae1d0bef5db7b1fc4670165fcc7e751536b91) Bump merge from 1.2.0 to 1.2.1 (dependabot[bot]) + * 2021-05-10 [497e8eb](https://github.com/silverstripe/silverstripe-contentreview/commit/497e8eb6c5e7e44df338de8043e0b3d7e9c1ccee) Bump hosted-git-info from 2.5.0 to 2.8.9 (dependabot[bot]) + * 2021-05-07 [9c4b558](https://github.com/silverstripe/silverstripe-contentreview/commit/9c4b5586fe2dedaf9e19bfaec956b686b95bad29) Bump ua-parser-js from 0.7.14 to 0.7.28 (dependabot[bot]) + * 2021-03-30 [30cf99e](https://github.com/silverstripe/silverstripe-contentreview/commit/30cf99ebe2be4fcd5600d4324b4e394d1d628433) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-09 [4944a14](https://github.com/silverstripe/silverstripe-contentreview/commit/4944a142416d482f3d62eb3de411f07956a4b82a) Bump elliptic from 6.4.0 to 6.5.4 (dependabot[bot]) + + * silverstripe/sharedraftcontent (2.4.0 -> 2.5.0) + * 2021-08-08 [a9858b5](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/a9858b591f5adf921114e7164957fd6d241f5294) Bump node-sass from 4.13.0 to 4.14.1 (dependabot[bot]) + * 2021-08-08 [3906f66](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/3906f66de6882ac456ec5ca2a2f53542dce569bc) Bump url-parse from 1.4.7 to 1.5.3 (dependabot[bot]) + * 2021-08-08 [a2d44cd](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/a2d44cd6443a20e566d2a27bc35206078350fd66) Bump ua-parser-js from 0.7.20 to 0.7.28 (dependabot[bot]) + * 2021-08-05 [be19319](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/be19319c90a3ec4b587fb78e84950a257f7ec698) Bump npm from 6.13.4 to 6.14.14 (dependabot[bot]) + * 2021-06-06 [a5ab724](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/a5ab7243464a7664c6721502c660ee38dd3914aa) Bump ws from 6.2.1 to 6.2.2 (dependabot[bot]) + * 2021-05-10 [ac34e5b](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/ac34e5b52181e3ecc8cd8f0d1832001f508e923b) Bump hosted-git-info from 2.8.5 to 2.8.9 (dependabot[bot]) + * 2021-05-09 [00e7219](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/00e7219306070501b2a99d01be7acbedc1658b3c) Bump lodash from 4.17.15 to 4.17.21 (dependabot[bot]) + * 2021-03-30 [6372b33](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/6372b33ce4e671088cc97b78d2cb9ee9dc5a659e) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-09 [bafecb1](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/bafecb130f41eea339e91251b7f67ff70403df3d) Bump elliptic from 6.5.1 to 6.5.4 (dependabot[bot]) + + * symbiote/silverstripe-advancedworkflow (5.4.0 -> 5.5.0) + * 2021-08-04 [5a86ab1](https://github.com/symbiote/silverstripe-advancedworkflow/commit/5a86ab1c82a2d00eb2a68f050f31d40186a0a39e) Bump tar from 2.2.1 to 2.2.2 (dependabot[bot]) + * 2021-05-14 [e78b63e](https://github.com/symbiote/silverstripe-advancedworkflow/commit/e78b63ec85e3df9366defbf80a3cf2fca57cd7d1) Bump ini from 1.3.5 to 1.3.8 (dependabot[bot]) + * 2021-03-30 [c90dcad](https://github.com/symbiote/silverstripe-advancedworkflow/commit/c90dcad5e359658a4b362d596d6c49cf2f1a7ec5) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-09 [2aa7257](https://github.com/symbiote/silverstripe-advancedworkflow/commit/2aa725704d27461972a3a98683b8b79fa913a15c) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + + * silverstripe/recipe-form-building (1.8.0 -> 1.9.0) + * 2021-09-05 [6d5ab6a](https://github.com/silverstripe/recipe-form-building/commit/6d5ab6ae2bf0930c58665b32f2518cd9609479ce) Update dependency versions (Steve Boyd) + * 2021-05-18 [ac80737](https://github.com/silverstripe/recipe-form-building/commit/ac80737b65ee06ecb3091f423b11d225bfd21ea5) Update dependencies for CMS 4.8 (#11) (Andre Kiste) + + * silverstripe/segment-field (2.3.0 -> 2.4.0) + * 2021-06-05 [bbadba6](https://github.com/silverstripe/silverstripe-segment-field/commit/bbadba6f1ab29237c27b08b63b31c16307a500d5) Bump ws from 6.2.1 to 6.2.2 (dependabot[bot]) + * 2021-05-10 [b073ad0](https://github.com/silverstripe/silverstripe-segment-field/commit/b073ad08a58ec5944183dd4ad2d66b6b823151f9) Bump hosted-git-info from 2.8.8 to 2.8.9 (dependabot[bot]) + * 2021-05-09 [8c9484b](https://github.com/silverstripe/silverstripe-segment-field/commit/8c9484b40a1980aabe0f1990c85fba497fbabff2) Bump lodash from 4.17.20 to 4.17.21 (dependabot[bot]) + * 2021-04-30 [b771e34](https://github.com/silverstripe/silverstripe-segment-field/commit/b771e34b637618e82ee25667c01ee0f85722f57c) Bump ssri from 6.0.1 to 6.0.2 (dependabot[bot]) + * 2021-03-30 [e834d80](https://github.com/silverstripe/silverstripe-segment-field/commit/e834d80064f2a3220ed37a351f83f710ddce7df6) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-09 [f710cbd](https://github.com/silverstripe/silverstripe-segment-field/commit/f710cbd4ab2d23ac8eec93bb5033dd9639f816a4) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + + * silverstripe/userforms (5.9.0 -> 5.10.0) + * 2021-06-05 [9c1f935](https://github.com/silverstripe/silverstripe-userforms/commit/9c1f93543312290dd5df529e5033b5f9fa8f086b) Bump ws from 6.2.1 to 6.2.2 (dependabot[bot]) + * 2021-05-14 [19a185d](https://github.com/silverstripe/silverstripe-userforms/commit/19a185d86abcd529bbb4b83750a253d575244c4a) Bump lodash from 4.17.20 to 4.17.21 (dependabot[bot]) + * 2021-05-14 [e866b09](https://github.com/silverstripe/silverstripe-userforms/commit/e866b09376fcf0a1bfdd67c66845a1b1aa27ae74) Bump hosted-git-info from 2.8.5 to 2.8.9 (dependabot[bot]) + * 2021-05-14 [9fcfe23](https://github.com/silverstripe/silverstripe-userforms/commit/9fcfe23f7fbee41803d6c04c8bdd6d79c9792046) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + * 2021-03-30 [78a49b9](https://github.com/silverstripe/silverstripe-userforms/commit/78a49b9d492407aa2d428dea8cda674a21f91ecf) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-11 [f1fb087](https://github.com/silverstripe/silverstripe-userforms/commit/f1fb087812f95145a04bf82902fc68addf3f91e8) Bump npm from 6.13.4 to 6.14.11 (dependabot[bot]) + + * silverstripe/recipe-reporting-tools (1.8.0 -> 1.9.0) + * 2021-08-29 [67a9cfd](https://github.com/silverstripe/recipe-reporting-tools/commit/67a9cfd2a09b9a6c209641d94fccc1e97f9aa020) Update dependency versions (Steve Boyd) + + * silverstripe/recipe-services (1.8.0 -> 1.9.0) + * 2021-08-29 [c370c86](https://github.com/silverstripe/recipe-authoring-tools/commit/c370c8674eb67722d12665f0dba9c39597ff6dac) Update dependency versions (Steve Boyd) + + * silverstripe/recipe-content-blocks (2.8.0 -> 2.9.0) + * 2021-08-29 [228f0c1](https://github.com/silverstripe/recipe-content-blocks/commit/228f0c13d9a67d629e27d595b5caf9e342e3cab7) Update dependency versions (Steve Boyd) + * 2021-08-25 [3b9b5ff](https://github.com/silverstripe/recipe-content-blocks/commit/3b9b5ff6c354e43d18163bae8b8250125589ce1f) Update recipe content block to always release Elemental (Maxime Rainville) + * 2021-05-19 [16b88df](https://github.com/silverstripe/recipe-content-blocks/commit/16b88df9da7d996c54f7b538b3101f437f46dc45) Update dependencies for CMS 4.8 (#14) (Andre Kiste) + + * dnadesign/silverstripe-elemental (4.6.0 -> 4.7.0) + * 2021-04-19 [bff02b0](https://github.com/silverstripe/silverstripe-elemental/commit/bff02b0798a13b3c82afeb11efbedad74c06a094) Bump ssri from 6.0.1 to 6.0.2 (dependabot[bot]) + * 2020-12-11 [058b0ce](https://github.com/silverstripe/silverstripe-elemental/commit/058b0ce1a90e45167892f557ee81649027f5aac0) Bump ini from 1.3.5 to 1.3.7 (dependabot[bot]) + + * silverstripe/elemental-fileblock (2.1.2 -> 2.2.0) + * 2021-01-26 [1958c77](https://github.com/silverstripe/silverstripe-elemental-fileblock/commit/1958c774024be2f8b0f6c45e8698d31fa42458d2) PHP8 Support, remove branch alias (Steve Boyd) + + * silverstripe/elemental-bannerblock (2.2.1 -> 2.3.0) + * 2021-03-30 [56d3784](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/56d37842b74b31a481e3c35c5faeb632ad185ecc) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + + * silverstripe/recipe-solr-search (2.8.0 -> 2.9.0) + * 2021-09-05 [653e8d1](https://github.com/silverstripe/recipe-solr-search/commit/653e8d1089c2818bda1a96c84279f2693a59bd95) Update dependency versions (Steve Boyd) + * 2021-05-18 [5b1b134](https://github.com/silverstripe/recipe-solr-search/commit/5b1b13413483f6eee6a290a523bb3487547d631d) Update dependencies for CMS 4.8 (Andre Kiste) + + * silverstripe/totp-authenticator (4.1.1 -> 4.2.0) + * 2021-08-05 [0b08f28](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/0b08f28150357ec053babb7697526f796adfe3e9) Bump ws from 5.2.2 to 5.2.3 (dependabot[bot]) + * 2021-05-14 [c4f4fe1](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/c4f4fe16567820dc180ce0e40e16bbf4ac20a2da) Bump lodash from 4.17.20 to 4.17.21 (dependabot[bot]) + * 2021-05-10 [58cfa12](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/58cfa12b500e3f3e9028b038d245feb5b83afbff) Bump hosted-git-info from 2.8.8 to 2.8.9 (dependabot[bot]) + * 2021-05-07 [4568894](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/4568894bec83500cbf3e6727740b6acb6c86d303) Bump handlebars from 4.5.1 to 4.7.7 (dependabot[bot]) + * 2021-03-30 [8b13f4a](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/8b13f4a69fefce784a5d85d3be98ef643c3cf761) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-09 [09a2e13](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/09a2e13d06239bcfad5b06db5dbd088cb9e0e2dc) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + * 2020-12-11 [5f52065](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/5f52065a3d90e14c14348ead27a91fc6f2b38af8) Bump ini from 1.3.5 to 1.3.7 (dependabot[bot]) + * 2020-11-11 [c5fd81f](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/c5fd81feb4991ab0bd0b368204886e3fac7ac031) Bump dot-prop from 4.2.0 to 4.2.1 (dependabot[bot]) + + * silverstripe/mfa (4.3.0 -> 4.4.0) + * 2021-08-05 [f31c85a](https://github.com/silverstripe/silverstripe-mfa/commit/f31c85a02f632ee53bd6dd7f39cb88f74801b6cf) Bump ws from 5.2.2 to 5.2.3 (dependabot[bot]) + * 2021-05-14 [5cf337d](https://github.com/silverstripe/silverstripe-mfa/commit/5cf337d5f9dd46c44936da790946fff3a47192a5) Bump ini from 1.3.5 to 1.3.8 (dependabot[bot]) + * 2021-05-11 [638148f](https://github.com/silverstripe/silverstripe-mfa/commit/638148fc60fa7f46b92b98d2ca66e14d5eaef9cf) Bump hosted-git-info from 2.8.8 to 2.8.9 (dependabot[bot]) + * 2021-05-11 [52ce62f](https://github.com/silverstripe/silverstripe-mfa/commit/52ce62f1ed0baa35473e17e975052bf99906fae8) Bump lodash from 4.17.20 to 4.17.21 (dependabot[bot]) + * 2021-05-09 [35eb656](https://github.com/silverstripe/silverstripe-mfa/commit/35eb6568fd3d511a9ff8ad3e43d2148cc546361c) Bump handlebars from 4.7.6 to 4.7.7 (dependabot[bot]) + * 2021-05-07 [2667e73](https://github.com/silverstripe/silverstripe-mfa/commit/2667e73abb0e6891e917498aefc2870eda6e92cc) Bump ua-parser-js from 0.7.20 to 0.7.28 (dependabot[bot]) + * 2021-04-01 [6dadc43](https://github.com/silverstripe/silverstripe-mfa/commit/6dadc43d6d2dd345e6f4a5c8d6f627620447d705) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-10 [dfc08a5](https://github.com/silverstripe/silverstripe-mfa/commit/dfc08a5b23733d6e61326dbbda23446581ca727f) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + + * silverstripe/crontask (2.2.0 -> 2.3.0) + * 2021-08-05 [2ccad81](https://github.com/silverstripe/silverstripe-crontask/commit/2ccad81a4e4e4e4d29eae288c631988eba994aa4) php 8 requirement too narrow (Steve Boyd) + + * silverstripe/ckan-registry (1.2.0 -> 1.3.0) + * 2021-05-10 [66b90b8](https://github.com/silverstripe/silverstripe-ckan-registry/commit/66b90b844ad6a5f7ef0bca4d946f30be2f30270f) Bump hosted-git-info from 2.8.5 to 2.8.9 (dependabot[bot]) + * 2021-05-07 [38b6e34](https://github.com/silverstripe/silverstripe-ckan-registry/commit/38b6e340c5cabe3bca4d9a45c4008eab76a75b49) Bump url-parse from 1.4.7 to 1.5.1 (dependabot[bot]) + * 2021-05-07 [e75e844](https://github.com/silverstripe/silverstripe-ckan-registry/commit/e75e844922cf0fb05d75d87a7ae029ee8e6d2c5b) Bump handlebars from 4.5.1 to 4.7.7 (dependabot[bot]) + * 2021-05-06 [da3ab3a](https://github.com/silverstripe/silverstripe-ckan-registry/commit/da3ab3ae97ccd7ee728974ff97d69b670eeed6d4) Bump ua-parser-js from 0.7.20 to 0.7.28 (dependabot[bot]) + * 2021-03-30 [973429b](https://github.com/silverstripe/silverstripe-ckan-registry/commit/973429bb461366ba3b8a519d4337c23226350676) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-09 [adc04ba](https://github.com/silverstripe/silverstripe-ckan-registry/commit/adc04ba7a6d6aedab188a43a905b25637daa6814) Bump elliptic from 6.5.1 to 6.5.4 (dependabot[bot]) + * 2020-06-06 [8e56dbb](https://github.com/silverstripe/silverstripe-ckan-registry/commit/8e56dbb7e197a3b326ddcf72ab87ada1a813408c) Bump websocket-extensions from 0.1.3 to 0.1.4 (dependabot[bot]) + + * silverstripe/webauthn-authenticator (4.2.0 -> 4.3.0) + * 2021-08-05 [6d4eea7](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/6d4eea7fa75d1c68a5421c1c989f46adc0f26332) Bump ws from 5.2.2 to 5.2.3 (dependabot[bot]) + * 2021-05-10 [4b48b24](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/4b48b243f495c42220d4ee8f0d481a1086796e5a) Bump hosted-git-info from 2.8.8 to 2.8.9 (dependabot[bot]) + * 2021-05-08 [23033b1](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/23033b18cdc04cb69f7e3be62356b20a250b5d67) Bump lodash from 4.17.20 to 4.17.21 (dependabot[bot]) + * 2021-05-07 [32e9eab](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/32e9eabaf8121445808c4bdaeef8c17c4efc0921) Bump handlebars from 4.7.6 to 4.7.7 (dependabot[bot]) + * 2021-03-30 [5ee0fa1](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/5ee0fa10db8901c40b6d2cae8dd20d6aa859ab8c) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot]) + * 2021-03-09 [1414320](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/1414320cb920ea93c3f9b5a402a3b48378f58716) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot]) + + * silverstripe/recipe-ccl (2.8.0 -> 2.9.0) + * 2021-05-19 [630511b](https://github.com/silverstripe/recipe-ccl/commit/630511b020be1c3401ab7a137dd7f4e8f19c04b3) Update dependencies for CMS 4.8 (#19) (Andre Kiste) + + +### Documentation + + + * silverstripe/assets (1.8.0 -> 1.9.0) + * 2021-03-19 [4064bb0](https://github.com/silverstripe/silverstripe-assets/commit/4064bb0463404bb573b804acc829ec4883b14245) Update PHPDoc for Upload_Validator::setAllowedMaxFileSize to reflect that a string can be provided (Maxime Rainville) + + * silverstripe/framework (4.8.0 -> 4.9.0) + * 2021-09-06 [00e29758f](https://github.com/silverstripe/silverstripe-framework/commit/00e29758ff7a1caf31e65ab41791b7b89c4a6ffc) Add information regarding Security::setCurrentUser() (Steve Boyd) + * 2021-08-26 [b38b27fad](https://github.com/silverstripe/silverstripe-framework/commit/b38b27fad7fba0b54b5b0d90b4e31f482fbe3e37) Add SwiftMailer to changelog (Steve Boyd) + * 2021-08-23 [a2f850d65](https://github.com/silverstripe/silverstripe-framework/commit/a2f850d65f09a9ac52643d3d62353d6acc5fce64) Add email section to server requirements (Steve Boyd) + * 2021-08-18 [c59ef273e](https://github.com/silverstripe/silverstripe-framework/commit/c59ef273e2b2a514eea79004a1328020f335aa05) incorrect php version reference (brynwhyman) + * 2021-08-17 [2838625a0](https://github.com/silverstripe/silverstripe-framework/commit/2838625a090987aa2a4877a63c204084f3cbb8c6) Add extra detail to the Image Lazy Loading doc (#10049) (Maxime Rainville) + * 2021-08-15 [e78a93588](https://github.com/silverstripe/silverstripe-framework/commit/e78a93588b8e3a04f0bc3b56a4d7d8f3f9ea3c21) Add session-manager to changelog (Steve Boyd) + * 2021-08-10 [0128bbd80](https://github.com/silverstripe/silverstripe-framework/commit/0128bbd80471c8ea91aabb04c021173853a4d25b) core committer onboarding proccess (brynwhyman) + * 2021-08-04 [0c998fc5c](https://github.com/silverstripe/silverstripe-framework/commit/0c998fc5ceedc0db0bf7f7f420609faae165f708) Add Michal Kleiner as core committer (Aaron Carlino) + * 2021-07-17 [c8c7ee4a0](https://github.com/silverstripe/silverstripe-framework/commit/c8c7ee4a0858a1fd4be4900f184d3180a3075dd8) better docblock for TinyMCEConfig::removeButtons (Nicolaas) + * 2021-06-30 [fdbd89976](https://github.com/silverstripe/silverstripe-framework/commit/fdbd89976628a150de403b8a55166c9aaa8298b2) Update SilverStripe to Silverstripe CMS (Michael Pritchard) + * 2021-06-30 [29320841c](https://github.com/silverstripe/silverstripe-framework/commit/29320841c91ef9797397086e32b35c6bb11c72bc) improve graphql inheritance docs (Aaron Carlino) + * 2021-06-30 [0537e769f](https://github.com/silverstripe/silverstripe-framework/commit/0537e769fc4868c71a9e1da9ad0bb72787eee90a) Fix line break (Aaron Carlino) + * 2021-06-30 [f3e1cd459](https://github.com/silverstripe/silverstripe-framework/commit/f3e1cd45997929156ba8c85e859e19fa00547b01) new union and interface inheritance pattern (#9912) (Aaron Carlino) + * 2021-06-24 [b5a1024b1](https://github.com/silverstripe/silverstripe-framework/commit/b5a1024b139b22e0c1c0113b2716623ad3c60738) update SilverStripe to Silverstripe (Michael Pritchard) + * 2021-06-22 [53ef257ff](https://github.com/silverstripe/silverstripe-framework/commit/53ef257ff483233a66090e13f072cf9ce1adeaf9) update SilverStripe to Silverstripe (Michael Pritchard) + * 2021-06-08 [ecd58cbc6](https://github.com/silverstripe/silverstripe-framework/commit/ecd58cbc6972cf2a0fa2ab726ebe8cc88b36f0ab) Remove stray 3.x changelogs (Ingo Schommer) + * 2021-06-08 [f1f946296](https://github.com/silverstripe/silverstripe-framework/commit/f1f946296164191b4e4b03c64872f409eb955644) Add recipe version (Steve Boyd) + * 2021-06-08 [1fc1e71bb](https://github.com/silverstripe/silverstripe-framework/commit/1fc1e71bbff3606f1e49a3259edf42a28dc5a587) Tweak 4.8.0 changelog GraphQL entry (Maxime Rainville) + * 2021-06-08 [d5d9f4fd4](https://github.com/silverstripe/silverstripe-framework/commit/d5d9f4fd413502e70640c6b25bc47a3a471af552) Changelog for 4.8.0 (Steve Boyd) + * 2021-06-01 [fa3c5e6fe](https://github.com/silverstripe/silverstripe-framework/commit/fa3c5e6fea795d9d8c283c655f0932f0858cd334) Clearer sysadmin guidance for &quot;packaging&quot; (#9960) (Ingo Schommer) + * 2021-06-01 [6e13600a8](https://github.com/silverstripe/silverstripe-framework/commit/6e13600a884e90b08d33c61f9d0524f36648ecf4) Update pattern library link to point to new repo (Maxime Rainville) + * 2021-05-20 [8c9e203f1](https://github.com/silverstripe/silverstripe-framework/commit/8c9e203f1e337f803717f7e6b92587bc8c0ca417) 4.9.0 changelog with dot notation changes (Ingo Schommer) + * 2021-05-20 [99c56fc91](https://github.com/silverstripe/silverstripe-framework/commit/99c56fc913369f12b33f24cd1bcb8fd261189bb6) Handling nested form data (Ingo Schommer) + + * silverstripe/versioned-admin (1.8.0 -> 1.9.0) + * 2020-10-01 [936a54f](https://github.com/silverstripe/silverstripe-versioned-admin/commit/936a54fdc5a8e2b67f06dd92f68248ace0e2284a) include userhelp link in versioned readme (brynwhyman) + + * silverstripe/session-manager (0.1.1 -> 1.1.0) + * 2021-08-11 [2bedbc9](https://github.com/silverstripe/silverstripe-session-manager/commit/2bedbc9a633f8f51b39a7549d03cb7ad1e91f869) Move userhelp to silverstripe-userhelp-content (Steve Boyd) + * 2021-06-27 [ad3deb7](https://github.com/silverstripe/silverstripe-session-manager/commit/ad3deb73c263d0a40dead4318cc325668bb6b52e) Add userhelp for session manager (Andre Kiste) + + * silverstripe/recipe-content-blocks (2.8.0 -> 2.9.0) + * 2021-08-25 [01fd174](https://github.com/silverstripe/recipe-content-blocks/commit/01fd1746a75fe524845633788f8d78d05c4af2c2) Remove reference to SilverStripe and CWP (Maxime Rainville) + + +### Other changes + + + * silverstripe/recipe-kitchen-sink (4.8.0 -> 4.9.0) + * 2021-08-25 [2361535](https://github.com/silverstripe/recipe-kitchen-sink/commit/23615358a2a1f88200ab03caed3fd72a431ed6f7) Loosen contstrain for release (Maxime Rainville) + * 2021-08-25 [cfeb879](https://github.com/silverstripe/recipe-kitchen-sink/commit/cfeb879866880cb9fe836ab67c1ae775cc8462ab) Set up changelog (Maxime Rainville) + + * silverstripe/assets (1.8.0 -> 1.9.0) + * 2021-07-16 [627be98](https://github.com/silverstripe/silverstripe-assets/commit/627be983b2abc6cfa377d3b8a9d7d76e02a317d9) PATCH: fix docblock for FIle::find (Nicolaas) + * 2021-07-08 [576fd35](https://github.com/silverstripe/silverstripe-assets/commit/576fd352f91679abec98904c7603f2fb3cbfd4a4) Remove ability to set loading state with &#039;eager&#039;/&#039;lazy&#039; string (Maxime Rainville) + * 2021-07-06 [f0695d2](https://github.com/silverstripe/silverstripe-assets/commit/f0695d2c3e77c542ced0372613adde5b6f0cb992) Update pre-existing test to work with new image syntax (Maxime Rainville) + * 2021-07-06 [bc7a718](https://github.com/silverstripe/silverstripe-assets/commit/bc7a7182c8d2d7c3b3271a881d13ae89b2966244) Tweak casting settings (Maxime Rainville) + * 2021-07-06 [c0844ea](https://github.com/silverstripe/silverstripe-assets/commit/c0844ea4273a9b9878aa102c3ecc4e594bd6204d) Silly typo fix (Maxime Rainville) + + * silverstripe/config (1.1.0 -> 1.2.0) + * 2021-01-21 [dbadfe5](https://github.com/silverstripe/silverstripe-config/commit/dbadfe5d85dc412818b09e7371d8213921af35dc) Update build status badge (Steve Boyd) + * 2020-12-06 [480475f](https://github.com/silverstripe/silverstripe-config/commit/480475f1dcc1aae979a363476f9c73469bee4a9f) Use stable for topsort (Steve Boyd) + + * silverstripe/framework (4.8.0 -> 4.9.0) + * 2021-10-05 [d66b64b6a](https://github.com/silverstripe/silverstripe-framework/commit/d66b64b6aebf605a2f1bc94ae2a82010b1af56c4) Update translations (Maxime Rainville) + * 2021-08-26 [5ee6fa5ef](https://github.com/silverstripe/silverstripe-framework/commit/5ee6fa5ef204e19494dd6d8dcc51c3f42c2fd9a9) Update translations (Maxime Rainville) + * 2021-08-22 [c8d1b4988](https://github.com/silverstripe/silverstripe-framework/commit/c8d1b49880066829c83884d8435cd6a8a50098ac) Adding spider food for SEO purposes. (Patrick Nelson) + * 2021-08-06 [6e8a39056](https://github.com/silverstripe/silverstripe-framework/commit/6e8a3905619d85e1b1b2dbf84296d5cb084b5e3f) Change SilverStripe to Silverstripe CMS (Michael Pritchard (HEIW)) + * 2021-08-02 [cacd76235](https://github.com/silverstripe/silverstripe-framework/commit/cacd7623574969fb30586f39d40962be25b14205) Avoid &quot;new&quot; keyword to instantiate CompositeValidator (GuySartorelli) + * 2021-07-13 [3e2ca3027](https://github.com/silverstripe/silverstripe-framework/commit/3e2ca3027ba178bfe73a1b84ac23c1aff4497150) destroy session on logout instead of restarting it (Florian Thoma) + * 2021-07-08 [03b43227a](https://github.com/silverstripe/silverstripe-framework/commit/03b43227a5b484bcc3a9eac8340c73a28477e664) Update 02_Images.md (Steve Boyd) + * 2021-07-01 [8225b2e89](https://github.com/silverstripe/silverstripe-framework/commit/8225b2e890e752f593ba1285bed05c0ed4816943) Update 02_Images.md (Andre Kiste) + * 2021-06-25 [b6d12bc14](https://github.com/silverstripe/silverstripe-framework/commit/b6d12bc1440df7d08fad1cfeed9056682679f742) Add docs for lazy loading (André Kiste) + * 2021-06-21 [62a74e97c](https://github.com/silverstripe/silverstripe-framework/commit/62a74e97ccb94a780a9906077bf93249c38eaf31) Instructions Memcached change (Remy Vaartjes) + * 2021-05-31 [843671d10](https://github.com/silverstripe/silverstripe-framework/commit/843671d108f16ed8e46257d8ac330e3309970ab8) [doc] Add additional information required to run the test (Pen y Fan) + * 2021-05-31 [bba872e02](https://github.com/silverstripe/silverstripe-framework/commit/bba872e02ce34e18a7533e734db76dd875d35f67) [doc] Update to Silverstripe 4 convention (Pen y Fan) + * 2021-05-31 [44c30aea2](https://github.com/silverstripe/silverstripe-framework/commit/44c30aea2d48e347c539622f9df67ee3f2e00b8e) META: Publish docs on updates to 3 branch, not 3.7 (Aaron Carlino) + * 2021-05-20 [7a0d35452](https://github.com/silverstripe/silverstripe-framework/commit/7a0d354529a46e1b9542714a29fcd4805d224eab) Linter fixes (Ingo Schommer) + * 2021-05-20 [8806b3bef](https://github.com/silverstripe/silverstripe-framework/commit/8806b3befc447c7d6e0a26452bdab314b66229c1) Fixes required for dot notation support in fields (Ingo Schommer) + * 2021-05-19 [ebdbbfd59](https://github.com/silverstripe/silverstripe-framework/commit/ebdbbfd5955cf2ae3b3e26f660d0472971b2a58f) Update 04_Shortcodes.md (chromos33) + * 2021-05-16 [3a49759c0](https://github.com/silverstripe/silverstripe-framework/commit/3a49759c0fe9034d57d2dfae38a35c9e06c8c97d) Update 09_Casting.md (Manuel Thalmann) + * 2021-05-16 [293f7e9d0](https://github.com/silverstripe/silverstripe-framework/commit/293f7e9d0506e5e20097513bdf936be0dc1c2395) Update 06_Themes.md (Manuel Thalmann) + * 2021-05-16 [0d649e0dd](https://github.com/silverstripe/silverstripe-framework/commit/0d649e0dd84481f470ad3839bf040faa3126bbdd) Update 05_Template_Inheritance.md (Manuel Thalmann) + * 2021-05-16 [deb767d9f](https://github.com/silverstripe/silverstripe-framework/commit/deb767d9fcb662fcc5cd89ca892c847dbaab34f0) Update 03_Requirements.md (Manuel Thalmann) + * 2021-05-16 [64d569ee0](https://github.com/silverstripe/silverstripe-framework/commit/64d569ee0200e8d7bcb5b824fc019f3840c9d841) Update 02_Common_Variables.md (Manuel Thalmann) + * 2021-05-16 [a1ace4229](https://github.com/silverstripe/silverstripe-framework/commit/a1ace422949ce1843fb1709e1542d1e50455b544) Update 01_Syntax.md (Manuel Thalmann) + * 2021-05-16 [c3ff7a417](https://github.com/silverstripe/silverstripe-framework/commit/c3ff7a417bb83f1d7c97aa8a1c699eeecbd5d451) Update index.md (Manuel Thalmann) + * 2021-05-14 [4de89323f](https://github.com/silverstripe/silverstripe-framework/commit/4de89323f7e8c2454a9659bd158c79f77cc3d27f) Update Grouping_DataObject_Sets.md (Manuel Thalmann) + * 2021-05-14 [e37188da4](https://github.com/silverstripe/silverstripe-framework/commit/e37188da4cb52488037d95d1102ae2d6312cbf2f) Revert unnecessary change (Manuel Thalmann) + * 2021-05-14 [4f57bd94d](https://github.com/silverstripe/silverstripe-framework/commit/4f57bd94decc36d048928e99a370115358d3d959) Apply further suggestion (Manuel Thalmann) + * 2021-05-14 [42f0957bd](https://github.com/silverstripe/silverstripe-framework/commit/42f0957bd53e99806b58a494ccc6dd46778ce113) Update Dynamic_Default_Fields.md (Manuel Thalmann) + * 2021-05-14 [ff7654db1](https://github.com/silverstripe/silverstripe-framework/commit/ff7654db1f4ec82cf2479c6da1df41348d345bc3) Update 11_Scaffolding.md (Manuel Thalmann) + * 2021-05-14 [b0cdff361](https://github.com/silverstripe/silverstripe-framework/commit/b0cdff361931a92a97ec6d7109df4fdb4c961c51) Apply suggestions (Manuel Thalmann) + * 2021-05-14 [ac7cbef6b](https://github.com/silverstripe/silverstripe-framework/commit/ac7cbef6b91fe183568f0b1aeb1c2a60c764996d) Update 10_Versioning.md (Manuel Thalmann) + * 2021-05-14 [ff9fc2846](https://github.com/silverstripe/silverstripe-framework/commit/ff9fc284689dd2a369e781ca70efa252a9a6f02a) Update 08_SQL_Select.md (Manuel Thalmann) + * 2021-05-13 [ed50c1b94](https://github.com/silverstripe/silverstripe-framework/commit/ed50c1b94e172cadd518421a9187821066e06df4) Update docs/en/02_Developer_Guides/00_Model/02_Relations.md (Manuel Thalmann) + * 2021-05-13 [8c0efd398](https://github.com/silverstripe/silverstripe-framework/commit/8c0efd39804c2e918ff577d0736aa6236121d1b9) Extension hooks for CsvBulkLoader (Ingo Schommer) + * 2021-05-11 [e7e586b8c](https://github.com/silverstripe/silverstripe-framework/commit/e7e586b8c3d3a23b5f7d4462445b1d391677e737) Update 01_Validation.md (Daniel Pina) + * 2021-05-05 [b6a31d922](https://github.com/silverstripe/silverstripe-framework/commit/b6a31d9229fb79cd6711bdbdf8a58a02320be0d8) Update 01_ModelAdmin.md (Daniel Pina) + * 2020-09-21 [23ffd2bbd](https://github.com/silverstripe/silverstripe-framework/commit/23ffd2bbd6bd38f553c2675e7351fa8492926508) Linting fix (Dan Hensby) + + * silverstripe/mimevalidator (2.1.1 -> 2.2.0) + * 2021-08-26 [3597100](https://github.com/silverstripe/silverstripe-mimevalidator/commit/35971005ed12d2fd4e1a3397fa645df51d9180aa) Update translations (Maxime Rainville) + * 2021-07-30 [0dbebc3](https://github.com/silverstripe/silverstripe-mimevalidator/commit/0dbebc33c77c774b1d3fc1a2ce798483f1450e06) Add PHP-8 support for CSV mime type (Ralph Slooten) + * 2021-01-21 [a998d50](https://github.com/silverstripe/silverstripe-mimevalidator/commit/a998d50ab6799669a7ca082a7332cfb19a2b8000) Update build status badge (Steve Boyd) + * 2020-11-26 [a424d03](https://github.com/silverstripe/silverstripe-mimevalidator/commit/a424d03d36ec68505ba3cdcf91af623f9b73cc19) Revert translation updates (Steve Boyd) + + * silverstripe/admin (1.8.0 -> 1.9.0) + * 2021-10-05 [792a634](https://github.com/silverstripe/silverstripe-admin/commit/792a634a6d310a007dd1617054c4f6b7c91184d6) Update translations (Maxime Rainville) + * 2021-08-26 [5610053](https://github.com/silverstripe/silverstripe-admin/commit/5610053072553f0a57e42874f7854bd5a230b855) Update translations (Maxime Rainville) + * 2021-07-01 [a4a4cbe](https://github.com/silverstripe/silverstripe-admin/commit/a4a4cbe7758b744c369863df3b4b906cb3f004e3) Update CMSDialog.ss (Thomas Portelange) + * 2021-05-24 [1f9c2fc](https://github.com/silverstripe/silverstripe-admin/commit/1f9c2fc927fa763b735bf52eb11722313c31bb64) Remove broken versioneye badgets (Ingo Schommer) + + * silverstripe/asset-admin (1.8.0 -> 1.9.0) + * 2021-10-05 [7a5d3a10](https://github.com/silverstripe/silverstripe-asset-admin/commit/7a5d3a10027e83abed88ad420d76055628f2472b) Update translations (Maxime Rainville) + * 2021-08-26 [762afeb0](https://github.com/silverstripe/silverstripe-asset-admin/commit/762afeb06bdd908bb2ffdb25b566d6fd2cf68f08) Update translations (Maxime Rainville) + + * silverstripe/campaign-admin (1.8.0 -> 1.9.0) + * 2021-08-05 [5733dff](https://github.com/silverstripe/silverstripe-campaign-admin/commit/5733dff1577b7963896b4aa08b4c92473a812808) Add hook (#205) (Alex Saelens) + + * silverstripe/versioned-admin (1.8.0 -> 1.9.0) + * 2021-10-05 [96309ac](https://github.com/silverstripe/silverstripe-versioned-admin/commit/96309ac90db6ad7dd0e16a4feadb9b245528a87e) Update translations (Maxime Rainville) + * 2021-08-26 [b0bb6df](https://github.com/silverstripe/silverstripe-versioned-admin/commit/b0bb6dffcc279ea0aa82850606a4507eaa46ce2f) Update translations (Maxime Rainville) + + * silverstripe/cms (4.8.0 -> 4.9.0) + * 2021-10-05 [9f7262f9](https://github.com/silverstripe/silverstripe-cms/commit/9f7262f99daccda72ac3f95b30e4386c6b78569a) Update translations (Maxime Rainville) + * 2021-08-26 [8cbc6d21](https://github.com/silverstripe/silverstripe-cms/commit/8cbc6d2110f1366538250b0e8461917bb866e52b) Update translations (Maxime Rainville) + * 2021-07-16 [10e2c1f2](https://github.com/silverstripe/silverstripe-cms/commit/10e2c1f271468a9665d1d107b0ff0244ec23aa38) PATCH: docblock for return value fixed for get_by_link (Nicolaas) + * 2021-05-24 [8438bf98](https://github.com/silverstripe/silverstripe-cms/commit/8438bf98ec10381d267ec40dd8f94404c83425f2) Remove broken versioneye badges (Ingo Schommer) + * 2021-05-07 [ed4ff6ea](https://github.com/silverstripe/silverstripe-cms/commit/ed4ff6eadc846de9bc20cbe5d6a5255a510264c2) BUGFIX: Ensure SiteTree is always available in the CMS, along with ancestors (Aaron Carlino) + * 2021-04-06 [85c3b109](https://github.com/silverstripe/silverstripe-cms/commit/85c3b1096b42934fdc2cb4c943bd0313bd84d6fa) UPDATE generate canonical via MetaComponents (Nic Horstmeier) + + * silverstripe/errorpage (1.8.0 -> 1.9.0) + * 2021-10-05 [b4c948b](https://github.com/silverstripe/silverstripe-errorpage/commit/b4c948be5393790cb29c41102556e1629e4efb76) Update translations (Maxime Rainville) + * 2021-08-26 [8716194](https://github.com/silverstripe/silverstripe-errorpage/commit/871619482b616f06f1ccbb5b0da2148f24189141) Update translations (Maxime Rainville) + + * silverstripe/siteconfig (4.8.0 -> 4.9.0) + * 2021-08-26 [7ea7072c](https://github.com/silverstripe/silverstripe-siteconfig/commit/7ea7072c3a16a26bea806053aa804d5b16ae3522) Update translations (Maxime Rainville) + * 2021-07-20 [01fc2218](https://github.com/silverstripe/silverstripe-siteconfig/commit/01fc2218c15f5644b8700e270cb5ca570a798e10) Add an extension point to customise/override returned current site config (Michal Kleiner) + + * silverstripe/versioned (1.8.0 -> 1.9.0) + * 2021-09-07 [c97131a](https://github.com/silverstripe/silverstripe-versioned/commit/c97131a9ec0b3fa2e7bdf6277597822093127ecb) BUGFIX: Ensure scalar plugin is assigned to Version field (Aaron Carlino) + * 2021-08-26 [ee5b708](https://github.com/silverstripe/silverstripe-versioned/commit/ee5b7085bc6fc1a3c88a8cd80e1b1b091b016438) Update translations (Maxime Rainville) + * 2021-06-24 [32b7282](https://github.com/silverstripe/silverstripe-versioned/commit/32b7282cbf5100dc56919698c5cef28c0204fd33) Ensure versioning is applied before inheritance (Aaron Carlino) + * 2021-05-24 [c6ca052](https://github.com/silverstripe/silverstripe-versioned/commit/c6ca0529c15ae4ed1b245a2f851e85f69fb15da8) Remove broken versioneye badges (Ingo Schommer) + + * silverstripe/graphql (3.5.0 -> 3.6.0) + * 2021-08-11 [90570dc](https://github.com/silverstripe/silverstripe-graphql/commit/90570dc0e24c3fddd2f5a6b3386794566293ff0d) BUGFIX: Replace graceful failure of field access on dataobjects (#399) (Aaron Carlino) + * 2021-05-07 [f70d296](https://github.com/silverstripe/silverstripe-graphql/commit/f70d29681066b05d153c94be56d2a1e2645b5922) BUGFIX: Ensure referential equality of two connection types in new GraphQL 4 compatible node/edges implementation (Aaron Carlino) + + * silverstripe/session-manager (0.1.1 -> 1.1.0) + * 2021-10-05 [fbf5aac](https://github.com/silverstripe/silverstripe-session-manager/commit/fbf5aacef4d1d920ea0503470f2f2e7d3944f943) Update translations (Maxime Rainville) + * 2021-08-26 [f227681](https://github.com/silverstripe/silverstripe-session-manager/commit/f22768100e90929b69d90c7be593437ec0361359) Update translations (Maxime Rainville) + * 2021-06-28 [5e14993](https://github.com/silverstripe/silverstripe-session-manager/commit/5e1499383594131de51e8ba072830e005de88ce8) Downscale image (André Kiste) + * 2021-06-28 [cada525](https://github.com/silverstripe/silverstripe-session-manager/commit/cada525dff10ab2161a762d73d36512de9991d50) Build docs on 1 instead of master (Andre Kiste) + * 2021-06-15 [268facc](https://github.com/silverstripe/silverstripe-session-manager/commit/268facc3946db16dd7836848da91656c5be20aba) Refer to sessions correctly, instead of devices. (#71) (Andre Kiste) + * 2021-06-08 [7852e7a](https://github.com/silverstripe/silverstripe-session-manager/commit/7852e7a4dab5af27bc4ca2830ec20c2ea1600a23) Improve transition when removing login sessions (André Kiste) + + * silverstripe/login-forms (4.4.1 -> 4.5.0) + * 2021-10-05 [e6e23a8](https://github.com/silverstripe/silverstripe-login-forms/commit/e6e23a817ebaf4b39777e02898f0d63e9b7476be) Update translations (Maxime Rainville) + * 2021-08-26 [451169f](https://github.com/silverstripe/silverstripe-login-forms/commit/451169fa35dbd12dd2aef5b97d36b2c606674ca2) Update translations (Maxime Rainville) + * 2021-06-17 [f0e5dbe](https://github.com/silverstripe/silverstripe-login-forms/commit/f0e5dbef3306a2113a3a43444ccc1811fc6b988c) Remove the help link (André Kiste) + + * silverstripe/blog (3.7.0 -> 3.8.0) + * 2021-10-05 [41bf421](https://github.com/silverstripe/silverstripe-blog/commit/41bf42184376d28aa7673a000936dc6a52908a43) Update translations (Maxime Rainville) + * 2021-08-26 [bb574c7](https://github.com/silverstripe/silverstripe-blog/commit/bb574c7ed3dda6951860bdb84e4078b1f54a5a02) Update translations (Maxime Rainville) + + * silverstripe/contentreview (4.2.0 -> 4.3.0) + * 2021-05-14 [c89a759](https://github.com/silverstripe/silverstripe-contentreview/commit/c89a759af6920e3b3978463b7fb2fb83e5620cf1) Add test (Daniel Hensby) + + * symbiote/silverstripe-advancedworkflow (5.4.0 -> 5.5.0) + * 2021-07-19 [9f3a5f8](https://github.com/symbiote/silverstripe-advancedworkflow/commit/9f3a5f852582b20bbdf20f1a93d658d4ef0b0520) $this-&amp;gt;extend() doesn&#039;t exist, add extensible (azt3k) + + * silverstripe/userforms (5.9.0 -> 5.10.0) + * 2021-10-05 [aa4e892](https://github.com/silverstripe/silverstripe-userforms/commit/aa4e89257325449f888633a064e816ec69b4cec1) Update translations (Maxime Rainville) + * 2021-08-26 [62b726e](https://github.com/silverstripe/silverstripe-userforms/commit/62b726e5ca55867b4cb68aef28eddc5b05d8401b) Update translations (Maxime Rainville) + * 2021-07-19 [63a1d1d](https://github.com/silverstripe/silverstripe-userforms/commit/63a1d1deb2b659f1d1c752801e89b71dde5f615d) BUGFIX: Fixed issue causing the regex on windows to throw an error due to escaping of the parenthesis caused by DIRECTORY_SEPARATOR (UndefinedOffset) + * 2021-06-22 [80c3d2e](https://github.com/silverstripe/silverstripe-userforms/commit/80c3d2e686e9c05f6819c2930b870ce37fdf9cd7) Update de_DE.yml (chromos33) + * 2021-04-12 [b01d296](https://github.com/silverstripe/silverstripe-userforms/commit/b01d296c424036b689707743122221c7004a1dec) Avoids reply to address being set to empty, if reply to field value is empty (James Cocker) + * 2021-04-06 [34883ad](https://github.com/silverstripe/silverstripe-userforms/commit/34883adb120daadc276ce3fcf3cecaa6771ed4f2) Add testing (Bauke Zwaan) + * 2021-03-12 [fad372d](https://github.com/silverstripe/silverstripe-userforms/commit/fad372d4bae8224c245a5984c86dac34caafaa47) Only add attachments when HideFormData-setting is not set for this recipient (Bauke Zwaan) + + * silverstripe/versionfeed (2.0.3 -> 2.1.0) + * 2021-10-05 [52f303d](https://github.com/silverstripe/silverstripe-versionfeed/commit/52f303d4970b8668de26325dc4cdc8c0dced12dc) Update translations (Maxime Rainville) + * 2021-08-26 [b4ce6ca](https://github.com/silverstripe/silverstripe-versionfeed/commit/b4ce6caead42b146bb3bb9c8b655e8f5252bf149) Update translations (Maxime Rainville) + * 2021-01-21 [42ea538](https://github.com/silverstripe/silverstripe-versionfeed/commit/42ea538f0f3e6aae1e80aaa415f919ee98d43f82) Update build status badge (Steve Boyd) + * 2019-12-19 [8de3ec1](https://github.com/silverstripe/silverstripe-versionfeed/commit/8de3ec1dfce1a52ae8551bbd53770287b079dd36) META: Add github action to build docs (Aaron Carlino) + * 2018-06-15 [9065f82](https://github.com/silverstripe/silverstripe-versionfeed/commit/9065f82d795b7fe9934363c1f217f3a4892544e2) Add supported module badge to readme (Dylan Wagstaff) + + * dnadesign/silverstripe-elemental (4.6.0 -> 4.7.0) + * 2021-08-05 [cfddd7d](https://github.com/silverstripe/silverstripe-elemental/commit/cfddd7da0c111c385dc7277bcda001afe188448d) Patch 2 (#919) (Nicolaas) + * 2021-07-04 [e8dce69](https://github.com/silverstripe/silverstripe-elemental/commit/e8dce69b73fa5a1a47bf34cd5ab8daa191dee42e) BUGFIX: Ensure graphql3 compat in type name generation (#912) (Aaron Carlino) + * 2021-06-17 [2ca448b](https://github.com/silverstripe/silverstripe-elemental/commit/2ca448b0bc3be4e6787e53ec40ecfb3e8b9d88c7) Add config to disable the content search in ElementSiteTreeFilterSearch (Alexandre) + * 2021-05-19 [9035ae4](https://github.com/silverstripe/silverstripe-elemental/commit/9035ae40a2f1c3fd3b62f811a5425382dfe91282) ADD test for ignored_classes being respected when migrating content. (Guy Sartorelli) + + * silverstripe/elemental-fileblock (2.1.2 -> 2.2.0) + * 2021-10-05 [802878e](https://github.com/silverstripe/silverstripe-elemental-fileblock/commit/802878e2d12cb9e5035b3315c2e2137fb2e06411) Update translations (Maxime Rainville) + * 2021-01-21 [239da3b](https://github.com/silverstripe/silverstripe-elemental-fileblock/commit/239da3b5d404aae1e7ac00ed78c299e1833a0986) Update build status badge (Steve Boyd) + + * silverstripe/elemental-bannerblock (2.2.1 -> 2.3.0) + * 2021-10-05 [786ecab](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/786ecabc61a30cfd976e276da1fe8ec88e1cf3f6) Update translations (Maxime Rainville) + * 2021-08-26 [6e41234](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/6e412340a0544234ec958ff8bbbfc8b30d752618) Update translations (Maxime Rainville) + * 2021-01-21 [ffce72b](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/ffce72b4a5a76a4aca5c0b5ddf3837fb9faafbd9) Update build status badge (Steve Boyd) + * 2021-01-19 [42d170b](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/42d170bc8d4dd426c9147ff8f330853d4d451ed1) Require minimum recipe of 4.7.x-dev (Steve Boyd) + + * silverstripe/totp-authenticator (4.1.1 -> 4.2.0) + * 2021-08-26 [2250b46](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/2250b4625f20b5de20536a4d4e757f42aa7d3629) Update translations (Maxime Rainville) + * 2021-01-21 [282eaaa](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/282eaaafc1f5f12615788786b351a972c6c07523) Update build status badge (Steve Boyd) + + * silverstripe/crontask (2.2.0 -> 2.3.0) + * 2021-08-05 [5c123a9](https://github.com/silverstripe/silverstripe-crontask/commit/5c123a979e471284e75589b2de4ec25c0e4cc541) Update php constraint to ^7.1 || ^8 (Mason Dechaineux) + + * silverstripe/gridfieldqueuedexport (2.4.0 -> 2.5.0) + * 2021-06-08 [9f5396e](https://github.com/silverstripe/silverstripe-gridfieldqueuedexport/commit/9f5396e89609e99863b1933505967743ee1ddba0) Apply filters when exporting (ishan jayamanne) + + * silverstripe/realme (4.1.0 -> 4.1.1) + * 2021-04-26 [c0e1674](https://github.com/silverstripe/silverstripe-realme/commit/c0e16748c5d6e61c00fa9ae5e8d5705e58f72e2a) Update configuration.md (torleif) + + * silverstripe/hybridsessions (2.2.1 -> 2.3.0) + * 2021-01-21 [8ab99f7](https://github.com/silverstripe/silverstripe-hybridsessions/commit/8ab99f71c78dcfbc4e0054d8a7afe03b2b906174) Update build status badge (Steve Boyd) + * 2019-11-18 [f6a8f2a](https://github.com/silverstripe/silverstripe-hybridsessions/commit/f6a8f2a9861fcf21f2f815ea9199acb327b2d147) Update code style in CookieStore (Serge Latyntcev) + +