Merge branch '4.10' into 4

This commit is contained in:
Steve Boyd 2021-12-16 17:45:33 +13:00
commit ed492da636
6 changed files with 761 additions and 7 deletions

View File

@ -3,11 +3,7 @@ version: ~> 1.0
import:
- silverstripe/silverstripe-travis-shared:config/provision/standard.yml
env:
global:
- REQUIRE_RECIPE="4.x-dev"
# Using a manual matrix to exclude PHPUNIT_COVERAGE_TEST for now because it was causing some strange issues
# Using a manual matrix to exlude PHPUNIT_COVERAGE_TEST for now because it was causing some strange issues
# e.g. https://travis-ci.com/github/silverstripe/silverstripe-framework/jobs/457096837
jobs:
fast_finish: true

View File

@ -0,0 +1,725 @@
# 4.10.0-rc1
## Overview
This version of Silverstripe CMS is a **release candidate** for an upcoming stable version, and should not be applied to production websites. We encourage developers to test this version in development / testing environments and [report any issues they encounter via GitHub](/contributing/issues_and_bugs/).
A full list of module versions included in CMS Recipe 4.10.0-rc1 is provided below. We recommend referencing recipes in your dependencies, rather than individual modules, to simplify version tracking. See [Recipes](/getting_started/).
- [PHPUnit 9.5 and PHP 8.0 official support](#php8)
- [Dropping support for PHP 7.1 and PHP 7.2](#phpeol)
- [Features and enhancements](#features-and-enhancements)
- [Bugfixes](#bugfixes)
<details>
<summary>Included module versions</summary>
| Module | Version |
| ------ | ------- |
| silverstripe/admin | 1.10.0-rc1 |
| silverstripe/asset-admin | 1.10.0-rc1 |
| silverstripe/assets | 1.10.0-rc1 |
| silverstripe/campaign-admin | 1.10.0-rc1 |
| silverstripe/cms | 4.10.0-rc1 |
| silverstripe/config | 1.3.0-rc1 |
| silverstripe/errorpage | 1.10.0-rc1 |
| silverstripe/framework | 4.10.0-rc1 |
| silverstripe/graphql | 3.7.1 |
| silverstripe/login-forms | 4.6.0-rc1 |
| silverstripe/mimevalidator | 2.3.0-rc1 |
| silverstripe/reports | 4.10.0-rc1 |
| silverstripe/siteconfig | 4.10.0-rc1 |
| silverstripe/versioned | 1.10.0-rc1 |
| silverstripe/versioned-admin | 1.10.0-rc1 |
<details>
<summary>Supported module versions</summary>
| Module | Version |
| ------ | ------- |
| bringyourownideas/silverstripe-composer-update-checker | 2.1.0 |
| bringyourownideas/silverstripe-maintenance | 2.4.1 |
| cwp/agency-extensions | 2.6.0 |
| cwp/cwp | 2.9.0 |
| cwp/cwp-core | 2.9.0 |
| cwp/cwp-pdfexport | 1.3.0 |
| cwp/cwp-search | 1.6.0-rc1 |
| cwp/starter-theme | 3.2.0 |
| cwp/watea-theme | 3.1.0 |
| dnadesign/silverstripe-elemental | 4.8.0-rc1 |
| dnadesign/silverstripe-elemental-userforms | 3.1.0 |
| silverstripe/akismet | 4.2.0-rc1 |
| silverstripe/auditor | 2.4.0 |
| silverstripe/blog | 3.9.0-rc1 |
| silverstripe/ckan-registry | 1.4.0-rc1 |
| silverstripe/comment-notifications | 2.2.0-rc1 |
| silverstripe/comments | 3.7.2 |
| silverstripe/content-widget | 2.3.0 |
| silverstripe/contentreview | 4.4.0-rc1 |
| silverstripe/crontask | 2.4.0-rc1 |
| silverstripe/documentconverter | 2.2.0-rc1 |
| silverstripe/elemental-bannerblock | 2.4.0-rc1 |
| silverstripe/elemental-fileblock | 2.4.0-rc1 |
| silverstripe/environmentcheck | 2.4.0 |
| silverstripe/externallinks | 2.2.0-rc1 |
| silverstripe/fulltextsearch | 3.9.0-rc1 |
| silverstripe/gridfieldqueuedexport | 2.6.1 |
| silverstripe/html5 | 2.2.0-rc1 |
| silverstripe/hybridsessions | 2.4.0 |
| silverstripe/iframe | 2.2.0-rc1 |
| silverstripe/ldap | 1.3.0-rc1 |
| silverstripe/mfa | 4.5.1 |
| silverstripe/realme | 4.2.0-rc1 |
| silverstripe/registry | 2.4.0-rc1 |
| silverstripe/restfulserver | 2.4.0-rc1 |
| silverstripe/security-extensions | 4.2.1 |
| silverstripe/securityreport | 2.4.0-rc1 |
| silverstripe/segment-field | 2.4.0-rc1 |
| silverstripe/sharedraftcontent | 2.6.0-rc1 |
| silverstripe/sitewidecontent-report | 3.2.0-rc1 |
| silverstripe/spamprotection | 3.2.0-rc1 |
| silverstripe/spellcheck | 2.3.0-rc1 |
| silverstripe/subsites | 2.5.0 |
| silverstripe/tagfield | 2.8.0-rc1 |
| silverstripe/taxonomy | 2.3.0-rc1 |
| silverstripe/textextraction | 3.3.0-rc1 |
| silverstripe/totp-authenticator | 4.3.0-rc1 |
| silverstripe/userforms | 5.11.1 |
| silverstripe/versionfeed | 2.2.0-rc1 |
| silverstripe/webauthn-authenticator | 4.4.1 |
| silverstripe/widgets | 2.2.0 |
| symbiote/silverstripe-advancedworkflow | 5.6.0-rc1 |
| symbiote/silverstripe-multivaluefield | 5.2.0 |
| symbiote/silverstripe-queuedjobs | 4.9.0 |
| tractorcow/silverstripe-fluent | 4.6.0 |
</details>
## PHPUnit 9.5 and PHP 8.0 official support{#php8}
Previous Silverstripe CMS Recipe releases could be run against PHP 8.0. However, the Silverstripe CMS Recipe 4.10.0 is the first release to officially support PHP 8.0.
The major road block to official PHP 8.0 support was our reliance on a deprecated version of PHPUnit. Adding support for PHPUnit 9.5 removed this road block. All core module tests have been rewritten to run with PHPUnit 9.5.
### What about my project test suite?
Silverstripe CMS Recipe 4.10.0 retains support for the `sminnee/phpunit` fork of PHPUnit 5.7. So your project's tests can still be run without modification ... as long as you are not using PHP 8.0. If you want your own tests to run with PHP 8.0, then you have have to upgrade to PHPUnit 9.5 and update your tests to be compatible with the latest PHPUnit API.
We'll be providing guidance on how to transition to PHPUnit 9.5 closer to the release.
## Dropping support for PHP 7.1 and PHP 7.2{#phpeol}
We've recently updated our [PHP support policy](/Getting_Started/Server_Requirements#php). The immediate affects of this changes are:
- The Silverstripe CMS Recipe release 4.10.0 drops support for PHP 7.1 and PHP 7.2. Those two PHP releases have been end-of-life for several years now and continued support would detract effort from more valuable work.
- The 4.11 minor release will drop support for PHP 7.3 later this year.
- We expect to drop support for PHP 7 altogether around January 2023.
## Features and enhancements {#features-and-enhancements}
### New `SS_TEMP_PATH` environment variable
This release adds support for a new `SS_TEMP_PATH` environment variable, which allows developers to control where a series of “temporary” files are created. These include [Manifests](/developer_guides/execution_pipeline/manifests), [Object Caching](/developer_guides/performance/caching) and [Partial Template Caching](/developer_guides/templates/partial_template_caching).
The environment variable can be set to either an absolute path which must have a leading `/` (e.g. `SS_TEMP_PATH='/tmp/silverstripe/cachedir'`), or a path relative to the project root (e.g. `SS_TEMP_PATH='silverstripe-cache'`). See the [environment management](/getting_started/environment_management) section for more information.
**Please note:** setting this environment variable will impact both requests served by a webserver (i.e. a typical website pageview) and command-line execution. If your webserver user and command-line user are different, or have different filesystem permissions, you may encounter problems when using this setting.
The new `SS_TEMP_PATH` environment variable replaces the similarly-named `TEMP_PATH` environment variable, which only ever offered partial support for adjusting the temporary files' location. This is because setting a `TEMP_PATH` _environment variable_ would affect [Injector](/developer_guides/extending/injector) service definitions, but would **not** affect code that referenced the `TEMP_PATH` _PHP constant_. The confusion with both environment variables and PHP constants having the same name is why the environment variable has been renamed and prefixed with `SS_`, in-keeping with other environment variables.
The functionality of the `TEMP_PATH` and `TEMP_FOLDER` PHP constants remains unchanged.
## 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!
<!--- Changes below this line will be automatically regenerated -->
## Change Log
### Features and Enhancements
* silverstripe/framework (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-16 [cbc4593ab](https://github.com/silverstripe/silverstripe-framework/commit/cbc4593ab464cf43f6c0edfb9cde75f68a5740ce) Don&amp;#039;t index test from PHPUNit 5.7 module wdon using PHPUnit 9.5 (Maxime Rainville)
* 2021-11-16 [640a7e3ee](https://github.com/silverstripe/silverstripe-framework/commit/640a7e3eeaaf6b51869f7e15d3aff1da2ccafd6d) Improve ManifestFileFinder so it can ignore test based on the testing library (Maxime Rainville)
* 2021-11-07 [20134e6a4](https://github.com/silverstripe/silverstripe-framework/commit/20134e6a4f77907f560f240a68d1d627a0d23b38) Add FirstPage() and LastPage() to PaginatedList (#10129) (Loz Calver)
* 2021-11-03 [b8d37f9ae](https://github.com/silverstripe/silverstripe-framework/commit/b8d37f9ae43b971890ae311d8bdcfaf5c32927ae) Validate the Title on Group is not empty (#10113) (Kirk Mayo)
* 2021-10-26 [059d8aac0](https://github.com/silverstripe/silverstripe-framework/commit/059d8aac0ad92b007c7299843127bd8f0292b1ec) Add afterUpdateCMSFields method to DataObject. (#9819) (GuySartorelli)
* 2021-10-18 [49a7f08c0](https://github.com/silverstripe/silverstripe-framework/commit/49a7f08c07142b9cf4cf4afcf525f6b271efac85) Display validation messages for GridFields (#10015) (GuySartorelli)
* 2021-09-24 [7226d7fab](https://github.com/silverstripe/silverstripe-framework/commit/7226d7fab6e3e10566892f5a2222d57de3266eae) Add tests for Hierarchy extension when applied to a subclass (Michal Kleiner)
* silverstripe/cms (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-15 [1db69ee9](https://github.com/silverstripe/silverstripe-cms/commit/1db69ee91ad8ed7a9c34a8e37b1d9338d1472dcb) Add tests for absolute URLs in get_by_link (Guy Sartorelli)
* 2021-09-06 [f3a76ccf](https://github.com/silverstripe/silverstripe-cms/commit/f3a76ccf2d52f7eaeb0cb7b70be389613c979805) getByLink plugin allows arrays of links (#2666) (Aaron Carlino)
* silverstripe/login-forms (4.5.0 -&gt; 4.6.0-rc1)
* 2021-09-08 [0717d4b](https://github.com/silverstripe/silverstripe-login-forms/commit/0717d4b1320ac4397cb4d02fd99cf8752f04efb3) Add ContentLocale method to Security controller (#101) (Bram de Leeuw)
* silverstripe/taxonomy (2.2.0 -&gt; 2.3.0-rc1)
* 2021-10-18 [83a736b](https://github.com/silverstripe/silverstripe-taxonomy/commit/83a736b1e3f9a7e7bb9601b8d501d63aaa107ad5) Add config to enable/disable Type inheritance (#74) (Chris Penny)
* silverstripe/userforms (5.10.0 -&gt; 5.11.1)
* 2021-10-18 [2691ac3](https://github.com/silverstripe/silverstripe-userforms/commit/2691ac354e2a16d71eec8981b0cc1b2bbf4071a0) Provide submitted form info to submission email data (#1113) (Michal Kleiner)
* 2021-09-15 [6093179](https://github.com/silverstripe/silverstripe-userforms/commit/60931791fbc70f95ccba8c3c86a0a5d012f27491) Scroll back to top after pressing PREV/NEXT buttons (#1109) (Joon Yoon)
* dnadesign/silverstripe-elemental (4.7.0 -&gt; 4.8.0-rc1)
* 2021-10-19 [d94cadc](https://github.com/silverstripe/silverstripe-elemental/commit/d94cadc7766af5c1dfcca714efb4214876cc8512) Add extension points to update element controller styles and template (Michal Kleiner)
* silverstripe/fulltextsearch (3.8.0 -&gt; 3.9.0-rc1)
* 2021-11-21 [9dfcbf9](https://github.com/silverstripe/silverstripe-fulltextsearch/commit/9dfcbf9c906dfe0263f6c945a0c59e69297dd70c) Show error message instead of error code on WebDAV check (Michal Kleiner)
### Bugfixes
* silverstripe/framework (4.9.0 -&gt; 4.10.0-rc1)
* 2021-12-13 [e11820d44](https://github.com/silverstripe/silverstripe-framework/commit/e11820d44f184f337bec1625e81b0a23b1a4a11e) Look for existing modules in vendor folder rather than base folder (Steve Boyd)
* 2021-11-25 [a3d964868](https://github.com/silverstripe/silverstripe-framework/commit/a3d964868732d035043f4b1c53dcf2404f119597) Ensure tmpItem has a value before calling method_exists on it (Steve Boyd)
* 2021-11-24 [fe653b5e1](https://github.com/silverstripe/silverstripe-framework/commit/fe653b5e1314cdb59896d3ed004ab36bb4fbed1d) Fix typo (Matt Peel)
* 2021-11-15 [29fa365d1](https://github.com/silverstripe/silverstripe-framework/commit/29fa365d1082e5bfcf42ad1f2d37a647f36a361e) Fix support for setting TEMP_PATH in .env (fixes #8099) (#10138) (Loz Calver)
* 2021-11-07 [b1eb9514d](https://github.com/silverstripe/silverstripe-framework/commit/b1eb9514d46147628b7a9c46740f38e15d775079) Prioritise posix_getuid() when attempting to find current process owner (#10137) (Loz Calver)
* 2021-11-04 [d6866af7e](https://github.com/silverstripe/silverstripe-framework/commit/d6866af7e590c6ae0437a605fcb0ab523f27b114) Fix broken tests (Loz Calver)
* 2021-10-18 [6e2955fe1](https://github.com/silverstripe/silverstripe-framework/commit/6e2955fe1483fe97c46815257e5fb9986d634f0a) Allow extension of getAttributes for Tab and TabSet (#9954) (Thomas Portelange)
* 2021-09-20 [d6ea45d4b](https://github.com/silverstripe/silverstripe-framework/commit/d6ea45d4bf77b04cd9b3315de4790c9e434b51aa) fix invalid link in docs (wernerkrauss)
* 2021-09-09 [1c698348a](https://github.com/silverstripe/silverstripe-framework/commit/1c698348a21d0492bff362b2207f4802edb79229) When asserting an email was sent, sanitise both the To and From field (Maxime Rainville)
* 2021-09-06 [0a389112c](https://github.com/silverstripe/silverstripe-framework/commit/0a389112ca0e09332a2bca6ab0cc52afeb56206e) Only send email if email address set (Steve Boyd)
* 2021-08-30 [1e5414eac](https://github.com/silverstripe/silverstripe-framework/commit/1e5414eac7ba9800b0848da2422f4d7033d562fc) Use correct ancestor class when querying for stage and live children (Michal Kleiner)
* 2021-08-27 [d2d9ce6c1](https://github.com/silverstripe/silverstripe-framework/commit/d2d9ce6c13228321aac5e10d67914bc8fd5d674a) Fix formatting error in table listing around TEMP_PATH. (Patrick Nelson)
* 2021-08-22 [a6d68abbb](https://github.com/silverstripe/silverstripe-framework/commit/a6d68abbbce985676e38bcfc44e446103233672c) Fix missing “with .env files” in published docs (Patrick Nelson)
* 2021-07-13 [31668e8ac](https://github.com/silverstripe/silverstripe-framework/commit/31668e8acf3980994cf183c172b8a5860bf0865a) fix: remove login marker cookie on logout (Florian Thoma)
* silverstripe/admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-12-10 [5e25ced](https://github.com/silverstripe/silverstripe-admin/commit/5e25cedb9c3977185b33f7169e22d929e87a7f61) Allow double digit minor version numbers (Steve Boyd)
* 2021-12-07 [5b592b2](https://github.com/silverstripe/silverstripe-admin/commit/5b592b2aa8632640c379a6dc5e54fe69d6a8216c) Toast padding (Steve Boyd)
* silverstripe/cms (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-04 [480baa6e](https://github.com/silverstripe/silverstripe-cms/commit/480baa6ef8f6373071065eb62d6eb6a8805afac9) Use correct canonical tag on VirtualPage (#2688) (Florian Thoma)
* 2021-11-03 [bcbeb6d6](https://github.com/silverstripe/silverstripe-cms/commit/bcbeb6d626b733d8b193bd40f31a2cd97dba432f) SiteTreeLinkTracking_Parser should use the getAnchorsOnPage (#2697) (kevin-hine-innis)
* 2021-10-18 [ecd9759f](https://github.com/silverstripe/silverstripe-cms/commit/ecd9759f83f2fc79181e95d201cb86826118c539) Remove unused code (#2693) (Adrian Humphreys)
* 2021-09-28 [2bf691f5](https://github.com/silverstripe/silverstripe-cms/commit/2bf691f548444589ee995dcc1a752a0241e6bcdc) ensure updateAnchorsOnPage extension is called (#2686) (kevin-hine-innis)
* 2021-09-21 [734eb392](https://github.com/silverstripe/silverstripe-cms/commit/734eb3921fe71b4d90a9b7ac0fd321bb731bfec1) Treat absolute links in a consistent manner in get_by_link. (GuySartorelli)
* silverstripe/graphql (3.6.0 -&gt; 3.7.1)
* 2021-09-01 [c7002f9](https://github.com/silverstripe/silverstripe-graphql/commit/c7002f9af99f4d92c77f17b6ae2f6aecf8e152ab) fix: typo in documentation (Nick Lamprecht)
* silverstripe/tagfield (2.7.0 -&gt; 2.8.0-rc1)
* 2021-10-15 [b81546d](https://github.com/silverstripe/silverstripe-tagfield/commit/b81546d55553c33ff7f0ae49cc737295768fb1dc) Use existing source datalist if available before creating a new one (closes #171) (Joseph Madden)
* 2021-10-15 [55e0373](https://github.com/silverstripe/silverstripe-tagfield/commit/55e03731bf06efff3dc8cfe1877e6b4c09d828f6) Use existing source datalist if available before creating a new one (Joseph Madden)
* silverstripe/comments (3.6.0 -&gt; 3.7.2)
* 2021-10-14 [066b28b](https://github.com/silverstripe/silverstripe-comments/commit/066b28bb3d374356746e1ea7727000e65d0644d5) Fix broken link in README.md (Loz Calver)
* silverstripe/sharedraftcontent (2.5.0 -&gt; 2.6.0-rc1)
* 2021-10-18 [03e1191](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/03e11914926af406e45253ac671ac9578857d3b6) add user agent to indicate request is automated (#153) (Will Rossiter)
* bringyourownideas/silverstripe-composer-update-checker (2.0.3 -&gt; 2.1.0)
* 2020-04-06 [de75efe](https://github.com/bringyourownideas/silverstripe-composer-update-checker/commit/de75efe66325e84583b3788a9f3bdbbab7739b87) Change dir permissions fix (avoid switching current dir when not necessary) (Mojmir Fendek)
* silverstripe/fulltextsearch (3.8.0 -&gt; 3.9.0-rc1)
* 2021-12-15 [a621f77](https://github.com/silverstripe/silverstripe-fulltextsearch/commit/a621f77380ff7358a0501e41ee09107620f99170) Allow deprecated warnings (Steve Boyd)
* 2021-08-23 [83af73c](https://github.com/silverstripe/silverstripe-fulltextsearch/commit/83af73c9f66a8881129dcd97beeababb72f329c4) Only use values that are not empty (Michal Kleiner)
* 2021-02-24 [69ba134](https://github.com/silverstripe/silverstripe-fulltextsearch/commit/69ba134ac24c5a94f6d2a4c0104a1cc75ae41581) Always store the default field to support highlighting (GuySartorelli)
* symbiote/silverstripe-queuedjobs (4.8.0 -&gt; 4.9.0)
* 2021-10-18 [a5862ce](https://github.com/symbiote/silverstripe-queuedjobs/commit/a5862ce1122e7e6a3f58da65b554577d352cd1f5) releaseJobLock when marking a job as broken (#354) (Andrew Paxley)
* 2021-06-02 [81c0ca9](https://github.com/symbiote/silverstripe-queuedjobs/commit/81c0ca9e043b46bf865d8c7c088a6309f94df05d) fix(QueuedJobDescriptor) Ensure that anything set to &amp;#039;waiting&amp;#039; has Worker reset so it can be picked up by a worker (Marcus Nyeholt)
* silverstripe/gridfieldqueuedexport (2.5.0 -&gt; 2.6.1)
* 2021-11-07 [20c4c0e](https://github.com/silverstripe/silverstripe-gridfieldqueuedexport/commit/20c4c0ef972fb13eaf7c0bc64fa7936da97a53da) Cast IDs from database on both sides of equation #58 (#60) (Bauke)
* silverstripe/realme (4.1.1 -&gt; 4.2.0-rc1)
* 2021-11-23 [dfaf9ec](https://github.com/silverstripe/silverstripe-realme/commit/dfaf9ecd7ec0d19bfdc573d6cd02e9827694eb1b) redirect to BackURL after login, fixes #79 (Andreas Piening)
* 2021-10-21 [21dd6ff](https://github.com/silverstripe/silverstripe-realme/commit/21dd6ffe038c1addda32336c13495612390e9a89) Fix: New RealMe ITE entity IDs and SSOService endpoints (#77) (Matt Peel)
* 2021-10-14 [b66ade5](https://github.com/silverstripe/silverstripe-realme/commit/b66ade593f48a0be4f6e3f17fd38622f6d326e40) Fix: New RealMe MTS entity IDs and SSOService endpoints (#75) (Matt Peel)
* dnadesign/silverstripe-elemental-userforms (3.0.0 -&gt; 3.1.0)
* 2020-03-31 [4b51a47](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/4b51a471f238f1cb34b5a0ace899738aff2aaa54) update version constraint to not include &amp;#039;@dev&amp;#039; (brynwhyman)
### API Changes
* silverstripe/installer (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-03 [54a8b8c](https://github.com/silverstripe/silverstripe-installer/commit/54a8b8ce8fc62f3d478caf435cc49970a39a96d8) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-cms (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-04 [ef2201f](https://github.com/silverstripe/recipe-cms/commit/ef2201f1fe49a0fb8628e34ac09d89d035f860fe) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-core (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-04 [15fd452](https://github.com/silverstripe/recipe-core/commit/15fd452966f79e2edf556be8620664c72cb24c98) phpunit 9 support (Steve Boyd)
* silverstripe/assets (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-21 [aa81d99](https://github.com/silverstripe/silverstripe-assets/commit/aa81d9908d9038b28b24f577da9160633dd832dc) Switch to using AttributesHTML on ImageManipulation trait (Maxime Rainville)
* 2021-11-01 [9329557](https://github.com/silverstripe/silverstripe-assets/commit/9329557c9ce1155d91412577d3eb414821b3b494) phpunit 9 support (#462) (Steve Boyd)
* silverstripe/config (1.2.0 -&gt; 1.3.0-rc1)
* 2021-10-27 [3a4c9d6](https://github.com/silverstripe/silverstripe-config/commit/3a4c9d6fa0e2ea7d685dce99b528e3f21aa3ec8f) phpunit 9 support (Steve Boyd)
* silverstripe/framework (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-16 [2922370d8](https://github.com/silverstripe/silverstripe-framework/commit/2922370d81418f6ae8dae3ca1e677981e454ad91) Add Module::getCILibrary function (Maxime Rainville)
* 2021-11-01 [fc349db51](https://github.com/silverstripe/silverstripe-framework/commit/fc349db511c003d4b08147f0bf4ed2904d5b304d) Add a way to check if a form or form field has an extra css class (#10112) (GuySartorelli)
* 2021-10-27 [cd076542f](https://github.com/silverstripe/silverstripe-framework/commit/cd076542f4ec903048011d0e1c049f3a70d91307) Upgrade SapphireTest to work with phpunit 9 (#10028) (Steve Boyd)
* 2021-07-27 [b43d68f9b](https://github.com/silverstripe/silverstripe-framework/commit/b43d68f9b40098f6f8bbda66b3e571636b4235ac) Add an AttributesHTML trait (Maxime Rainville)
* silverstripe/mimevalidator (2.2.0 -&gt; 2.3.0-rc1)
* 2021-10-27 [37f77c9](https://github.com/silverstripe/silverstripe-mimevalidator/commit/37f77c95d25c41ca690768e16f38b0cfd66e197f) phpunit 9 support (Steve Boyd)
* silverstripe/admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-10-27 [6ba9b94](https://github.com/silverstripe/silverstripe-admin/commit/6ba9b94287c9639a457bdff21e052f816e09d460) phpunit 9 support (Steve Boyd)
* silverstripe/asset-admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-10-27 [02b1a5d8](https://github.com/silverstripe/silverstripe-asset-admin/commit/02b1a5d86dcf7d6e53e739665dfe3c8709cfc2fe) phpunit9 support (Steve Boyd)
* silverstripe/campaign-admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-10-27 [6137ff9](https://github.com/silverstripe/silverstripe-campaign-admin/commit/6137ff90430e912f2e8fd2d750a2ce5e598a7e16) phpunit9 support (Steve Boyd)
* silverstripe/versioned-admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-10-27 [ec4fe18](https://github.com/silverstripe/silverstripe-versioned-admin/commit/ec4fe18b9e2545d9b7aac1433550c3a036782028) phpunit9 support (Steve Boyd)
* silverstripe/cms (4.9.0 -&gt; 4.10.0-rc1)
* 2021-10-27 [360fbcd8](https://github.com/silverstripe/silverstripe-cms/commit/360fbcd878c31625be57a8593943ac62556a5232) phpunit9 support (Steve Boyd)
* silverstripe/errorpage (1.9.0 -&gt; 1.10.0-rc1)
* 2021-10-27 [ee11e69](https://github.com/silverstripe/silverstripe-errorpage/commit/ee11e696d4b320eb05b7e0d8a49dd35b8445e477) phpunit9 support (Steve Boyd)
* silverstripe/reports (4.9.0 -&gt; 4.10.0-rc1)
* 2021-10-27 [9f76ec2a](https://github.com/silverstripe/silverstripe-reports/commit/9f76ec2a43f78c7f17d79e7c96328830f3c0fcda) phpunit9 support (Steve Boyd)
* silverstripe/siteconfig (4.9.0 -&gt; 4.10.0-rc1)
* 2021-10-27 [fc59cfad](https://github.com/silverstripe/silverstripe-siteconfig/commit/fc59cfad0112b3253b29377704d9bae85e832cd4) phpunit9 support (Steve Boyd)
* silverstripe/versioned (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-01 [9b39e92](https://github.com/silverstripe/silverstripe-versioned/commit/9b39e92dba070a4e02fa6324f1ab9dd96774d598) phpunit 9 support (Steve Boyd)
* silverstripe/graphql (3.6.0 -&gt; 3.7.1)
* 2021-11-01 [55b598d](https://github.com/silverstripe/silverstripe-graphql/commit/55b598d9305ca58d7095bfad8e89676bb44b16d8) phpunit9 support (Steve Boyd)
* silverstripe/session-manager (1.1.0 -&gt; 1.2.0-rc1)
* 2021-10-27 [cccd1a8](https://github.com/silverstripe/silverstripe-session-manager/commit/cccd1a88b9436c9f2eb97160292e5e057148371f) phpunit9 support (Steve Boyd)
* silverstripe/login-forms (4.5.0 -&gt; 4.6.0-rc1)
* 2021-10-27 [c1bf3d5](https://github.com/silverstripe/silverstripe-login-forms/commit/c1bf3d5419728d1ac118df325121749f46517110) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-authoring-tools (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-03 [89f14a3](https://github.com/silverstripe/recipe-authoring-tools/commit/89f14a3fbe56f4a5dc8f3d0600aea25d74b8477f) phpunit 9 support (Steve Boyd)
* silverstripe/documentconverter (2.1.1 -&gt; 2.2.0-rc1)
* 2021-10-27 [724b1f1](https://github.com/silverstripe/silverstripe-documentconverter/commit/724b1f110a6e49f6429ee769b1dd0eb7ace74b4b) phpunit 9 support (Steve Boyd)
* silverstripe/iframe (2.1.0 -&gt; 2.2.0-rc1)
* 2021-10-27 [1b3496d](https://github.com/silverstripe/silverstripe-iframe/commit/1b3496d66e2a257cc22c64b06986817be56ebf21) phpunit 9 support (Steve Boyd)
* silverstripe/spellcheck (2.2.1 -&gt; 2.3.0-rc1)
* 2021-10-27 [8c19001](https://github.com/silverstripe/silverstripe-spellcheck/commit/8c190014fa74d962079616e74741df4091076bbb) phpunit 9 support (Steve Boyd)
* silverstripe/tagfield (2.7.0 -&gt; 2.8.0-rc1)
* 2021-10-27 [5eae80a](https://github.com/silverstripe/silverstripe-tagfield/commit/5eae80abb3cac384651b7a25552b2b2a08ea75aa) phpunit 9 support (Steve Boyd)
* silverstripe/taxonomy (2.2.0 -&gt; 2.3.0-rc1)
* 2021-10-27 [99ec82a](https://github.com/silverstripe/silverstripe-taxonomy/commit/99ec82a34b5d83ac1dc3b91e77f190f7d29e7c90) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-blog (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-09 [09ea4ab](https://github.com/silverstripe/recipe-blog/commit/09ea4abe4ad4926b89f2ab34a7b452b1bdc95005) phpunit 9 support (Steve Boyd)
* silverstripe/blog (3.8.0 -&gt; 3.9.0-rc1)
* 2021-11-01 [d8ecb77](https://github.com/silverstripe/silverstripe-blog/commit/d8ecb779095886ddfad0af158625c9727ebbdf64) phpunit9 support (Steve Boyd)
* silverstripe/widgets (2.1.1 -&gt; 2.2.0)
* 2021-10-21 [a08aa08](https://github.com/silverstripe/silverstripe-widgets/commit/a08aa08f4deeeb3a2a4e6fe74e31530958f4a34c) phpunit 9 support (Steve Boyd)
* silverstripe/content-widget (2.2.0 -&gt; 2.3.0)
* 2021-10-27 [becd345](https://github.com/silverstripe/silverstripe-content-widget/commit/becd34554493bd2c0f61f6d7a1393c34ee43394c) phpunit 9 support (Steve Boyd)
* silverstripe/spamprotection (3.1.0 -&gt; 3.2.0-rc1)
* 2021-10-27 [46169f7](https://github.com/silverstripe/silverstripe-spamprotection/commit/46169f71a0a2629ef928fa70b702ad85aeccbca7) phpunit 9 support (Steve Boyd)
* silverstripe/akismet (4.1.0 -&gt; 4.2.0-rc1)
* 2021-10-27 [cfe39ac](https://github.com/silverstripe/silverstripe-akismet/commit/cfe39ac399cdca5cf3482d3cbf1e39ad5aa00155) phpunit9 support (Steve Boyd)
* silverstripe/comments (3.6.0 -&gt; 3.7.2)
* 2021-10-27 [305ae6b](https://github.com/silverstripe/silverstripe-comments/commit/305ae6b4b8b32f9042131c958061b4e00bcfc7c9) phpunit 9 support (Steve Boyd)
* silverstripe/comment-notifications (2.1.0 -&gt; 2.2.0-rc1)
* 2021-10-27 [7fc7c4a](https://github.com/silverstripe/comment-notifications/commit/7fc7c4a1bf071577dc05025d9e318547d675a059) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-collaboration (1.9.0 -&gt; 1.10.0-rc1)
* 2021-10-27 [8298b97](https://github.com/silverstripe/recipe-collaboration/commit/8298b97b811cbfb0763b99c04252efaff7f6f8b3) phpunit 9 support (Steve Boyd)
* silverstripe/contentreview (4.3.0 -&gt; 4.4.0-rc1)
* 2021-11-01 [89f58ec](https://github.com/silverstripe/silverstripe-contentreview/commit/89f58ec57376c6e6b2dc3bd75f49cc328d9a0951) phpunit 9 support (Steve Boyd)
* silverstripe/sharedraftcontent (2.5.0 -&gt; 2.6.0-rc1)
* 2021-10-27 [87823c4](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/87823c4bc6799fde673618b5b20f58ad29a08fc5) phpunit 9 support (Steve Boyd)
* symbiote/silverstripe-advancedworkflow (5.5.0 -&gt; 5.6.0-rc1)
* 2021-11-04 [9f8545c](https://github.com/symbiote/silverstripe-advancedworkflow/commit/9f8545cfbe64b75f3d0fb1ffbd18ca2bbf171ab7) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-form-building (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-09 [9cc67ec](https://github.com/silverstripe/recipe-form-building/commit/9cc67ecf7733e4a2ebb0a4609f72d0f543ee0ff2) phpunit 9 support (Steve Boyd)
* silverstripe/segment-field (2.4.0 -&gt; 2.5.0-rc1)
* 2021-10-27 [a5c8952](https://github.com/silverstripe/silverstripe-segment-field/commit/a5c895208be390cbc914630c0c5dba33340e4034) phpunit 9 support (Steve Boyd)
* silverstripe/userforms (5.10.0 -&gt; 5.11.1)
* 2021-11-01 [40bd88e](https://github.com/silverstripe/silverstripe-userforms/commit/40bd88e81c800e11bd2cf69c0b769fa8be0c13e6) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-reporting-tools (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-10 [253ab81](https://github.com/silverstripe/recipe-reporting-tools/commit/253ab816f3efdf222bf12068abc8d69ed751a0d4) phpunit 9 support (Steve Boyd)
* silverstripe/externallinks (2.1.1 -&gt; 2.2.0-rc1)
* 2021-10-27 [fb9c340](https://github.com/silverstripe/silverstripe-externallinks/commit/fb9c340edbfda5bfe0f92a50b7e1427a582b9026) phpunit 9 support (Steve Boyd)
* silverstripe/securityreport (2.3.0 -&gt; 2.4.0-rc1)
* 2021-10-27 [1cd1d60](https://github.com/silverstripe/silverstripe-securityreport/commit/1cd1d609695d305bb4588f0daae5a44fafb29987) phpunit 9 support (Steve Boyd)
* silverstripe/sitewidecontent-report (3.1.0 -&gt; 3.2.0-rc1)
* 2021-10-27 [cb8d0a7](https://github.com/silverstripe/silverstripe-sitewidecontent-report/commit/cb8d0a788e0266f609ee4d148b4d3124ffef1634) phpunit 9 support (Steve Boyd)
* bringyourownideas/silverstripe-maintenance (2.3.1 -&gt; 2.4.1)
* 2021-11-09 [3abfa2d](https://github.com/bringyourownideas/silverstripe-maintenance/commit/3abfa2d822a29b60ea5ea3b5f07fee5c8e240935) phpunit 9 support (Steve Boyd)
* bringyourownideas/silverstripe-composer-update-checker (2.0.3 -&gt; 2.1.0)
* 2021-11-10 [d6fb30a](https://github.com/bringyourownideas/silverstripe-composer-update-checker/commit/d6fb30a4467e0546ed4de429a62bdea1fbe7809c) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-services (1.9.0 -&gt; 1.10.0-rc1)
* 2021-10-27 [8ff2fed](https://github.com/silverstripe/recipe-authoring-tools/commit/8ff2fed779505aa6ef9d6abc595a6f4dadc81cbb) phpunit 9 support (Steve Boyd)
* silverstripe/restfulserver (2.3.0 -&gt; 2.4.0-rc1)
* 2021-10-27 [4a2716c](https://github.com/silverstripe/silverstripe-restfulserver/commit/4a2716cd7d77b451b8cba498ea80f41bb3cc5821) phpunit 9 support (Steve Boyd)
* silverstripe/versionfeed (2.1.0 -&gt; 2.2.0-rc1)
* 2021-10-27 [2671406](https://github.com/silverstripe/silverstripe-versionfeed/commit/2671406a86e489dc059f2969cf403ed0a40b11f6) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-content-blocks (2.9.0 -&gt; 2.10.0-rc1)
* 2021-11-09 [24c2aa1](https://github.com/silverstripe/recipe-content-blocks/commit/24c2aa1be65a9e33be775408139cebe5abcecbce) phpunit 9 support (Steve Boyd)
* dnadesign/silverstripe-elemental (4.7.0 -&gt; 4.8.0-rc1)
* 2021-11-01 [9e49b0b](https://github.com/silverstripe/silverstripe-elemental/commit/9e49b0b20103fd5da1d16dd6afb5e9018a4c352f) phpunit 9 support (Steve Boyd)
* silverstripe/elemental-fileblock (2.2.0 -&gt; 2.3.0-rc1)
* 2021-10-27 [9966db1](https://github.com/silverstripe/silverstripe-elemental-fileblock/commit/9966db15edeb2808a95b90d63b43547801c52bf1) phpunit 9 support (Steve Boyd)
* silverstripe/elemental-bannerblock (2.3.0 -&gt; 2.4.0-rc1)
* 2021-11-04 [c813dd4](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/c813dd498f68aebaa411dd760a3476c8e3fb7b27) phpunit 9 support (Steve Boyd)
* silverstripe/recipe-solr-search (2.9.0 -&gt; 2.10.0-rc1)
* 2021-11-10 [2c8e2f3](https://github.com/silverstripe/cwp-recipe-search/commit/2c8e2f3ac5265e2d825f11b2e34b282ee515ce2b) phpunit 9 support (Steve Boyd)
* cwp/cwp-search (1.5.0 -&gt; 1.6.0-rc1)
* 2021-11-05 [de8ef74](https://github.com/silverstripe/cwp-search/commit/de8ef748f731ffa3f9392e2a9b7e13cb35cf23e8) phpunit 9 support (Steve Boyd)
* silverstripe/fulltextsearch (3.8.0 -&gt; 3.9.0-rc1)
* 2021-11-02 [7528031](https://github.com/silverstripe/silverstripe-fulltextsearch/commit/752803148dfd7e87e46e26dfe2ef6fd94a333667) phpunit 9 support (Steve Boyd)
* symbiote/silverstripe-queuedjobs (4.8.0 -&gt; 4.9.0)
* 2021-11-08 [ccbb784](https://github.com/symbiote/silverstripe-queuedjobs/commit/ccbb784a9830d9c00eb298fc93423c9e103af4fd) phpunit 9 support (Steve Boyd)
* silverstripe/registry (2.3.0 -&gt; 2.4.0-rc1)
* 2021-10-27 [ec07252](https://github.com/silverstripe/silverstripe-registry/commit/ec072522b6234a54513478e4c3c8a84ad84b53b8) phpunit 9 support (Steve Boyd)
* silverstripe/totp-authenticator (4.2.0 -&gt; 4.3.0-rc1)
* 2021-10-27 [cd448c7](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/cd448c7ff377dbf70e17b61d37812883217fff52) phpunit 9 support (Steve Boyd)
* silverstripe/mfa (4.4.0 -&gt; 4.5.1)
* 2021-10-27 [a82d5bd](https://github.com/silverstripe/silverstripe-mfa/commit/a82d5bd4f16857288e58bf232c4958bfc7e6bb7c) phpunit 9 support (Steve Boyd)
* silverstripe/crontask (2.3.0 -&gt; 2.4.0-rc1)
* 2021-10-27 [e536810](https://github.com/silverstripe/silverstripe-crontask/commit/e536810727b4c4720505b12cb2c543830a3e00bf) phpunit 9 support (Steve Boyd)
* silverstripe/gridfieldqueuedexport (2.5.0 -&gt; 2.6.1)
* 2021-11-01 [c35df1c](https://github.com/silverstripe/silverstripe-gridfieldqueuedexport/commit/c35df1cb4771a38084d85088f8ec384b8eac8d4b) phpunit 9 support (Steve Boyd)
* silverstripe/ldap (1.2.1 -&gt; 1.3.0-rc1)
* 2021-10-27 [09be2ac](https://github.com/silverstripe/silverstripe-ldap/commit/09be2aca1701d0dd1fe4223c060a2bae3fec7ec5) phpunit 9 support (Steve Boyd)
* silverstripe/textextraction (3.2.0 -&gt; 3.3.0-rc1)
* 2021-10-27 [b92616e](https://github.com/silverstripe/silverstripe-textextraction/commit/b92616eb4e21d0646f3886b07ecef3c7489783b5) phpunit 9 support (Steve Boyd)
* silverstripe/realme (4.1.1 -&gt; 4.2.0-rc1)
* 2021-10-27 [d390156](https://github.com/silverstripe/silverstripe-realme/commit/d39015606a97331e749934d2c52fbaf2c56cbb50) phpunit 9 support (Steve Boyd)
* silverstripe/ckan-registry (1.3.0 -&gt; 1.4.0-rc1)
* 2021-11-01 [b5d388b](https://github.com/silverstripe/silverstripe-ckan-registry/commit/b5d388be2a96984c5d61966a526db42fd784448f) phpunit9 support (Steve Boyd)
* silverstripe/webauthn-authenticator (4.3.0 -&gt; 4.4.1)
* 2021-10-27 [6f4e54b](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/6f4e54b51805914dd23f03e91db27fac77190b9f) phpunit 9 support (Steve Boyd)
* silverstripe/security-extensions (4.1.0 -&gt; 4.2.1)
* 2021-11-15 [137618b](https://github.com/silverstripe/silverstripe-security-extensions/commit/137618be7f7a66cc1b6edb3c956c94a26cb2cd8b) phpunit 9 support (Steve Boyd)
* silverstripe/subsites (2.4.0 -&gt; 2.5.0)
* 2021-10-27 [13ab072](https://github.com/silverstripe/silverstripe-subsites/commit/13ab07230357e96df17fef6af3c9f792297f42f1) phpunit 9 support (Steve Boyd)
* silverstripe/html5 (2.1.0 -&gt; 2.2.0-rc1)
* 2021-10-27 [a253d0c](https://github.com/silverstripe/silverstripe-html5/commit/a253d0ce7d7243d335a15387d1dbdb19fa57dfb3) phpunit 9 support (Steve Boyd)
* cwp/agency-extensions (2.5.0 -&gt; 2.6.0)
* 2021-11-05 [2fc1559](https://github.com/silverstripe/cwp-agencyextensions/commit/2fc155964c4be8519dda6e9a15f72081d5fc0f76) phpunit 9 support (Steve Boyd)
* cwp/cwp-core (2.8.0 -&gt; 2.9.0)
* 2021-11-09 [2eca7d0](https://github.com/silverstripe/cwp-core/commit/2eca7d08cca79fa832d40f7cab283035747e9c3d) phpunit 9 support (Steve Boyd)
* silverstripe/auditor (2.3.0 -&gt; 2.4.0)
* 2021-10-27 [32ed6e9](https://github.com/silverstripe/silverstripe-auditor/commit/32ed6e909b8349f60c9a30f3aa8753fd70fb8721) phpunit9 support (Steve Boyd)
* silverstripe/environmentcheck (2.3.0 -&gt; 2.4.0)
* 2021-10-27 [05dd7bc](https://github.com/silverstripe/silverstripe-environmentcheck/commit/05dd7bc0a732f24b99cc6581d7ac7430e702b6ae) phpunit 9 support (Steve Boyd)
* silverstripe/hybridsessions (2.3.0 -&gt; 2.4.0)
* 2021-10-27 [ffa4706](https://github.com/silverstripe/silverstripe-hybridsessions/commit/ffa4706e3bdbbc17ded07a7c22367249820e6d88) phpunit 9 support (Steve Boyd)
* cwp/cwp (2.8.0 -&gt; 2.9.0)
* 2021-11-05 [b6f1e38](https://github.com/silverstripe/cwp/commit/b6f1e38b438ab9b95b9f573b551d52d8e7be8af7) phpunit 9 support (Steve Boyd)
* cwp/cwp-pdfexport (1.2.0 -&gt; 1.3.0)
* 2021-11-05 [cd87a88](https://github.com/silverstripe/cwp-pdfexport/commit/cd87a88b8711ea64237b5e26f65b1af26f605ede) phpunit 9 support (Steve Boyd)
* dnadesign/silverstripe-elemental-userforms (3.0.0 -&gt; 3.1.0)
* 2021-11-10 [55576e0](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/55576e02aa4731114d0581af66a55f21cda46280) phpunit9 support (Steve Boyd)
* symbiote/silverstripe-multivaluefield (5.1.0 -&gt; 5.2.0)
* 2021-11-09 [3a9466b](https://github.com/symbiote/silverstripe-multivaluefield/commit/3a9466bebe0986aaf05d69e151eefb12042b06ea) phpunit 9 support (Steve Boyd)
* tractorcow/silverstripe-fluent (4.5.1 -&gt; 4.6.0)
* 2021-11-05 [c739587](https://github.com/tractorcow-farm/silverstripe-fluent/commit/c7395873b45cd9d8d878f5d081750c15a07214dc) phpunit 9 support (Steve Boyd)
### Dependencies
* silverstripe/recipe-kitchen-sink (4.9.0 -&gt; 4.10.0-rc1)
* 2021-12-03 [fbecf44](https://github.com/silverstripe/recipe-kitchen-sink/commit/fbecf448320518a4c90e823b9413b0767b5309e5) 4.10 requirements (Steve Boyd)
* 2021-11-21 [59cc95f](https://github.com/silverstripe/recipe-kitchen-sink/commit/59cc95fbe181a7478f638e6b37ac5e76bf52be8f) Remove mysite tests (Steve Boyd)
* 2021-11-17 [739ce59](https://github.com/silverstripe/recipe-kitchen-sink/commit/739ce5949d4a3480c29c59047e7602d5c24b1f9b) Remove modules that have no tests (Steve Boyd)
* 2021-11-09 [e5d2723](https://github.com/silverstripe/recipe-kitchen-sink/commit/e5d272379b5d901a50c0ff28e3739a0314d30041) Remove controllerpolicy (Steve Boyd)
* 2021-11-03 [296e0dc](https://github.com/silverstripe/recipe-kitchen-sink/commit/296e0dcb1c77f59bf52863b179d06762bbbc97bf) Use PHPUnit 9 (Steve Boyd)
* silverstripe/admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-24 [f3b286e](https://github.com/silverstripe/silverstripe-admin/commit/f3b286e6f76df060fd0ce67ce1ca9168d80f268c) Update JS dependencies (Steve Boyd)
* silverstripe/asset-admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-23 [b07f74ec](https://github.com/silverstripe/silverstripe-asset-admin/commit/b07f74ec58695029659ca82a3ba87207abcd5d0d) Update JS dependencies (Steve Boyd)
* silverstripe/campaign-admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-22 [840eeef](https://github.com/silverstripe/silverstripe-campaign-admin/commit/840eeef77575b34642aab78f7e77134b8ed345e0) Update JS dependencies (Steve Boyd)
* 2021-09-06 [7225248](https://github.com/silverstripe/silverstripe-campaign-admin/commit/7225248b138691b785f6f020329649b53a23d817) Bump ws from 5.2.2 to 5.2.3 (dependabot[bot])
* silverstripe/versioned-admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-22 [50af3f0](https://github.com/silverstripe/silverstripe-versioned-admin/commit/50af3f0e31031a778f332f305f2eb75d766baeda) Update JS dependencies (Steve Boyd)
* silverstripe/cms (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-22 [5b6b3906](https://github.com/silverstripe/silverstripe-cms/commit/5b6b3906e0265fd2445937eb6e049cf0b71d5ef6) Update JS dependencies (Steve Boyd)
* silverstripe/session-manager (1.1.0 -&gt; 1.2.0-rc1)
* 2021-11-22 [91b11a4](https://github.com/silverstripe/silverstripe-session-manager/commit/91b11a41b8869447bdd16fb89a7f74167bd6762b) Update JS dependencies (Steve Boyd)
* 2021-09-22 [5e666f7](https://github.com/silverstripe/silverstripe-session-manager/commit/5e666f708955de9b9e0cd8c9344bf2470de78256) Bump tmpl from 1.0.4 to 1.0.5 (dependabot[bot])
* silverstripe/tagfield (2.7.0 -&gt; 2.8.0-rc1)
* 2021-11-22 [adfe0f9](https://github.com/silverstripe/silverstripe-tagfield/commit/adfe0f994e689658f52686f217e9e99c7a43eca2) Update JS dependencies (Steve Boyd)
* silverstripe/blog (3.8.0 -&gt; 3.9.0-rc1)
* 2021-11-22 [e772216](https://github.com/silverstripe/silverstripe-blog/commit/e77221646de1f1664cc336bed1280aeab7726428) Update JS dependencies (Steve Boyd)
* silverstripe/widgets (2.1.1 -&gt; 2.2.0)
* 2021-11-09 [2b9536e](https://github.com/silverstripe/silverstripe-widgets/commit/2b9536e5ae924153129380dca6a831e042615884) Use phpunit ^9.5 (Steve Boyd)
* silverstripe/comments (3.6.0 -&gt; 3.7.2)
* 2021-11-22 [aa81f8c](https://github.com/silverstripe/silverstripe-comments/commit/aa81f8cdd2d8629893cd014686b255d444f40d36) Update JS dependencies (Steve Boyd)
* silverstripe/sharedraftcontent (2.5.0 -&gt; 2.6.0-rc1)
* 2021-11-22 [c27da98](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/c27da9827407696670ee9748974089c3d9e1418f) Update JS dependencies (Steve Boyd)
* symbiote/silverstripe-advancedworkflow (5.5.0 -&gt; 5.6.0-rc1)
* 2021-12-07 [97748f3](https://github.com/symbiote/silverstripe-advancedworkflow/commit/97748f39d33e2827cf466d1339d4d82ad1e4a361) Change from tilde to caret constraint (Steve Boyd)
* 2021-12-03 [964673f](https://github.com/symbiote/silverstripe-advancedworkflow/commit/964673f59c40873bf5bfbafd13a38b48174c8236) Allow symfony 4 (Steve Boyd)
* silverstripe/segment-field (2.4.0 -&gt; 2.5.0-rc1)
* 2021-11-22 [af90676](https://github.com/silverstripe/silverstripe-segment-field/commit/af906761f2a97a71f3d9dc06ac68170ff87f9694) Update JS dependencies (Steve Boyd)
* silverstripe/userforms (5.10.0 -&gt; 5.11.1)
* 2021-11-22 [d182265](https://github.com/silverstripe/silverstripe-userforms/commit/d1822650db5c4cdb9df6065bff69e44c6d9a4186) Update JS dependencies (Steve Boyd)
* bringyourownideas/silverstripe-maintenance (2.3.1 -&gt; 2.4.1)
* 2021-11-24 [b455b9e](https://github.com/bringyourownideas/silverstripe-maintenance/commit/b455b9e9e50adaffd2c0a34ccdc7ce52df43cd4c) Update JS dependencies (Steve Boyd)
* 2021-05-26 [141d0f6](https://github.com/bringyourownideas/silverstripe-maintenance/commit/141d0f6245a2f57263c957644601b70c8fadfe06) Remove security checker from suggested modules (Maxime Rainville)
* 2021-05-10 [181cd0f](https://github.com/bringyourownideas/silverstripe-maintenance/commit/181cd0fa9ebf89fab7d03096fcd3026e9e6cb550) Bump hosted-git-info from 2.8.8 to 2.8.9 (dependabot[bot])
* 2021-05-06 [7a9dde9](https://github.com/bringyourownideas/silverstripe-maintenance/commit/7a9dde9ca7bb6100aa70df9a427eca76a160e76f) Bump ua-parser-js from 0.7.18 to 0.7.28 (dependabot[bot])
* 2020-09-04 [2de197c](https://github.com/bringyourownideas/silverstripe-maintenance/commit/2de197ce2f62276f09d41eb8cbb89e1cf5c34bc3) Bump node-sass from 4.9.0 to 4.14.1 (dependabot[bot])
* 2020-07-30 [ab98d6d](https://github.com/bringyourownideas/silverstripe-maintenance/commit/ab98d6d64bfaae6386690fc8f691ca0b117c677f) Bump elliptic from 6.4.0 to 6.5.3 (dependabot[bot])
* 2020-07-16 [8347a84](https://github.com/bringyourownideas/silverstripe-maintenance/commit/8347a8469d46b001f0a5aaa8212dd4a7e6f44fd4) Bump lodash from 4.17.15 to 4.17.19 (dependabot[bot])
* 2020-07-08 [f29128c](https://github.com/bringyourownideas/silverstripe-maintenance/commit/f29128cf02b5c0e2881dfd7f5581c471e2dd87a4) Bump npm from 6.13.4 to 6.14.6 (dependabot[bot])
* 2020-07-07 [595281b](https://github.com/bringyourownideas/silverstripe-maintenance/commit/595281bb9bd5796f0ae414863b2aa072d8d8c0bb) Bump npm-registry-fetch from 4.0.2 to 4.0.5 (dependabot[bot])
* 2020-04-30 [be6675e](https://github.com/bringyourownideas/silverstripe-maintenance/commit/be6675e3e65e29373ad5d230f058a8553e1b4dd6) Bump jquery from 3.4.1 to 3.5.0 (dependabot[bot])
* 2019-12-13 [b083b04](https://github.com/bringyourownideas/silverstripe-maintenance/commit/b083b0483ae41dc05de4eb8f33e4418576837080) Bump lodash from 4.17.10 to 4.17.15 (dependabot[bot])
* 2019-12-13 [e49de3e](https://github.com/bringyourownideas/silverstripe-maintenance/commit/e49de3e4da9430182245c4d40a6f8441ae40fa28) Bump merge from 1.2.0 to 1.2.1 (dependabot[bot])
* 2019-12-13 [b319ee7](https://github.com/bringyourownideas/silverstripe-maintenance/commit/b319ee7f163ad96543160f960813cfebd846db89) Bump fstream from 1.0.11 to 1.0.12 (dependabot[bot])
* 2019-12-13 [5c7ba8e](https://github.com/bringyourownideas/silverstripe-maintenance/commit/5c7ba8e3311930bba4ed0588612edd9c5f60fa5a) Bump npm from 6.9.0 to 6.13.4 (dependabot[bot])
* dnadesign/silverstripe-elemental (4.7.0 -&gt; 4.8.0-rc1)
* 2021-11-22 [a6f4314](https://github.com/silverstripe/silverstripe-elemental/commit/a6f4314431da7dbcf922be000245816945691998) Update JS dependencies (Steve Boyd)
* 2021-01-26 [1b1df1a](https://github.com/silverstripe/silverstripe-elemental/commit/1b1df1a88b5beeccb859bb7ae3f327692e4fdfb7) PHP8 support (Steve Boyd)
* silverstripe/elemental-bannerblock (2.3.0 -&gt; 2.4.0-rc1)
* 2021-11-22 [0d0f5d0](https://github.com/silverstripe/silverstripe-elemental-bannerblock/commit/0d0f5d081ba568e8be1a9ea5ec20201200d198a1) Update JS dependencies (Steve Boyd)
* silverstripe/fulltextsearch (3.8.0 -&gt; 3.9.0-rc1)
* 2021-12-08 [34e0594](https://github.com/silverstripe/silverstripe-fulltextsearch/commit/34e0594e48f8f5c140e3b41544d39c8f88184114) Allow symfony 4 (Steve Boyd)
* silverstripe/totp-authenticator (4.2.0 -&gt; 4.3.0-rc1)
* 2021-11-22 [4dd556a](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/4dd556ae73a90421fa06f0cfbee48c8c79f0c933) Update JS dependencies (Steve Boyd)
* 2021-10-28 [c702afb](https://github.com/silverstripe/silverstripe-totp-authenticator/commit/c702afb4de7080fa24da025e86a64065cade79f7) PHP8 support (Steve Boyd)
* silverstripe/mfa (4.4.0 -&gt; 4.5.1)
* 2021-11-22 [8653bc2](https://github.com/silverstripe/silverstripe-mfa/commit/8653bc237b1952e5b1bd4eb5cd79976798c7e70f) Update JS dependencies (Steve Boyd)
* 2021-09-21 [1b31005](https://github.com/silverstripe/silverstripe-mfa/commit/1b310057c0a403c93d41944b6f19d53ae59ffb91) Bump tmpl from 1.0.4 to 1.0.5 (dependabot[bot])
* silverstripe/ckan-registry (1.3.0 -&gt; 1.4.0-rc1)
* 2021-11-22 [c8b34ad](https://github.com/silverstripe/silverstripe-ckan-registry/commit/c8b34ad8ac21a4f020c4baaa423e115b20a0ec33) Update JS dependencies (Steve Boyd)
* silverstripe/webauthn-authenticator (4.3.0 -&gt; 4.4.1)
* 2021-11-22 [0b92ac2](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/0b92ac2df817a337c73008b54bb4ce3939aa93e2) Update JS dependencies (Steve Boyd)
* 2021-11-07 [14b1b59](https://github.com/silverstripe/silverstripe-webauthn-authenticator/commit/14b1b598c0bd0461071e98c706bb9abea85c9558) PHP 8 support (Steve Boyd)
* silverstripe/security-extensions (4.1.0 -&gt; 4.2.1)
* 2021-11-22 [124fba4](https://github.com/silverstripe/silverstripe-security-extensions/commit/124fba449fe0b7331c22ab6eba0f2a12fb4e0c9f) Update JS dependencies (Steve Boyd)
* cwp/agency-extensions (2.5.0 -&gt; 2.6.0)
* 2021-05-12 [49f715c](https://github.com/silverstripe/cwp-agencyextensions/commit/49f715c57f4d8911b3426b16698e28851808a6f6) Bump merge from 1.2.1 to 2.1.1 (dependabot[bot])
* 2021-05-08 [01878cb](https://github.com/silverstripe/cwp-agencyextensions/commit/01878cbc5f227bba9e67a5e8ad060ddbbdadfd20) Bump lodash from 4.17.20 to 4.17.21 (dependabot[bot])
* 2021-05-06 [e57ac4e](https://github.com/silverstripe/cwp-agencyextensions/commit/e57ac4e8a35d024155a872cc916ad4d6b5b8aed2) Bump ua-parser-js from 0.7.20 to 0.7.28 (dependabot[bot])
* 2021-03-30 [a6481e8](https://github.com/silverstripe/cwp-agencyextensions/commit/a6481e8a9d2abf022549836a00c0413571ed54b9) Bump y18n from 3.2.1 to 3.2.2 (dependabot[bot])
* 2021-03-09 [1e3ab04](https://github.com/silverstripe/cwp-agencyextensions/commit/1e3ab042284813991e46d07ac8a79585bb0ef292) Bump elliptic from 6.5.3 to 6.5.4 (dependabot[bot])
* 2020-11-05 [c90e2cd](https://github.com/silverstripe/cwp-agencyextensions/commit/c90e2cdae79176a8277e5270b0ea7fbb19286435) Bump dot-prop from 4.2.0 to 4.2.1 (dependabot[bot])
* silverstripe/recipe-ccl (2.9.0 -&gt; 2.10.0-rc1)
* 2021-11-11 [6110f07](https://github.com/silverstripe/recipe-ccl/commit/6110f07c0aeb71452ab5e1aaa2c35465c792937d) Use carets instead of dev requirements and use phpunit 9 (Steve Boyd)
* dnadesign/silverstripe-elemental-userforms (3.0.0 -&gt; 3.1.0)
* 2021-11-15 [183df01](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/183df016a167add99db2008b88e910a4ee549422) Bump workflow version (Steve Boyd)
* 2021-11-04 [7a467e1](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/7a467e12657674230e33a874a6c5f526b9e495b8) Use workflow 0.1.7 (Steve Boyd)
* 2021-11-04 [38128a2](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/38128a2ab0f75d60b18c49760850c9c04123bd1a) Require dms/phpunit-arraysubset-asserts (Steve Boyd)
### Documentation
* silverstripe/framework (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-30 [f3a9c566d](https://github.com/silverstripe/silverstripe-framework/commit/f3a9c566dcd420fbd6231abd73bff39fce7c6f92) Update changelog (Steve Boyd)
* 2021-11-30 [ef8669f3e](https://github.com/silverstripe/silverstripe-framework/commit/ef8669f3edd8b51bb58fe51c5169c6e90d5075e7) Document hickup with the 4.10 framework unstable (#10161) (Maxime Rainville)
* 2021-11-17 [b5bff1aa0](https://github.com/silverstripe/silverstripe-framework/commit/b5bff1aa08afc7e499fc8920728c703731621d75) GraphQL architecture diagrams (#10123) (Aaron Carlino)
* 2021-11-15 [1bc1e85f6](https://github.com/silverstripe/silverstripe-framework/commit/1bc1e85f6893338b4aa91a3a2fd740763c9654a8) Fix minor typos in Module (Maxime Rainville)
* 2021-11-09 [a08f43b76](https://github.com/silverstripe/silverstripe-framework/commit/a08f43b762343b44e2d1a7b1ac976787c40fd45c) Fix misleading code docblocks (#10145) (LiamKearn)
* 2021-11-08 [b38100715](https://github.com/silverstripe/silverstripe-framework/commit/b3810071564631984c432c7d89d9bf430e28f8ed) more guidance on how to create a module (#10131) (Bryn Whyman)
* 2021-11-08 [0e6817bb8](https://github.com/silverstripe/silverstripe-framework/commit/0e6817bb8d2721a531473c502220e3f8c90c7073) new guidance page on how to upgrade a project (#10132) (Bryn Whyman)
* 2021-11-07 [4b8bc55c4](https://github.com/silverstripe/silverstripe-framework/commit/4b8bc55c4052e2fe4b22ccfe14d76adfda41cf81) Create skeleton for 4.10.0 changelog (Steve Boyd)
* 2021-11-02 [d1cd9361d](https://github.com/silverstripe/silverstripe-framework/commit/d1cd9361d82342c7daad5ed3bc6e16a04b5373e6) Update PHP support policy (Maxime Rainville)
* 2021-10-11 [98ff02994](https://github.com/silverstripe/silverstripe-framework/commit/98ff0299416a0070128fe992fc417d8376ad840d) - Use email address (Steve Boyd)
* 2021-10-06 [e3c7c9712](https://github.com/silverstripe/silverstripe-framework/commit/e3c7c971274eb70da158ce9fe0b22d43f09eefe3) supporting notes to CWP migration docs (brynwhyman)
* 2021-10-05 [9a119a358](https://github.com/silverstripe/silverstripe-framework/commit/9a119a35816004f0fc7587a8f8b08093f11c6c9b) add release announcement link to changelog (brynwhyman)
* 2021-10-05 [41d9b400c](https://github.com/silverstripe/silverstripe-framework/commit/41d9b400c218140c4262bdd2924933d72cb8e594) clarify &amp;#039;cms recipe&amp;#039; docs (brynwhyman)
* 2021-10-03 [bad4cbef7](https://github.com/silverstripe/silverstripe-framework/commit/bad4cbef7da6e63538d0dc0385fc6bb122f06d42) Explain how to get off CWP (Maxime Rainville)
* 2021-09-24 [fbf487183](https://github.com/silverstripe/silverstripe-framework/commit/fbf487183e65ea60246578607d6a810c692a3057) update /app/code to /app/src for correct v4 structure (Michael)
* 2021-09-21 [065be7071](https://github.com/silverstripe/silverstripe-framework/commit/065be7071767a5355b3ae78b0b559b566cc2ae58) Remove reference to being able to test GraphQL v4 without inlining recipes and tweak swiftmailer doc (Maxime Rainville)
* 2021-09-14 [52e5e6239](https://github.com/silverstripe/silverstripe-framework/commit/52e5e623915a1a565d35185ba62ed9e87b48ff99) Escape HTML in heading (Steve Boyd)
* 2021-09-14 [677668f43](https://github.com/silverstripe/silverstripe-framework/commit/677668f43a651fdead5d8ce1def05e1672563a26) Mention image lazy loading available from 4.9 onwards (Steve Boyd)
* 2021-09-13 [6898dd06d](https://github.com/silverstripe/silverstripe-framework/commit/6898dd06dbf22916c9bf79f9438d79d9895978ec) Minor tweaks to changelog (Maxime Rainville)
* 2021-09-08 [25c4f92e5](https://github.com/silverstripe/silverstripe-framework/commit/25c4f92e5eaec4df9730f9d7d0e6a11bc49a1d7c) Mark TEMP_PATH as constant rather than env (Ingo Schommer)
* 2021-09-08 [022db808e](https://github.com/silverstripe/silverstripe-framework/commit/022db808e9de82562e7732f743dd9d19be4073fb) Fixed browser support regression (Ingo Schommer)
* 2021-09-06 [40bb322a7](https://github.com/silverstripe/silverstripe-framework/commit/40bb322a7e0abc641203580be59a83529c81c887) Document new DBFieldArgs plugin (#10039) (Aaron Carlino)
* 2021-09-06 [de3f125a5](https://github.com/silverstripe/silverstripe-framework/commit/de3f125a536dbe339f24b34cc79f76b4ef8698c5) Clarify recipe usages (Maxime Rainville)
* 2021-09-06 [49f2f641b](https://github.com/silverstripe/silverstripe-framework/commit/49f2f641beea23819ee64380d91377f180e43a37) Mention the EOL of IE 11 in 4.9.0 changelog (Maxime Rainville)
* 2021-09-03 [d499420ae](https://github.com/silverstripe/silverstripe-framework/commit/d499420ae26375dd8c2d78ed0307ab53d1e84071) Add additional info to 4.9.0 changelog (Maxime Rainville)
* bringyourownideas/silverstripe-maintenance (2.3.1 -&gt; 2.4.1)
* 2021-07-30 [149badb](https://github.com/bringyourownideas/silverstripe-maintenance/commit/149badbbd0963f85baf7c522601213823172cfb9) readme wording fix (Bryn Whyman)
* cwp/cwp-core (2.8.0 -&gt; 2.9.0)
* 2021-11-08 [db1f6e1](https://github.com/silverstripe/cwp-core/commit/db1f6e10a04b3f432ce4e7529d9787045dc2ecc3) update reference to module succeeding the cwp recipe (#100) (Bryn Whyman)
* cwp/cwp (2.8.0 -&gt; 2.9.0)
* 2021-06-10 [e3bf7ac](https://github.com/silverstripe/cwp/commit/e3bf7acc28819f43e56267fa81be8ddf4bf306fe) Add 2.8.0 changelog to index page (#305) (Maxime Rainville)
### Other changes
* silverstripe/framework (4.9.0 -&gt; 4.10.0-rc1)
* 2021-11-21 [e0197191b](https://github.com/silverstripe/silverstripe-framework/commit/e0197191b8879c7393805fdddca4c7e60591f5ad) Rename &amp;quot;Ignore CI Configs&amp;quot; to &amp;quot;Ignored CI Config&amp;quot; (Maxime Rainville)
* 2021-11-18 [7c3fddfc8](https://github.com/silverstripe/silverstripe-framework/commit/7c3fddfc8a52fbad4a28256d80b8ba9ff6b83007) Anwser Peer review feedback (Maxime Rainville)
* 2021-11-18 [d5b03eb5c](https://github.com/silverstripe/silverstripe-framework/commit/d5b03eb5cb432b4b5387a52c3c22225f0c20a1c9) Bump to composer/installer v2 (#10153) (Maxime Rainville)
* 2021-09-13 [3a9c4002b](https://github.com/silverstripe/silverstripe-framework/commit/3a9c4002b90c5d65d2303bc2c4fe7e59c91d07fc) Apply suggestions from code review (Maxime Rainville)
* 2021-09-09 [26da242e6](https://github.com/silverstripe/silverstripe-framework/commit/26da242e6b161dd609e0a85c04d501b462d89f57) Add a bit more detail (Maxime Rainville)
* 2021-02-21 [79d04fed0](https://github.com/silverstripe/silverstripe-framework/commit/79d04fed0d7a64940431fcbee2cb7e2f18e473c7) CompositeValidator::validate() to call validate() instead of php() (Chris Penny)
* silverstripe/admin (1.9.0 -&gt; 1.10.0-rc1)
* 2021-11-10 [a7e6d13](https://github.com/silverstripe/silverstripe-admin/commit/a7e6d13f2adfb23cf58613c363497d2b448c799d) BUGFIX: separate types urls for graphql 3 and 4 (#1265) (Aaron Carlino)
* 2021-11-05 [ffe14c0](https://github.com/silverstripe/silverstripe-admin/commit/ffe14c09dcb8906ac3eeda5f15c703ef081944b6) Use new public/_graphql/ subfolder location (#1222) (Ingo Schommer)
* 2021-10-21 [0fd580e](https://github.com/silverstripe/silverstripe-admin/commit/0fd580e1e8fbe8a21888f5019d9860c29ef3928e) Add legacy readone graphql resolver (#1260) (Mo Alsharaf)
* silverstripe/graphql (3.6.0 -&gt; 3.7.1)
* 2021-10-21 [7fa8afd](https://github.com/silverstripe/silverstripe-graphql/commit/7fa8afd9219624272aff1f13e709b61467822d12) Add query filter check &amp;amp; compatibility with graphsql 3 (#411) (Mo Alsharaf)
* silverstripe/documentconverter (2.1.1 -&gt; 2.2.0-rc1)
* 2021-01-21 [57a03e3](https://github.com/silverstripe/silverstripe-documentconverter/commit/57a03e37d04b498c5a6904438ccc6abc7ea7a7e2) Update build status badge (Steve Boyd)
* silverstripe/iframe (2.1.0 -&gt; 2.2.0-rc1)
* 2021-01-21 [3f8b3d1](https://github.com/silverstripe/silverstripe-iframe/commit/3f8b3d1eda0de2b1cab9a7816f41b18cd886a7f8) Update build status badge (Steve Boyd)
* symbiote/silverstripe-advancedworkflow (5.5.0 -&gt; 5.6.0-rc1)
* 2021-08-24 [1252d33](https://github.com/symbiote/silverstripe-advancedworkflow/commit/1252d338dce973b9182c586063ef276500d2f6b4) add extension hook to WorkflowInstance (Klemen Dolinšek)
* silverstripe/userforms (5.10.0 -&gt; 5.11.1)
* 2021-09-16 [9f7e55b](https://github.com/silverstripe/silverstripe-userforms/commit/9f7e55b3466c30e4a98bd8a6f2636493b24cd309) Use controller_name static config instead of method for better inheritance (Alexandre)
* silverstripe/externallinks (2.1.1 -&gt; 2.2.0-rc1)
* 2021-01-21 [478d661](https://github.com/silverstripe/silverstripe-externallinks/commit/478d6613f8ac0c1c903f07bd260cd95f090b09f5) Update build status badge (Steve Boyd)
* bringyourownideas/silverstripe-maintenance (2.3.1 -&gt; 2.4.1)
* 2021-05-26 [4df3e2f](https://github.com/bringyourownideas/silverstripe-maintenance/commit/4df3e2f02b48c6360213e14973e279ef71d5dfe5) Remove trailing space (Peter Thaleikis)
* 2021-05-26 [2019373](https://github.com/bringyourownideas/silverstripe-maintenance/commit/2019373bfbf2a0e6a191cb679ab9d9f53fdff3ad) Updating the readme to cover unsupported module (Peter Thaleikis)
* 2020-06-24 [84fbdd9](https://github.com/bringyourownideas/silverstripe-maintenance/commit/84fbdd9abcc4ddfa3a06e67d7584f8af659d9689) Update composer root version (Steve Boyd)
* 2019-12-19 [3245c1b](https://github.com/bringyourownideas/silverstripe-maintenance/commit/3245c1b2a8453cca082ea5ae736295687e0fa0bf) META: Add action to build docs on Netlify (Aaron Carlino)
* bringyourownideas/silverstripe-composer-update-checker (2.0.3 -&gt; 2.1.0)
* 2020-06-24 [3d202f2](https://github.com/bringyourownideas/silverstripe-composer-update-checker/commit/3d202f218c9d1bed9c91d784ee85c726b325448e) Update composer root version (Steve Boyd)
* dnadesign/silverstripe-elemental (4.7.0 -&gt; 4.8.0-rc1)
* 2021-10-07 [32306b0](https://github.com/silverstripe/silverstripe-elemental/commit/32306b03a59a66769a5f8f53b2a92c8dd326cec8) Improvement: Add Versioned @mixin and update some linting (Chris Penny)
* 2021-10-04 [5cef324](https://github.com/silverstripe/silverstripe-elemental/commit/5cef324a2d5373bce57ca72139033eac010d262a) Add simple unit tests for onBeforeWrite with no Parent (Chris Penny)
* 2021-10-04 [0f1d267](https://github.com/silverstripe/silverstripe-elemental/commit/0f1d26700c478cd286edce46e892b613f4f625ab) Bugfix 849: Set default Sort only when ParentID is available (Chris Penny)
* silverstripe/fulltextsearch (3.8.0 -&gt; 3.9.0-rc1)
* 2021-09-13 [bd3ef84](https://github.com/silverstripe/silverstripe-fulltextsearch/commit/bd3ef84cb389e5c80f19b13b4ac07f7b6432989a) Make SearchQuery_Range injectable. (GuySartorelli)
* 2021-01-21 [de10761](https://github.com/silverstripe/silverstripe-fulltextsearch/commit/de107616fb13062c39281ce57918e6a695d8ba01) Update build status badge (Steve Boyd)
* symbiote/silverstripe-queuedjobs (4.8.0 -&gt; 4.9.0)
* 2021-11-08 [135f7d7](https://github.com/symbiote/silverstripe-queuedjobs/commit/135f7d75d1ab032f693f5ad91dd46f178d5a18cc) PHP version constraint add ^8.0 (#360) (Luke Fromhold)
* 2021-10-18 [9c6f4c0](https://github.com/symbiote/silverstripe-queuedjobs/commit/9c6f4c09397e3b77a3bd7f313def20b4dd7ef93f) BUGFIX: &amp;#039;stalled&amp;#039; needs to be defined to print values (#293) (Matt Clegg)
* silverstripe/ldap (1.2.1 -&gt; 1.3.0-rc1)
* 2021-01-21 [2c165fa](https://github.com/silverstripe/silverstripe-ldap/commit/2c165fa0186014bdcb39105852d2be927fcc32fa) Update build status badge (Steve Boyd)
* silverstripe/realme (4.1.1 -&gt; 4.2.0-rc1)
* 2021-11-29 [3afc5cb](https://github.com/silverstripe/silverstripe-realme/commit/3afc5cbe4b0d6b01825ee6df6750b8d03b40b6f2) Update RealMeService.php (andreaspiening)
* 2021-11-26 [61e0e07](https://github.com/silverstripe/silverstripe-realme/commit/61e0e07a0b7559c33907754f4d63d9f70c3fc225) Update RealMeService.php (andreaspiening)
* 2021-04-26 [2867323](https://github.com/silverstripe/silverstripe-realme/commit/2867323d82d4c3910554a7116f7054b96585cc74) Update configuration.md (torleif)
* silverstripe/subsites (2.4.0 -&gt; 2.5.0)
* 2021-01-21 [e306264](https://github.com/silverstripe/silverstripe-subsites/commit/e30626474013aa4959733ea1ef51e61ed92bca1c) Update build status badge (Steve Boyd)
* silverstripe/recipe-ccl (2.9.0 -&gt; 2.10.0-rc1)
* 2021-10-03 [f515a4c](https://github.com/silverstripe/recipe-ccl/commit/f515a4c8b48cff3ee52b965086ceb6e56e2df8f0) Mention Revera in the Readme to clear up confusion (Andrew Paxley)
* cwp/cwp (2.8.0 -&gt; 2.9.0)
* 2021-05-27 [2e73d9e](https://github.com/silverstripe/cwp/commit/2e73d9e1fa089c92584489319f2b12143c373a48) Remove bringyourownideas/silverstripe-composer-security-checker (#302) (Maxime Rainville)
* dnadesign/silverstripe-elemental-userforms (3.0.0 -&gt; 3.1.0)
* 2021-11-04 [504ff56](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/504ff5653e97f73ef080dcebfa7875c4c5abc1ea) Update main.yml (Steve Boyd)
* 2019-01-28 [e7d973c](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/e7d973c4051d23889308c4ff8af527139664e661) Update README.md to include correct installation version (Guy Marriott)
* 2018-11-07 [61f5f9b](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/61f5f9b095cdc559ee75cdcac0fc1da519c33789) Bump branch alias for master to 3.x-dev (Robbie Averill)
<!--- Changes above this line will be automatically regenerated -->

View File

@ -113,5 +113,9 @@ class SessionAuthenticationHandler implements AuthenticationHandler
{
$request = $request ?: Controller::curr()->getRequest();
$request->getSession()->destroy(true, $request);
if (Member::config()->get('login_marker_cookie')) {
Cookie::force_expiry(Member::config()->get('login_marker_cookie'));
}
}
}

View File

@ -372,7 +372,7 @@ class i18nTextCollector
// For each module do a simple merge of the default yml with these strings
foreach ($entitiesByModule as $module => $messages) {
// Load existing localisations
$masterFile = "{$this->basePath}/{$module}/lang/{$this->defaultLocale}.yml";
$masterFile = "{$this->basePath}/vendor/{$module}/lang/{$this->defaultLocale}.yml";
$existingMessages = $this->getReader()->read($this->defaultLocale, $masterFile);
// Merge

View File

@ -4,13 +4,15 @@ namespace SilverStripe\Security\Tests\MemberAuthenticator;
use SilverStripe\Control\Cookie;
use SilverStripe\Control\HTTPRequest;
use SilverStripe\Control\Session;
use SilverStripe\Core\Config\Config;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Security\Member;
use SilverStripe\Security\MemberAuthenticator\SessionAuthenticationHandler;
class SessionAuthenticationHandlerTest extends SapphireTest
{
protected static $fixture_file = 'SessionAuthenticationHandlerTest.yml';
protected $usesDatabase = true;
/**
@ -58,4 +60,20 @@ class SessionAuthenticationHandlerTest extends SapphireTest
$this->assertNotNull($matchedMember);
$this->assertEquals($matchedMember->Email, $member->Email);
}
public function testLoginMarkerCookie()
{
Config::modify()->set(Member::class, 'login_marker_cookie', 'sslogin');
/** @var Member $member */
$member = $this->objFromFixture(Member::class, 'test');
$this->logInAs($member);
$this->assertNotNull(Cookie::get('sslogin'), 'Login marker cookie is set after logging in');
$this->logOut();
$this->assertNull(Cookie::get('sslogin'), 'Login marker cookie is deleted after logging out');
}
}

View File

@ -0,0 +1,11 @@
'SilverStripe\Security\Group':
usergroup:
Title: usergroup
Code: usergroup
'SilverStripe\Security\Member':
test:
FirstName: Test
Surname: User
Email: testuser@example.com
Password: 1nitialPassword
Groups: '=>SilverStripe\Security\Group.usergroup'