The 4.10.0-beta1 release is not stable and likely contains bugs. The purpose of this release is to help the Silverstripe CMS Squad and the Silverstripe community identify and fix bugs prior to the stable release.
## Stable module forcing installation of unstable framework{#unstable-framework}
If you recently updated your project's `composer.json` file, you may have accidentally got an unstable version of `silverstripe/framework`.
In the process of publishing Silverstripe CMS Recipe 4.10.0-beta1, we ended up releasing a few modules as "stable" but with a requirement on the unstable `silverstripe/framework` 4.10. For most projects, this won't be a problem if your `composer.json` file uses the `"prefer-stable": true` flag. However, if you explicitly require the very latest version of a module that depends on `silverstripe/framework ^4.10` then composer may install an unstable version of `silverstripe/framework`.
To double check what version of `silverstripe/framework` is installed on your project, run this command `composer show silverstripe/framework`. This will show the currently installed version of `silverstripe/framework`. If it comes out with `4.10.0-beta1` or `4.x-dev` or `4.10-x-dev`, you are running an unreleased version.
To remedy this problem you can explicitly require `"silverstripe/framework": "~4.9.0"` in your composer file and run `composer update -W`. If you get conflicts, you might need to loosen some constraints to get older versions of some modules. Once you are ready to upgrade to `silverstripe/framework` 4.10.0 stable then you'll need to remove that explicit constraint.
Alternatively, if you want to be 100% sure that you never run any unstable dependencies, you can set the `minimum-stability` in your composer file to `stable`. Run `composer update -W` to detect any unstable requirements.
### Why did this happen?
In the process of getting all our modules compatible with PHPUnit 9.5, we had to force them to use `silverstripe/framework` 4.10 or greater. We ended up tagging a few module as stable earlier than we normally would to get our CI green. We didn't fully appreciate the nuances of composer's `prefer-stable` setting when we made this decision. We apologise for any inconveniences.
## 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}
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 -->
* 2021-11-16 [cbc4593ab](https://github.com/silverstripe/silverstripe-framework/commit/cbc4593ab464cf43f6c0edfb9cde75f68a5740ce) Don&#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 -> 4.10.0-beta1)
* 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-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 -> 2.3.0-beta1)
* 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 -> 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)
* 2021-10-19 [d94cadc](https://github.com/silverstripe/silverstripe-elemental/commit/d94cadc7766af5c1dfcca714efb4214876cc8512) Add extension points to update element controller styles and template (Michal Kleiner)
* 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-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-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)
* silverstripe/cms (4.9.0 -> 4.10.0-beta1)
* 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-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 -> 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 -> 2.8.0-beta1)
* 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 -> 3.7.2)
* 2021-10-14 [066b28b](https://github.com/silverstripe/silverstripe-comments/commit/066b28bb3d374356746e1ea7727000e65d0644d5) Fix broken link in README.md (Loz Calver)
* 2021-10-18 [03e1191](https://github.com/silverstripe/silverstripe-sharedraftcontent/commit/03e11914926af406e45253ac671ac9578857d3b6) add user agent to indicate request is automated (#153) (Will Rossiter)
* 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)
* 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)
* 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 &#039;waiting&#039; has Worker reset so it can be picked up by a worker (Marcus Nyeholt)
* 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 -> 4.2.0-beta1)
* 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)
* 2020-03-31 [4b51a47](https://github.com/dnadesign/silverstripe-elemental-userforms/commit/4b51a471f238f1cb34b5a0ace899738aff2aaa54) update version constraint to not include &#039;@dev&#039; (brynwhyman)
* 2021-11-04 [15fd452](https://github.com/silverstripe/recipe-core/commit/15fd452966f79e2edf556be8620664c72cb24c98) phpunit 9 support (Steve Boyd)
* silverstripe/assets (1.9.0 -> 1.10.0-beta1)
* 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 -> 1.3.0-beta1)
* 2021-10-27 [3a4c9d6](https://github.com/silverstripe/silverstripe-config/commit/3a4c9d6fa0e2ea7d685dce99b528e3f21aa3ec8f) phpunit 9 support (Steve Boyd)
* 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)
* 2021-11-17 [739ce59](https://github.com/silverstripe/recipe-kitchen-sink/commit/739ce5949d4a3480c29c59047e7602d5c24b1f9b) Remove modules that have no tests (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])
* 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])
* 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])
* 2021-09-21 [1b31005](https://github.com/silverstripe/silverstripe-mfa/commit/1b310057c0a403c93d41944b6f19d53ae59ffb91) Bump tmpl from 1.0.4 to 1.0.5 (dependabot[bot])
* 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])
* 2021-11-11 [6110f07](https://github.com/silverstripe/recipe-ccl/commit/6110f07c0aeb71452ab5e1aaa2c35465c792937d) Use carets instead of dev requirements and use phpunit 9 (Steve Boyd)
* 2021-11-15 [1bc1e85f6](https://github.com/silverstripe/silverstripe-framework/commit/1bc1e85f6893338b4aa91a3a2fd740763c9654a8) Fix minor typos in Module (Maxime Rainville)
* 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-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 [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)
* 2021-11-21 [e0197191b](https://github.com/silverstripe/silverstripe-framework/commit/e0197191b8879c7393805fdddca4c7e60591f5ad) Rename &quot;Ignore CI Configs&quot; to &quot;Ignored CI Config&quot; (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 -> 1.10.0-beta1)
* 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-08-24 [1252d33](https://github.com/symbiote/silverstripe-advancedworkflow/commit/1252d338dce973b9182c586063ef276500d2f6b4) add extension hook to WorkflowInstance (Klemen Dolinšek)
* silverstripe/userforms (5.10.0 -> 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)
* 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)
* 2021-10-18 [9c6f4c0](https://github.com/symbiote/silverstripe-queuedjobs/commit/9c6f4c09397e3b77a3bd7f313def20b4dd7ef93f) BUGFIX: &#039;stalled&#039; needs to be defined to print values (#293) (Matt Clegg)
* silverstripe/ldap (1.2.1 -> 1.3.0-beta1)
* 2021-01-21 [2c165fa](https://github.com/silverstripe/silverstripe-ldap/commit/2c165fa0186014bdcb39105852d2be927fcc32fa) Update build status badge (Steve Boyd)
* 2021-10-03 [f515a4c](https://github.com/silverstripe/recipe-ccl/commit/f515a4c8b48cff3ee52b965086ceb6e56e2df8f0) Mention Revera in the Readme to clear up confusion (Andrew Paxley)
* 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)