Version 4 supported


Notable changes

Fix #7971 introduces a subtle change of behaviour to how Config settings are prioritised. In SilverStripe 4 there was a change where Extension objects took the highest importance when determining Config values; this was deemed to be unexpected and unintuitive as well as making it cumbersome and difficult for developers to override module defaults defined in Extensions. This change reverts behaviour to that of SilverStripe 3 where Extension instances are of lowest importance and are used only to set a default value. If you rely on your Extension or module providing an overriding config value, please move this to yaml.

Change Log

API Changes

  • 2018-06-20 9237636 Deprecate Embeddable and EmbedResource, shift into silverstripe/framework (#795) (Robbie Averill)

Features and Enhancements

  • 2018-07-10 158262c Update PopoverField styles to match DSM designs (Robbie Averill)
  • 2018-07-09 ca7d48f Add button class names and toggle callback to PopoverField component (Robbie Averill)
  • 2018-06-19 7d90a14 Shift Embeddable and EmbedResource from asset-admin, lazy load Embed to allow injected dependencies (#8194) (Robbie Averill)
  • 2018-06-18 fbfd454 Ensure test DB is flushed on either DDL or transaction-disabled tests (Damian Mooyman)
  • 2018-06-15 8181dc4 Ensure extensions are told the internal item request class for gridfield detail form (#8164) (Damian Mooyman)
  • 2018-04-18 3561466 Provide default IIS rewriting rules with recipe (Damian Mooyman)


  • 2018-07-18 e415bcb tests on unset session data (Ingo Schommer)
  • 2018-07-18 93b0884 Lazy session state (fixes #8267) (Ingo Schommer)
  • 2018-07-14 a0e0bed Use Injector to create PasswordValidators (Daniel Hensby)
  • 2018-07-14 8703839 updateValidatePassword calls need to be masked from backtraces (Daniel Hensby)
  • 2018-07-12 e80c7e7 Restore button now has warning colour and correct icon (Robbie Averill)
  • 2018-07-12 d122995 Duplicate config values for cascade_duplicates no longer duplicate their duplicates (Robbie Averill)
  • 2018-07-10 45e1f5e Making subsite extension illegal to ensure tests pass with Subsites (Guy Marriott)
  • 2018-07-05 399ebd0 If theres a max-age set remove no-cache and no-store (Daniel Hensby)
  • 2018-07-05 92f5ef3 Allow setNoCache(false) to remove no-cache directive (Daniel Hensby)
  • 2018-07-05 18b7dc2 Add must-revalidate to default state so its common on all our core states (Daniel Hensby)
  • 2018-07-05 9e829c1 Allow cache control changes to affect default state (Daniel Hensby)
  • 2018-06-26 560fe98 remove personal information from password reset confirmation screen (Daniel Hensby)
  • 2018-06-24 b93e94c FormField::Link now throws a LogicException if no form is set yet (Robbie Averill)
  • 2018-06-21 27b60ae Transaction depth should error if not implemented by child classes (Daniel Hensby)
  • 2018-06-19 725212a Allow dispatcher in Embed to be configured with injector (#8192) (Robbie Averill)
  • 2018-06-18 3f80e2d Don't reload form session data using FormField::setSubmittedValue… (#8184) (Maxime Rainville)
  • 2018-06-18 e4ef83b Default cache state should be no-cache (Daniel Hensby)
  • 2018-06-18 a116b5d FIx manual resetDBSchema() calls breaking the database (Damian Mooyman)
  • 2018-06-18 f2c2ded Ensure that build includes extra classes (Damian Mooyman)
  • 2018-06-13 932eb2b Fix CMS components failing to register on other CMS sections (#2182) (Damian Mooyman)
  • 2018-06-11 555b168 Prevent custom item handler from being overridden (Damian Mooyman)
  • 2018-05-21 bf5b578 Adding a min-width to flexbox-area-grow that allows flex blocks to shrink below their content width (Guy)
  • 2018-03-29 4acec33 Fixed bug in config merging priorities so that config values set by extensions are now least important instead of most important (Daniel Hensby)