silverstripe-framework/docs/en/04_Changelogs/beta/4.7.0-beta1.md

348 lines
43 KiB
Markdown
Raw Normal View History

2020-11-02 03:59:16 +01:00
# 4.7.0-beta1
## Overview
- [Updated file usage table](#updated-file-usage-table)
2020-11-02 04:41:15 +01:00
- [Experimental support for PHP 8](#experimental-support-for-php-8)
- [Support for Symfony 4 Components](#support-for-symfony-4-components)
- [Default MySQL collation updated](#default-mysql-collation-updated)
- [MySQL connection mode configurable](#mysql-connection-mode-now-configurable)
- [Flysystem dependency shifted](#flysystem-dependency-shifted)
- [Improved Toast notifications](#improved-toast-notifications)
- [DataObject constructor support for hydration](#dataobject-constructor-support-for-hydration)
2020-11-02 03:59:16 +01:00
2020-11-02 04:41:15 +01:00
## New features
2020-11-02 03:59:16 +01:00
### Updated file usage table
CMS users can view where a file is used by accessing the Used on tab in the Files section. This feature allows them to
identify what DataObjects depend on the file.
The following changes have been made to the Used on table:
- Data is now sourced from `has_one` and `many_many` relations instead of the ownership API
- This means more data relationships should be shown than before
- Uses the new `RelatedDataService` API in the framework module which can also be used for other non-file use cases
- Support for linking ancestor relationships in the same table row, for instance showing the Page a Content Block is on
- Usage data is lazy-loaded when the Used on tab is selected to minimise its performance impact
- Ability to click on a row and navigate to the most relevant `CMSEditLink()`
- Removal of draft badges
- Styling tweaks such as reduced padding
Your project specific DataObjects will automatically be displayed on this Used on tab. This may not always be desirable,
especially when working with background DataObjects the user can not interact with directly. It is recommended you view
the CMS Developer Guide for more information on this change, see the [File Usage section](docs/en/02_Developer_Guides/14_Files/07_File_Usage).
2020-11-02 04:41:15 +01:00
### Experimental support for PHP 8
2020-11-02 03:59:16 +01:00
2020-11-02 04:41:15 +01:00
You can now run Silverstripe CMS on PHP 8, which is due for release in November 2020. PHP 8 includes
many exciting new features like named parameters, attributes, and union types. There are a few
important caveats to keep in mind if you plan to adopt PHP 8 at release.
2020-11-02 03:59:16 +01:00
2020-11-02 04:41:15 +01:00
Upgrading to PHP 8 on projects using `SapphireTest` for unit testing requires adoption of the
[`sminnee/phpunit`](https://packagist.org/packages/sminnee/phpunit) fork, and Prophecy is not
currently supported. Prophecy tests can be fairly trivially ported to PHPUnit Mock Objects. We hope
to give you better support for choosing your own testing tools, including newer versions of PHPUnit,
in a future release.
2020-11-02 03:59:16 +01:00
2020-11-02 04:41:15 +01:00
Support for PHP 8 does not yet extend to non-core modules, and PHP 8 itself is not yet stable, so
compatibility issues could arise in future PHP builds. This extends to dependencies of core, many of
which have not yet declared support for PHP 8, so you will need to run Composer with the
`--ignore-platform-reqs` flag for the time being.
2020-11-02 03:59:16 +01:00
2020-11-02 04:41:15 +01:00
Finally, support for the new JIT functionality has not yet been tested.
2020-11-02 03:59:16 +01:00
2020-11-02 04:41:15 +01:00
We encourage early adopters to report any issues running CMS Recipe 4.7.0 against PHP 8 on the
relevant GitHub repository.
2020-11-02 03:59:16 +01:00
2020-11-02 04:41:15 +01:00
### Support for Symfony 4 Components
Symfony 3 will become unsupported early next year, so Silverstripe CMS is now forwards-compatible
with Symfony 4 components. This is a largely transparent upgrade, but you may encounter errors
related to strings starting with `%` in YML files, which can be easily rectified by wrapping all
affected strings in quotes.
If you'd rather retain the previous YAML parser for the time being, you can run
`composer require symfony/yaml:^3` on your project to prevent the update to version 4.
### Default MySQL collation updated
New projects based on `silverstripe/installer` will default to the `utf8mb4_unicode_ci` collation.
This change will not affect existing projects, but developers are encouraged to adopt this collation
as it provides better support for multi-byte characters such as emojis.
Depending on the version of MySQL you are running, you may encounter issues with `Varchar` fields
exceeding the maximum indexable size:
- MySQL 5.5 and lower cannot support indexes larger than 768 bytes (192 characters)
- MySQL 5.6 supports larger indexes (3072 bytes) if the `innodb_large_prefix` setting is enabled (not by default)
- MySQL 5.7 and newer have `innodb_large_prefix` enabled by default
- MariaDB ~10.1 matches MySQL 5.6's behaviour, >10.2 matches 5.7's.
You can rectify this by upgrading MySQL, enabling the `innodb_large_prefix` setting if present, or
reducing the size of affected fields. If none of these solutions are currently suitable, you can
remove the new collation configuration to default back to the previous default collation.
2020-11-02 03:59:16 +01:00
2020-11-02 04:41:15 +01:00
### MySQL connection mode now configurable
2020-11-02 03:59:16 +01:00
2020-11-02 04:41:15 +01:00
In MySQL versions >=5.7.5, the `ANSI` sql_mode setting behaves differently and includes the `ONLY_FULL_GROUP_BY` setting. It is generally recommended to leave this setting as-is because it results in deterministic SQL. However, for some advanced cases, the sql_mode can now be configured on the database connection via the configuration API (see `MySQLDatabase::$sql_mode` for more details.)
### Flysystem dependency shifted
Previously the Flysystem package was pulled in via the `silverstripe/framework` module, but only
used in the `silverstripe/assets` module. To make this dependency clearer, it has been added to
the `silverstripe/assets` module and removed from `silverstripe/framework`. Most developers should
not notice any issues, but if you depend on Flysystem in your own project code, you should ensure
that you have it specified in your `composer.json`.
An edgecase exists where a project can update to `silverstripe/framework 4.7.0` but remain on
`silverstripe/assets 1.6.x`, and lose the Flysystem dependency entirely. The best way to avoid this
is by ensuring you update all core modules to the new minor release at once, ideally through a core
recipe like `silverstripe/recipe-core`.
### Improved Toast notifications
Toast notifications have been completely revamped
- Toast notifications can now be triggered from React components using Redux actions
- Actions can now be attached to the toast notifications
- Accessibility has been improved (see the component documentation for caveats when using actions)
Asset-admin has been updated to use toast notifications instead of alerts. More modules will start
using them in future releases.
[Review the Toast story in the pattern library](https://silverstripe.github.io/silverstripe-admin/?selectedKind=Admin%2FToasts&selectedStory=Single)
to learn how and when to use the toast notifications.
### DataObject constructor support for hydration
Many developers wrongly assumed that the DataObject constructor could be used to "hydrate" a record
by passing an array of value to it. While this worked in some cases, values would be run through
setters and validation occasionally leading to inconsistencies.
Silverstripe CMS Recipe 4.7 introduces improvements to the DataObject constructor to provide proper
support for hydration.
```php
// Default behavior. Setters and validation will be applied to the provided data.
// Equivalent to `Foo::create(['Title' => 'Bar'])`
$newFoo = Foo::create(['Title' => 'Bar'], DataObject::CREATE_OBJECT);
// Creates a "singleton" instance. The provided data will be ignored.
// Equivalent to `Foo::singleton()`
$newFoo = Foo::create(['Title' => 'Bar'], DataObject::CREATE_SINGLETON);
// Hydrate the record with data manually retrieved from the database. The provided
// data is stored directly in the DataObject without going through setters or validation.
// This was not possible prior to the the 4.7 release.
$newFoo = Foo::create(['Title' => 'Bar', 'ID' => 123], DataObject::CREATE_HYDRATED);
```
2020-11-02 04:41:15 +01:00
## Change Log
2020-11-02 03:59:16 +01:00
### API Changes
* 2020-10-02 [e21ad30](https://github.com/silverstripe/silverstripe-admin/commit/e21ad304e52c29672f38cdb0b7164f92694c3c9a) Introduce hooks to help components figure out what tab they are in. (Maxime Rainville)
* 2020-09-17 [ff18dec2e](https://github.com/silverstripe/silverstripe-framework/commit/ff18dec2e58a0e733aaff27bd5251474366c08d4) Add new behat method for interacting with toasts (#9695) (Maxime Rainville)
* 2020-08-20 [b810b7d5c](https://github.com/silverstripe/silverstripe-framework/commit/b810b7d5c9acdceda25ca915f0de6ebecce904a8) Allow for user-created objects to have values passed in the constructor (#8591) (Sam Minnée)
### Features and Enhancements
* 2020-11-02 [b3cb347](https://github.com/silverstripe/silverstripe-errorpage/commit/b3cb3479843d5942d0159850eb4c3da63c1c7592) Update translations (Maxime Rainville)
* 2020-11-02 [74e7546](https://github.com/silverstripe/silverstripe-admin/commit/74e754612902974f157674b7dd28b4419612d45c) Update translations (Maxime Rainville)
* 2020-11-02 [6ae5194](https://github.com/silverstripe/silverstripe-versioned-admin/commit/6ae51941c8b2340cfeb6d0101990fa45c552aed0) Update translations (Maxime Rainville)
* 2020-11-02 [a8d9bea44](https://github.com/silverstripe/silverstripe-framework/commit/a8d9bea442771388ae438ca43475ecafcd45218f) Update translations (Maxime Rainville)
* 2020-11-02 [30cf78d](https://github.com/silverstripe/silverstripe-login-forms/commit/30cf78d108167eb5e16dec7894b1cd71084ab01b) Update translations (Maxime Rainville)
* 2020-11-02 [96e598f](https://github.com/silverstripe/silverstripe-campaign-admin/commit/96e598f8242ca885ca2512e6c7bb618321ad821a) Update translations (Maxime Rainville)
* 2020-11-02 [b1b3a7c](https://github.com/silverstripe/silverstripe-versioned/commit/b1b3a7cdba5e090a1dc6c8ac49562b1726d6b777) Update translations (Maxime Rainville)
* 2020-11-02 [af300867](https://github.com/silverstripe/silverstripe-asset-admin/commit/af300867e8c4536b773c9a298b25f054b0d4ac54) Update translations (Maxime Rainville)
* 2020-11-02 [7b66e70c](https://github.com/silverstripe/silverstripe-siteconfig/commit/7b66e70c0079916325c3f3dd2fbe9d2ee5580b66) Update translations (Maxime Rainville)
* 2020-11-02 [e23c4861](https://github.com/silverstripe/silverstripe-cms/commit/e23c48618945bc9d510c9a7fc79197c3e1ce4c43) Update translations (Maxime Rainville)
* 2020-11-02 [565504b](https://github.com/silverstripe/silverstripe-mimevalidator/commit/565504b857adb900424f73ac3d0c03e0bad1410d) Update translations (Maxime Rainville)
* 2020-11-01 [29e08365](https://github.com/silverstripe/silverstripe-asset-admin/commit/29e08365856bd472c01d9fa1931b2742776ba640) Exclude FileLink's using a different extension hook (#1139) (Steve Boyd)
* 2020-10-29 [f40bbdc](https://github.com/silverstripe/silverstripe-admin/commit/f40bbdc353c57733067033165c49163f21ac31f7) Improved file used on table data (Steve Boyd)
* 2020-10-28 [6e77d5ead](https://github.com/silverstripe/silverstripe-framework/commit/6e77d5eada39bae6a0d310439a3a18667e1e91b2) DataObject related objects service (Steve Boyd)
* 2020-10-23 [91f831cd0](https://github.com/silverstripe/silverstripe-framework/commit/91f831cd0bfc36551d84f7c45e8652f9ea80087a) Improve scalar response handling (Garion Herman)
* 2020-10-22 [f00f64120](https://github.com/silverstripe/silverstripe-framework/commit/f00f64120d184086b394ad239a4b510b7c7db7f5) Allow setting sql_mode via config (#9721) (Bernard Hamlin)
* 2020-10-15 [b17f5fda](https://github.com/silverstripe/silverstripe-asset-admin/commit/b17f5fda42fbc740fdee01a7cdb8627c1f04a2f6) Switch to using toast instead of form alerts (#1111) (Maxime Rainville)
* 2020-10-14 [481546a](https://github.com/silverstripe/silverstripe-versioned-admin/commit/481546a7a1a1039b8b91a0125d5487c2a7ec9fd8) Extension to exclude ChangeSetItem from used on table (Steve Boyd)
* 2020-10-12 [941df19e8](https://github.com/silverstripe/silverstripe-framework/commit/941df19e88ab4ff1da02ba86d15e8ccd4b5711d5) Improve YamlReader exception message (#9731) (wernerkrauss)
* 2020-09-25 [4bf71d3](https://github.com/silverstripe/silverstripe-versioned/commit/4bf71d35cd228b4bc0461f7d5b4488155574c98f) Replace E_USER_ERROR errors with exceptions (Robbie Averill)
* 2020-09-25 [9b9e673e](https://github.com/silverstripe/silverstripe-reports/commit/9b9e673e4b925ad4adbd8464e988b951fa289e52) Replace E_USER_ERROR errors with exceptions (Robbie Averill)
* 2020-09-25 [27bd5d12e](https://github.com/silverstripe/silverstripe-framework/commit/27bd5d12e3f4001f0c80a1a333a440cd8b0ae897) Replace E_USER_ERROR errors with exceptions (Robbie Averill)
* 2020-09-25 [d17f0586](https://github.com/silverstripe/silverstripe-cms/commit/d17f058622c24f008a3a22e2946f71dc352bafaa) Replace E_USER_ERROR errors with exceptions (Robbie Averill)
* 2020-09-25 [cc4db4b](https://github.com/silverstripe/silverstripe-admin/commit/cc4db4b645a034ba596d9629f1e59fa9e1d0c2f9) Replace E_USER_ERROR errors with exceptions (Robbie Averill)
* 2020-09-23 [ba2aad5](https://github.com/silverstripe/silverstripe-admin/commit/ba2aad5feb3c06cd480699f93316cb09c2f321bc) Show icons on tabs with invalid form field values (Steve Boyd)
* 2020-09-23 [70afbc9](https://github.com/silverstripe/silverstripe-admin/commit/70afbc9e2087313f2503f23743b2daf240f6fa9d) Confirm PHP 8 support (Sam Minnee)
* 2020-09-23 [c2128b4](https://github.com/silverstripe/silverstripe-assets/commit/c2128b40fd98eec50bb03091e18fd999cd76a424) Introduce PHP 8 and prefer-lowest builds (Garion Herman)
* 2020-09-22 [1921110](https://github.com/silverstripe/silverstripe-mimevalidator/commit/1921110814d96688cc7ca4d0afbcad7609018947) Confirm support for PHP8 (Sam Minnee)
* 2020-09-22 [f267081](https://github.com/silverstripe/silverstripe-config/commit/f267081c160bec8cedd9cca60749e624b96e08c6) Confirm support for PHP8 (Sam Minnee)
* 2020-09-21 [abfb75d](https://github.com/silverstripe/silverstripe-admin/commit/abfb75dca65a5bd3c66321816847870a69130a00) Implement Toast notification in react (#1068) (Maxime Rainville)
* 2020-09-18 [7477435](https://github.com/silverstripe/silverstripe-config/commit/7477435cb671e6535000931d1043efb08f8f6637) Allow symfony 4 (Sam Minnee)
* 2020-09-18 [9247bc8b7](https://github.com/silverstripe/silverstripe-framework/commit/9247bc8b79a04493ce80f101e75eb79ae06e7588) Add Symfony 4 support alongside Symfony 3 (Sam Minnee)
* 2020-09-18 [d9f0dd1](https://github.com/silverstripe/silverstripe-admin/commit/d9f0dd193ccf34ca1928ec70d326a5f1f03f91b6) Add attention icon for tab validation errors (Sacha Judd)
* 2020-09-14 [b17eb61](https://github.com/silverstripe/silverstripe-versioned/commit/b17eb61690c3fbe8d4a896c77047d6b396fb6cb8) Extension points for isOnDraft() and isPublished(). (Mojmir Fendek)
* 2020-09-07 [24dfe0b02](https://github.com/silverstripe/silverstripe-framework/commit/24dfe0b026e04905cdae1f6eab9322a98e05abe7) Add --prefer-lowest to PHP 7.1 build (Sam Minnee)
* 2020-08-30 [b3dd27953](https://github.com/silverstripe/silverstripe-framework/commit/b3dd27953b7e863b3e2ee032966f22e2961b5abb) Allow league/csv ^9 (Sam Minnee)
* 2020-08-29 [08010d593](https://github.com/silverstripe/silverstripe-framework/commit/08010d5933a2ecce32890e92ce8b2bf8764934ac) Support namespace tokens in ClassInfo::parse_class_spec() (Garion Herman)
* 2020-08-27 [699913406](https://github.com/silverstripe/silverstripe-framework/commit/699913406be6ecc385a63039cc6d20048148f561) Added a dev view to output the current config from dev/config (#9542) (Jackson Darlow)
* 2020-08-27 [a7416f1](https://github.com/silverstripe/silverstripe-login-forms/commit/a7416f10fef93443f6d19b44715a50abab2916dc) Prevent using Page_Controller Requirements (Steve Boyd)
* 2020-08-26 [680adbd10](https://github.com/silverstripe/silverstripe-framework/commit/680adbd10b76656cc358e30e06f6b487db76f2f8) Add recipe-core to default VersionProvider module list (Garion Herman)
* 2020-08-25 [7c84171d5](https://github.com/silverstripe/silverstripe-framework/commit/7c84171d5b6ffea48ef98962b332fcc4dcfc5120) Improved task runner UI. (#9540) (Mojmir Fendek)
* 2020-08-25 [ed73b827](https://github.com/silverstripe/silverstripe-cms/commit/ed73b827356bf05133ce459ef8b9c5cb1f2f71b5) Set VersionedProvider labels for recipe-core and recipe-cms (Steve Boyd)
* 2020-08-20 [732d448](https://github.com/silverstripe/silverstripe-versioned/commit/732d448c69effaa9eedd8a8ffb15e70a6640a7f1) Show the type of save that was performed for the record instead of just showing either Saved/Published. (#279) (Andre Kiste)
* 2020-08-16 [a3b5ab5](https://github.com/silverstripe/silverstripe-versioned/commit/a3b5ab53658fe37f56d2594e47095086bb3f8501) Add test for stateless semantics of isDraft and isPublished (Sam Minnee)
* 2020-08-12 [7304acb17](https://github.com/silverstripe/silverstripe-framework/commit/7304acb17138d136f24e106b22ef3f5713aee4ec) Cache embed shortcodes (Steve Boyd)
* 2020-08-11 [e19ef240f](https://github.com/silverstripe/silverstripe-framework/commit/e19ef240f72f0b0c4dd8b4a43628f95d82a53a9d) VersionProvider now supports recipes as well as modules (Steve Boyd)
* 2020-08-05 [c2ed6a4cd](https://github.com/silverstripe/silverstripe-framework/commit/c2ed6a4cd641b0d008e5d8d9d9292f005a223187) WithMockTime callback. (Mojmir Fendek)
* 2020-07-23 [65befd0](https://github.com/silverstripe/silverstripe-versioned/commit/65befd0642042a808bc3f08353ab7d77af793eaf) Extension points for version lookup. (Mojmir Fendek)
* 2020-07-02 [0d7c5a9ec](https://github.com/silverstripe/silverstripe-framework/commit/0d7c5a9ecec641fee31c307d7daaa162b9f10f45) Add/remove callbacks on RelationList (Sam Minnee)
* 2020-06-30 [57d75c89d](https://github.com/silverstripe/silverstripe-framework/commit/57d75c89d51a98a81ddb191b2135ede814bfbe68) Added onAfterBuild (#9545) (Jackson Darlow)
* 2020-05-26 [5269e9d9](https://github.com/silverstripe/silverstripe-asset-admin/commit/5269e9d96642074faab70490e1fd55c41f7416e8) Last modified date for assets in list view table are now formatted according to browser locale (Robbie Averill)
* 2020-02-17 [2b3f986](https://github.com/silverstripe/silverstripe-login-forms/commit/2b3f98626765693be32a20f3a36aa5765cf4ae25) Make dark mode support optional (Elliot Sawyer)
* 2019-08-02 [f57d5cc80](https://github.com/silverstripe/silverstripe-framework/commit/f57d5cc807b37f59d6e849d26e8a24a86cca0a14) Test coverage for MySQL connection collation (Serge Latyntcev)
* 2019-06-14 [4d5d7a34a](https://github.com/silverstripe/silverstripe-framework/commit/4d5d7a34a15d638ba51d42b0d3ef756106d4f424) Add FilterInterface and retrofit into URLSegmentFilter (Robbie Averill)
* 2019-04-14 [91591373d](https://github.com/silverstripe/silverstripe-framework/commit/91591373d64296c3a3981d23f09b4204759ea0b1) Add exists as a method to the DataQuery API that will generate an SQL "exists" query (Guy Marriott)
* 2018-12-07 [b57dcfb](https://github.com/silverstripe/silverstripe-admin/commit/b57dcfbd6ec39b0fac828d7f95d74afd0afdfb80) Allow descriptions to be added as titles on SingleSelectField (Guy Marriott)
* 2018-10-05 [9b1350e](https://github.com/silverstripe/recipe-core/commit/9b1350ea53bb184b6b816211851824a414bdbe5b) Set default database charset to utf8mb4 (Sam Minnee)
### Bugfixes
* 2020-10-28 [15efb09](https://github.com/silverstripe/silverstripe-admin/commit/15efb092ba1d736f8cfa9a6874dae3a225833379) Hide TabNav when only one Tab is present (Maxime Rainville)
* 2020-10-23 [e89ae93ac](https://github.com/silverstripe/silverstripe-framework/commit/e89ae93ac9a236f6e1ba3a14392406980062b7de) Harden hasMethod() against invalid values (Garion Herman)
* 2020-10-21 [f9c26cef](https://github.com/silverstripe/silverstripe-cms/commit/f9c26cefa36ac4a78353c910831c120f6fa5a96e) Fix parsing error on CMSSiteTreeFilter (Maxime Rainville)
* 2020-10-20 [8a16d708](https://github.com/silverstripe/silverstripe-cms/commit/8a16d708d41c33b7c4cb02587d750e61ee51a40c) Use Live stage to fetch results during SearchFormTest (Garion Herman)
* 2020-10-20 [a452e79d](https://github.com/silverstripe/silverstripe-asset-admin/commit/a452e79d14af6c4b3474ef4faeea09c3fbf9c5c4) Escape % to work with Symhony 4 (Maxime Rainville)
* 2020-10-20 [96281e71](https://github.com/silverstripe/silverstripe-cms/commit/96281e712deb80cd004eea905ed3b066f6929e09) Escape % to work with Symhony 4 (Maxime Rainville)
* 2020-10-20 [b24dc7349](https://github.com/silverstripe/silverstripe-framework/commit/b24dc73497c9f5c91f3d0b36f75699700bbbc90c) Escape % symbole for Symphony 4 (Maxime Rainville)
* 2020-10-20 [2fcac0a](https://github.com/silverstripe/silverstripe-admin/commit/2fcac0a7ff2b8819a0518789fd7a85da0f633189) Adjust search form widths to prevent date cutoff (Steve Boyd)
* 2020-10-19 [7727d10](https://github.com/silverstripe/silverstripe-admin/commit/7727d10e46b775fcda8c7165a18a65cb974bea46) Patch Entwine to ignore missing methods in one() (Garion Herman)
* 2020-10-15 [aaf4fb4d](https://github.com/silverstripe/silverstripe-cms/commit/aaf4fb4d7aeaee0760bd3d713d12b3fbea3a0d69) Remove broken RESOURCES_DIR test (Maxime Rainville)
* 2020-10-14 [fe08b1f3](https://github.com/silverstripe/silverstripe-asset-admin/commit/fe08b1f37444211cd17315b10ae7831b6c810c6b) Button alignment tweaks (Steve Boyd)
* 2020-10-12 [73460f9e](https://github.com/silverstripe/silverstripe-cms/commit/73460f9ee0014acf0817e737197de7df899ecf3c) remove old syntax from meta tag label (brynwhyman)
* 2020-10-12 [e089b79](https://github.com/silverstripe/silverstripe-config/commit/e089b79a161450f82d90c8b09173d02e0f795a6c) Refactor Prophecy tests to PHPUnit Mock Objects (Garion Herman)
* 2020-10-12 [58ed42665](https://github.com/silverstripe/silverstripe-framework/commit/58ed426653a637eadb44f2524aed05f55b6c70ae) TinyMCEConfig image size presets handle incorrect values (Serge Latyntcev)
* 2020-10-08 [c5d676fa4](https://github.com/silverstripe/silverstripe-framework/commit/c5d676fa4e1d37fa4d940b97adb7f2ad80acdbb8) Avoid test failure on use of narrow-NBSP (#9725) (Sam Minnée)
* 2020-10-07 [635d7a7](https://github.com/silverstripe/silverstripe-assets/commit/635d7a7f1e482392d0e561d6c96dde0b8c19dbbf) Refactor Prophecy tests to PHPUnit Mock Objects (Garion Herman)
* 2020-10-06 [198b25c90](https://github.com/silverstripe/silverstripe-framework/commit/198b25c9002160596a47357fd79fff2c55fdd888) Hardcode PasswordValidator config in VersionedMemberAuthenticatorTest (Garion Herman)
* 2020-10-06 [7f6a5a8](https://github.com/silverstripe/silverstripe-admin/commit/7f6a5a8753397f8ec237fafa655809a72e9351dc) Adapt React components to Reactstrap 8 upgrade (#1128) (Steve Boyd)
* 2020-10-05 [114d9d7](https://github.com/silverstripe/silverstripe-campaign-admin/commit/114d9d70b5a2a36144aa9628b6251c0ff84c4a72) Address regression caused by reactstrap upgrade (Steve Boyd)
* 2020-10-05 [0fcda80f](https://github.com/silverstripe/silverstripe-cms/commit/0fcda80f028c036f0c8be2b2e6954b3857727b32) URL segment filter correction for CMS page search. (Mojmir Fendek)
* 2020-09-30 [8ad4c4e02](https://github.com/silverstripe/silverstripe-framework/commit/8ad4c4e02484b532724d39a75c83f36372cc74b8) Fix namespace parsing under PHP 8, tweak readability of parser (Garion Herman)
* 2020-09-29 [3bcc569](https://github.com/silverstripe/silverstripe-versioned/commit/3bcc5690543e46e0f13d5cfa966f6a4fd2bcccb5) Remove canPublish check for users to see unpublish button (fixes #300) (Loz Calver)
* 2020-09-24 [11364a6](https://github.com/silverstripe/silverstripe-admin/commit/11364a6c1c10004a8fd73e64db34c5c736a4fe99) Add missing translation strings (Steve Boyd)
* 2020-09-22 [890bd1e](https://github.com/silverstripe/silverstripe-mimevalidator/commit/890bd1e353893fceeeb9d7fbc69b5595c9568432) Remove invalid yaml duplication (Sam Minnee)
* 2020-09-21 [6035ccd](https://github.com/silverstripe/silverstripe-installer/commit/6035ccd6897d069f1314b30c71b3c824f5dcc9c9) Add redirects to `public/` for iis (#263) (Manuel Thalmann)
* 2020-09-21 [60482f9](https://github.com/silverstripe/silverstripe-admin/commit/60482f99115e83121511f88b16d35a6a761b50c6) Temporary fix to use the most up-to-date version of chromedriver (#1114) (Maxime Rainville)
* 2020-09-18 [8b3ef8f85](https://github.com/silverstripe/silverstripe-framework/commit/8b3ef8f85ae7a738fa2e8cfe217aca6274477117) recipe-testing is only needed for behat. (Sam Minnee)
* 2020-09-16 [33b0003b](https://github.com/silverstripe/silverstripe-asset-admin/commit/33b0003b8fc65d88585c902c53d9b811a14038bf) Strip html tags from file upload error responses (Steve Boyd)
* 2020-09-15 [edbe5ad0](https://github.com/silverstripe/silverstripe-cms/commit/edbe5ad069663ce10189fb7baca2a27d82920711) Remove old boostrap 3 CSS class (Maxime Rainville)
* 2020-09-15 [acce4c4ce](https://github.com/silverstripe/silverstripe-framework/commit/acce4c4ce7cf4b42cfa4d33a115825e713d4cd78) Remove old boostrap 3 CSS class (Maxime Rainville)
* 2020-09-15 [7193602](https://github.com/silverstripe/silverstripe-admin/commit/7193602a0074061fa27ab5190bc704c0ab54c2e7) Revert vertically align form description contents (Steve Boyd)
* 2020-09-11 [2143660c3](https://github.com/silverstripe/silverstripe-framework/commit/2143660c3f371883e2e870f8e953d0ccae0c568e) Add class_exists() guards to SapphireTest (Sam Minnee)
* 2020-09-10 [ac6f34846](https://github.com/silverstripe/silverstripe-framework/commit/ac6f34846e013c3067721894583399024f222376) Resolve issue where TreeMultiSelectField would error loading its value (#9604) (Damian Mooyman)
* 2020-09-10 [fc9bf93](https://github.com/silverstripe/silverstripe-versioned/commit/fc9bf93635db4e228cbdbbc3e38b36c93faee4cc) UI related changes moved from Versioned to Versioned Admin. (Mojmir Fendek)
* 2020-09-10 [fa4908a](https://github.com/silverstripe/silverstripe-versioned-admin/commit/fa4908a0fadb297db57297f1a1f0c65167125e38) UI related changes moved from Versioned to Versioned Admin. (Mojmir Fendek)
* 2020-09-10 [8bcfa5734](https://github.com/silverstripe/silverstripe-framework/commit/8bcfa57342ecd716273e55de75b50e0ad656196e) Make PasswordEncryptor::check more resistent to timing attacks (Maxime Rainville)
* 2020-09-10 [80d1bdf](https://github.com/silverstripe/silverstripe-installer/commit/80d1bdf621e3923b90ec7fa66391a0ee107e78be) Don't include the .cow folders in releases (Maxime Rainville)
* 2020-09-10 [acdebcdba](https://github.com/silverstripe/silverstripe-framework/commit/acdebcdba7a7176f10aad345770fd88e028c4b1b) Fix unit test (Maxime Rainville)
* 2020-09-10 [02827a667](https://github.com/silverstripe/silverstripe-framework/commit/02827a66700f3a1d05ffb4065d1e664da94ee49e) Problem with direct compare in SELECT statement causing incompatibility with SQL Server database (Steve Boyd)
* 2020-09-09 [27c1c7291](https://github.com/silverstripe/silverstripe-framework/commit/27c1c72912b04b8c64cd8418c6bfcb0c3e65c990) ModuleManifest::getModuleByPath fix to ensure right module is returned (#9569) (Nicolaas)
* 2020-09-08 [85252ca05](https://github.com/silverstripe/silverstripe-framework/commit/85252ca05e5e4c98f4d8670e385a2c2c3875e21f) Ensure Embed options are always array (Sam Minnee)
* 2020-09-07 [adaf793dd](https://github.com/silverstripe/silverstripe-framework/commit/adaf793ddbe41ef074862502028248ff53711b7b) Always validate Member credentials against DRAFT stage (#9671) (Maxime Rainville)
* 2020-09-07 [099ee2deb](https://github.com/silverstripe/silverstripe-framework/commit/099ee2deb7c58415732b0959473ab6b61128ecc3) Remove extraneous @depends annotations (Garion Herman)
* 2020-09-04 [f1c94e6d5](https://github.com/silverstripe/silverstripe-framework/commit/f1c94e6d54d1c660abe04951cc5e162e3dd664f7) Allow quotes in expected ReflectionExceptions within tests (Garion Herman)
* 2020-09-04 [44685eceb](https://github.com/silverstripe/silverstripe-framework/commit/44685eceba6667a45799ab1f3805bd53f3372e8a) Support PHP 8 namespace tokens in i18nTextCollector (Garion Herman)
* 2020-09-04 [bad066229](https://github.com/silverstripe/silverstripe-framework/commit/bad066229192d1c9618ce18c4bf81e5cb972040e) Disable libxml_disable_entity_loader() calls in PHP 8 (Garion Herman)
* 2020-09-03 [53b24ff](https://github.com/silverstripe/silverstripe-versioned-admin/commit/53b24ff9bee3631fb76e7b7d5fedf134b68c50a4) Prevent exception when parent does not have breadcrumbs (Steve Boyd)
* 2020-08-31 [39b8d146](https://github.com/silverstripe/silverstripe-cms/commit/39b8d14634d18ce545c34324251d70884d0855b9) Unpublish permission decoupled from publish permission. (Mojmir Fendek)
* 2020-08-30 [fb9e6e51a](https://github.com/silverstripe/silverstripe-framework/commit/fb9e6e51a69274a3885a6c65574ea467e44082ed) Switch to sminnee fork of phpunit 5.7 (Sam Minnee)
* 2020-08-30 [57bdef3b2](https://github.com/silverstripe/silverstripe-framework/commit/57bdef3b2e7cba284bfe0ff2cb798b70c995ca41) Fix test mistakenly labelling content as name arguments in data provider (Sam Minnee)
* 2020-08-30 [09fb33e65](https://github.com/silverstripe/silverstripe-framework/commit/09fb33e657607844cbb9a42c306bc4ce5bd383b7) Avoid passing non-class to get_parent_class() (Sam Minnee)
* 2020-08-30 [5cb3d07f4](https://github.com/silverstripe/silverstripe-framework/commit/5cb3d07f44d35a904db511c01dcd8fc64dfd64ec) Avoid pass-literal-by-reference warning in PHP 8 (Sam Minnee)
* 2020-08-29 [622cf8b91](https://github.com/silverstripe/silverstripe-framework/commit/622cf8b914b1ca35ba379ecd55179632bd824b6c) Drop parameter names in Injector instantiation to preserve behaviour in PHP 8 (Sam Minnee)
* 2020-08-29 [e0f379748](https://github.com/silverstripe/silverstripe-framework/commit/e0f3797489584a08e6c290e61462a16359958f2b) Remove deprecated & non-functional default argument config (Sam Minnee)
* 2020-08-26 [37b8da3](https://github.com/silverstripe/silverstripe-admin/commit/37b8da3693af3fcbede43a8f1c8b989317a4c52a) Fix ModelAdmin slug flex when getManagedModels() is overridden. (Sam Minnee)
* 2020-08-25 [c5a96a2a](https://github.com/silverstripe/silverstripe-cms/commit/c5a96a2a876689d51a662677885b72c249fc2086) Flush embed shortcode provider cache on SiteTree write (Steve Boyd)
* 2020-08-21 [7377d094c](https://github.com/silverstripe/silverstripe-framework/commit/7377d094c046e8b9e0f352c41353b0193ddffc93) Include missing security page titles when CMS not installed (fixes #9648) (Loz Calver)
* 2020-08-20 [abd0f3fbf](https://github.com/silverstripe/silverstripe-framework/commit/abd0f3fbf3c47068f800b51f775c2c7064675ef0) Fix DataList->column mutating underlying DataQuery (Mason Dechaineux)
* 2020-08-18 [afc460c](https://github.com/silverstripe/silverstripe-versioned-admin/commit/afc460c8e7a225197bc19a82ca7591853089b299) Reorder model tabs (Steve Boyd)
* 2020-08-16 [6175786](https://github.com/silverstripe/silverstripe-versioned/commit/6175786029f2713889f6e665a4115b30fc38c645) Decouple test setup. (Sam Minnee)
* 2020-08-14 [d2312ac](https://github.com/silverstripe/silverstripe-campaign-admin/commit/d2312ac94ab83f2278d7e3ff360480deb7ce338c) Show Untitled when blank title (Steve Boyd)
* 2020-08-13 [624edbe](https://github.com/silverstripe/silverstripe-versioned/commit/624edbe0ba6a194231337fbc70b10411485d2556) Consistent timestamp fix for versions during publish recursive. (#292) (Mojmir Fendek)
* 2020-08-13 [754b4058](https://github.com/silverstripe/silverstripe-asset-admin/commit/754b4058c86e4a55c0dcd8aa3e6d1776fafc3177) Top margin adjustment for file link insert message (Steve Boyd)
* 2020-08-10 [4c509c1](https://github.com/silverstripe/silverstripe-assets/commit/4c509c14a49487ad21a7b97ca085aebaa71777fc) ListContents no longer called recursively (#415) (Adrian Humphreys)
* 2020-08-07 [4b5d2c3cc](https://github.com/silverstripe/silverstripe-framework/commit/4b5d2c3cc292a690b5de9c5dec6ac9afe52abe69) Fix GroupedDropdownFieldTest::testReadonlyValue (#9637) (Maxime Rainville)
* 2020-08-06 [e31565cb7](https://github.com/silverstripe/silverstripe-framework/commit/e31565cb71cb5c764c19e093dbd8dac472157beb) Fix GroupedDropdownFieldTest::testReadonlyValue (Maxime Rainville)
* 2020-08-06 [896c0e438](https://github.com/silverstripe/silverstripe-framework/commit/896c0e4388c7ee959f82268de654eeb960329644) Use proper ellipsis character in the various summary method. (Maxime Rainville)
* 2020-08-06 [31fa2624](https://github.com/silverstripe/silverstripe-cms/commit/31fa262475fcfbfedcdbea0bbe292b0fe319c0ec) Honour URL suffix on URL Segment field (Maxime Rainville)
* 2020-08-06 [0ed40e9b0](https://github.com/silverstripe/silverstripe-framework/commit/0ed40e9b0effc54fc56075683f7b8c128ca48d78) only use HTTPS link on the default controller template (Maxime Rainville)
* 2020-07-28 [eee32b6e](https://github.com/silverstripe/silverstripe-asset-admin/commit/eee32b6ea6fdf512b928580a5f89a4fdb4bc4bd2) Make the file upload progressbar smooth (Maxime Rainville)
* 2020-07-19 [9a06d33](https://github.com/silverstripe/silverstripe-campaign-admin/commit/9a06d33a547533976f239e197545fa5cef8a88ff) Add links to userhelp (Steve Boyd)
* 2020-07-14 [f13c928b1](https://github.com/silverstripe/silverstripe-framework/commit/f13c928b14f0ded74db91f3d421095a696e7333e) Fix _images pathing (Aaron Carlino)
* 2020-07-14 [0d2a9da0d](https://github.com/silverstripe/silverstripe-framework/commit/0d2a9da0dd0b444025df9af4b51270d64310de11) Fix file icon URL (Aaron Carlino)
* 2020-07-08 [b39f0ba](https://github.com/silverstripe/silverstripe-admin/commit/b39f0ba8f472b05532ccc9f67d86a29b30401b4f) Decouple ModelAdmin URL slug from class. (Sam Minnee)
* 2020-07-06 [c32cba5](https://github.com/silverstripe/silverstripe-versioned/commit/c32cba50eb17a2ee69379a37eaaf6423cd91d746) Fix semantics of isPublished(), isArchived(), isOnDraft() for objects without draft/published stages (Sam Minnee)
* 2020-07-03 [3bf89b2d1](https://github.com/silverstripe/silverstripe-framework/commit/3bf89b2d13bf882803f5f5409284c76b41166c6c) Try Catch for embeded media (#9424) (rdigitalg)
* 2020-07-02 [75f1936](https://github.com/silverstripe/silverstripe-login-forms/commit/75f19367d59056dada584f42142c3903249864cf) Localise login screen (#61) (Maxime Rainville)
* 2020-06-29 [d609c02](https://github.com/silverstripe/recipe-core/commit/d609c02d78309dbc376e4edcfc0580eae8a6ae3f) Revert "Disable uneeded File ID Helper on new project" (#59) (Maxime Rainville)
* 2020-06-16 [f67766b](https://github.com/silverstripe/silverstripe-admin/commit/f67766bb512910c78751c0b15f637858493064e3) Ensure graphql URL is inserted before admin (Sam Minnee)
* 2020-06-12 [2e0e04f70](https://github.com/silverstripe/silverstripe-framework/commit/2e0e04f70105ccabc174b58cf022ca6ac22fd0a3) fix deprecation notices (Andrew Aitken-Fincham)
* 2020-05-27 [27231bf](https://github.com/silverstripe/silverstripe-installer/commit/27231bf315ca5f592ac79e59ca84325d21923a76) Treat login-forms as a core module (Maxime Rainville)
* 2020-05-01 [0e89d48](https://github.com/silverstripe/silverstripe-admin/commit/0e89d48f281c58ac048b040f9c9db454bf60393d) Fix URL anchors not selecting tabs (bergice)
* 2020-03-16 [5e2c9db](https://github.com/silverstripe/silverstripe-login-forms/commit/5e2c9db13913aca51e149fbfc088d343e8588155) Use `.silverstripe-cms-logo` in place of `svg` to target logo (Garion Herman)
* 2020-02-18 [eca0e24](https://github.com/silverstripe/silverstripe-config/commit/eca0e24efec2c14fb805b63e855772c98a16627f) Drop uppercase S in Composer requirements (Garion Herman)
* 2020-02-18 [671bb6e](https://github.com/silverstripe/silverstripe-config/commit/671bb6e2322800dc590776dce1f2fcefe990419a) Remove composer extra composer key (Maxime Rainville)
* 2019-08-26 [01d3b4fd9](https://github.com/silverstripe/silverstripe-framework/commit/01d3b4fd96cb9e6e5b2fa52a7de6067d90326dc4) Set many-many-through joinRecord on newly added records. (Sam Minnee)
* 2019-04-26 [3575070b9](https://github.com/silverstripe/silverstripe-framework/commit/3575070b9d44472555606a4fbabfb5d011b69c29) Removing selected column detail only if having is empty (MySQL "feature") (Guy Marriott)
* 2019-04-17 [f9fc4f664](https://github.com/silverstripe/silverstripe-framework/commit/f9fc4f66415cc477a1f560237ca5965277c5a8d7) Allow for BC for DB adapters that return an actual boolean when selecting boolean literals in SQL (Guy Marriott)
* 2019-04-16 [ef0af7ae9](https://github.com/silverstripe/silverstripe-framework/commit/ef0af7ae9c129e8e12e9c3660d3d52114e9b7cf3) Exists statements can't remove GROUP BY if there's a HAVING clause as it might rely on an aggregate (Guy Marriott)
* 2019-03-29 [da65083](https://github.com/silverstripe/silverstripe-admin/commit/da65083957d10ee0a0c9681a6764f3d126f2432e) Minor improvement to SingleSelectField story (Maxime Rainville)
* 2019-03-08 [bca0f28b6](https://github.com/silverstripe/silverstripe-framework/commit/bca0f28b62c624c3450c35ea98a4f7fc87e0b1fe) Make template parser error on mismatched brackets (fixes #8845) (Loz Calver)
* 2019-03-08 [bfc3b4b46](https://github.com/silverstripe/silverstripe-framework/commit/bfc3b4b468f2a625470a0e13f080aa7d31da7027) Stop empty comments breaking the template parser (fixes #8742) (Loz Calver)
### Documentation
* 2020-10-12 [79a03b2b0](https://github.com/silverstripe/silverstripe-framework/commit/79a03b2b0532839970c0cfa6026279c74bf28108) Add upgrade note about Flysystem dependency shift (Garion Herman)
* 2020-10-09 [1837c1983](https://github.com/silverstripe/silverstripe-framework/commit/1837c19833760e926a6daddc1616430d92e1dec2) Add note about creating provisional changelogs following minor releases (Garion Herman)
* 2020-10-09 [d8b725dc8](https://github.com/silverstripe/silverstripe-framework/commit/d8b725dc8016500afb8ea5ff85b6483104d2994e) Add provisional 4.7.0 changelog [ci skip] (Garion Herman)
* 2020-10-08 [9a1959607](https://github.com/silverstripe/silverstripe-framework/commit/9a1959607f5fbf54f83cc4699ca300ecbb2df160) RFC-9687 Commit Prefixes conventions (Serge Latyntcev)
* 2020-10-04 [c2d8d2790](https://github.com/silverstripe/silverstripe-framework/commit/c2d8d2790f5eebcade53beea81b92bcdfa7531cf) Document partial template caching aggregates recommendation (Serge Latyntcev)
* 2020-09-17 [074623017](https://github.com/silverstripe/silverstripe-framework/commit/074623017260c0d0a25bd244a03c677c4d91688b) Add process for releasing individual module patches (#9626) (Garion Herman)
* 2020-09-12 [13725d2f9](https://github.com/silverstripe/silverstripe-framework/commit/13725d2f9228d8793e03eb2eb5d837d4b4becf6f) HistoryViewer: explain "magic names" (#9670) (cloph)
* 2020-09-10 [2c1cb7915](https://github.com/silverstripe/silverstripe-framework/commit/2c1cb79156f13e003a28c6bd9a4786567ece3515) Example of partial cache expiry setting. (Mojmir Fendek)
* 2020-09-10 [a5c1a86dc](https://github.com/silverstripe/silverstripe-framework/commit/a5c1a86dcbcc9b6614c35ab6695301fe31d40c34) Clarify the security pre-announcement mailing list usage (Serge Latyntcev)
* 2020-09-10 [d9c0b079d](https://github.com/silverstripe/silverstripe-framework/commit/d9c0b079d1f396d979fc712fa85881c4cbc26902) Fix Partial Template Cache documentation header (Serge Latyntcev)
* 2020-09-10 [2753f823e](https://github.com/silverstripe/silverstripe-framework/commit/2753f823ee01f9819d97eece839c2452ef124802) Added a tip to docs describing how to set a cookie for less than a day (#9552) (Jackson Darlow)
* 2020-09-09 [c072f7343](https://github.com/silverstripe/silverstripe-framework/commit/c072f7343a68c490aec4f36f3ab4816020bae04f) Add triage resources, document stale PR definition (#9660) (Garion Herman)
* 2020-08-26 [d76bd7d](https://github.com/silverstripe/silverstripe-installer/commit/d76bd7d66e0ef224e6e6fcdf7b9a3e8f716a813b) more information in changelog template (brynwhyman)
* 2020-08-20 [f8b4570cb](https://github.com/silverstripe/silverstripe-framework/commit/f8b4570cb127b4a3175c9d5a1358ceadce310147) MFA authentication (#9536) (Ingo Schommer)
* 2020-08-13 [fb5bec58a](https://github.com/silverstripe/silverstripe-framework/commit/fb5bec58a5285af8f490d9167016dfa9e55d6352) Drop broken syntax from Overview header in 4.6.1 changelog (Garion Herman)
* 2020-08-05 [9f94c739c](https://github.com/silverstripe/silverstripe-framework/commit/9f94c739c10cc1c6a423acb852794e69ac8fc879) Correct the example for getters/setters (Maxime Rainville)
* 2020-07-29 [4a45338c6](https://github.com/silverstripe/silverstripe-framework/commit/4a45338c6ae99ab59da38d4372f8961b1f8dd680) Per-project issue tracking shortcut (#9554) (Ingo Schommer)
* 2020-07-29 [d19cc1e99](https://github.com/silverstripe/silverstripe-framework/commit/d19cc1e99179db624d96342279fabdf1d99ac2e2) Tracking releases (Ingo Schommer)
* 2020-07-29 [b6169a87c](https://github.com/silverstripe/silverstripe-framework/commit/b6169a87c29af84e45422df252e972ddf8cdd37e) HTTP header in server requirements (Ingo Schommer)
* 2020-07-23 [5fb7ef0bc](https://github.com/silverstripe/silverstripe-framework/commit/5fb7ef0bcf5f155fae7e20561e13970032d432a6) Remove links to common problems (Aaron Carlino)
* 2020-07-21 [b96133651](https://github.com/silverstripe/silverstripe-framework/commit/b96133651b9dfb702464d722394b7cec5b751cbe) PHP 7.4 support (brynwhyman)
* 2020-07-21 [8f1167b45](https://github.com/silverstripe/silverstripe-framework/commit/8f1167b4539c97f34ec55e3634a0153bcbc44eb1) add a 4.6.0 known regression (#9603) (Serge Latyntsev)
* 2020-07-07 [ec58dad05](https://github.com/silverstripe/silverstripe-framework/commit/ec58dad051d8ac1c24bf68df29eb36cb68b8227b) add 3.7.4 changelog to `4` (brynwhyman)
* 2020-07-03 [92f4f1fa1](https://github.com/silverstripe/silverstripe-framework/commit/92f4f1fa15a1efe567dfe77b25aa09b64d9331c3) Update PHP support info (Patrick Nelson)
* 2020-07-01 [6446b50c4](https://github.com/silverstripe/silverstripe-framework/commit/6446b50c4a676eae6fe9209bea567eb82d0cba74) Add Cheddam to the core committers (Robbie Averill)
* 2020-06-30 [87c041b92](https://github.com/silverstripe/silverstripe-framework/commit/87c041b92d6848c16e9c046248c1f13a578281f5) Add extra information on how to customise a file HTTP response (Maxime Rainville)
* 2020-06-29 [993f1fd75](https://github.com/silverstripe/silverstripe-framework/commit/993f1fd75444f81756a5de2f31b90ab43e79f4db) Add details about the recommended community support options (Guy Marriott)
* 2020-06-29 [4782e8e](https://github.com/silverstripe/silverstripe-mimevalidator/commit/4782e8e0728a32ea7fa63f1400051c511987b72e) Detail that mimevalidator is now a part of core (#40) (Serge Latyntsev)
* 2020-06-03 [5fe5833fb](https://github.com/silverstripe/silverstripe-framework/commit/5fe5833fb2f5231b366cc3f461c27d4dc5b7c9e2) MFA authentication (Ingo Schommer)
* 2020-06-02 [a2bdd1ca8](https://github.com/silverstripe/silverstripe-framework/commit/a2bdd1ca82ce07b321b90c937702fb5edad31d6d) fix broken link in changelog (brynwhyman)
* 2020-05-28 [4303917ac](https://github.com/silverstripe/silverstripe-framework/commit/4303917ac55ae1a8272e268f392733ea33ab2919) Form::loadDataFrom constants in docblock (Christopher Darling)
* 2020-05-28 [44776a0e3](https://github.com/silverstripe/silverstripe-framework/commit/44776a0e3e713361537a90471c8cdc24e7cddba4) Add file status icons to change log (#9522) (Steve Boyd)
* 2020-05-27 [273f70d](https://github.com/silverstripe/silverstripe-login-forms/commit/273f70df8526ab9b4fd9075e7df80d54caddfb96) Clean up login-forms README (Maxime Rainville)
* 2020-05-27 [0f5c5d14c](https://github.com/silverstripe/silverstripe-framework/commit/0f5c5d14c2f327ec94c3400bbb05d716eeced883) Show beta changelogs on doc site (#9523) (Maxime Rainville)
* 2020-05-21 [e632ee3e5](https://github.com/silverstripe/silverstripe-framework/commit/e632ee3e5210abc11d4fda056987bb9b991a6c86) Update Partial Template Cache documentation (Serge Latyntcev)
* 2020-05-11 [04a45a7](https://github.com/silverstripe/silverstripe-mimevalidator/commit/04a45a771a6bc23a4cfa1b5b27d0cfcd2cc11e37) Move configration info to core documentation (Maxime Rainville)
* 2019-10-07 [4ee710276](https://github.com/silverstripe/silverstripe-framework/commit/4ee7102761bdb2e32f867de527ae4f305def7a45) Update breadcrumb template in theme rather than app. (Maxime Rainville)
### Dependencies
* 2020-10-08 [a7aa355](https://github.com/silverstripe/silverstripe-assets/commit/a7aa3557301f67a4205cf63bbdeaf35d77d731f4) Add explicit dependency on league/flysystem (Garion Herman)
* 2020-10-08 [256bd5355](https://github.com/silverstripe/silverstripe-framework/commit/256bd53557f737fcb47e4871239451f84ff27d69) Remove unused league/flysystem requirement (Garion Herman)
<!--- Changes above this line will be automatically regenerated -->