MNT Update 4.8.0-beta1 changelog

This commit is contained in:
Steve Boyd 2021-05-03 11:12:23 +12:00
parent 59c126a098
commit 0810779606

View File

@ -2,6 +2,11 @@
## Overview
- [Support for silverstripe/graphql v4](#graphql-v4)
- [Improvements to the login form template and signed in period](#default-period)
- [Other new features](#features)
- [Bugfixes](#bugfixes)
A full list of module versions included in CMS Recipe 4.8.0-beta1 is provided below. We recommend referencing recipes in your dependencies, rather than individual modules, to simplify version tracking. See [Recipes](/getting_started/).
<details>
@ -9,38 +14,94 @@ A full list of module versions included in CMS Recipe 4.8.0-beta1 is provided be
| Module | Version |
| ------ | ------- |
| silverstripe/admin | x.x.x |
| silverstripe/asset-admin | x.x.x |
| silverstripe/assets | x.x.x |
| silverstripe/campaign-admin | x.x.x |
| silverstripe/cms | x.x.x |
| silverstripe/config | x.x.x |
| silverstripe/errorpage | x.x.x |
| silverstripe/framework | x.x.x |
| silverstripe/graphql | x.x.x |
| silverstripe/login-forms | x.x.x |
| silverstripe/mimevalidator | x.x.x |
| silverstripe/reports | x.x.x |
| silverstripe/siteconfig | x.x.x |
| silverstripe/versioned | x.x.x |
| silverstripe/versioned-admin | x.x.x |
| silverstripe/admin | 1.8.0-beta1 |
| silverstripe/asset-admin | 1.8.0-beta1 |
| silverstripe/assets | 1.8.0-beta1 |
| silverstripe/campaign-admin | 1.8.0-beta1 |
| silverstripe/cms | 1.8.0-beta1 |
| silverstripe/config | 1.1.0 |
| silverstripe/errorpage | 1.8.0-beta1 |
| silverstripe/framework | 4.8.0-beta1 |
| silverstripe/graphql | 3.5.0 |
| silverstripe/login-forms | 4.4.1 |
| silverstripe/mimevalidator | 2.1.1 |
| silverstripe/reports | 4.8.0-beta1 |
| silverstripe/siteconfig | 4.8.0-beta1 |
| silverstripe/versioned | 1.8.0-beta1 |
| silverstripe/versioned-admin | 1.8.0-beta1 |
</details>
### Support for silverstripe/graphql v4 {#graphql-v4}
The [silverstripe/graphql](http://github.com/silverstripe/silverstripe-graphql/issues) module is used
to drive various parts of the CMS UI, as well as building your own GraphQL APIs in Silverstripe projects.
The CMS currently ships with `silverstripe/graphql:^3`, which is stable but slow for larger schemas.
The module was rewritten from scratch with performance in mind
(see [goals](https://github.com/silverstripe/silverstripe-framework/issues/8824) and [pull request](https://github.com/silverstripe/silverstripe-graphql/pulls)).
The resulting`silverstripe/graphql:^4` release is currently in a alpha stage.
We encourage everyone to get started, read our new [GraphQL documentation](https://docs.silverstripe.org/en/4/developer_guides/graphql/),
provide [feedback](https://github.com/silverstripe/silverstripe-graphql/issues) and help us stabilise the module.
In order to facilitate the new module release, most GraphQL helper classes to drive the CMS UI
have been marked as deprecated, and moved to `GraphQL/_legacy` folders within core modules.
The GraphQL schema under `admin/graphql` has been altered slightly to enable forwards compability,
with lower-camelcase field names, and a different filter argument structure.
In the unlikely case that you are relying on those classes or queries directly,
consider upgrading to `silverstripe/graphql:^4`.
Your own GraphQL schemas outside of `admin/graphql` should not be affected by the changes
if you choose to stay on `silverstripe/graphql:^3` for the time being.
We are planning to require the use of `silverstripe/graphql:^4` in a future CMS 4.x release.
If your project uses `silverstripe/recipe-cms`, please note that it is still locked to use `silverstripe/graphql:^3`. If you'd like to now use `silverstripe/graphql:^4` then you'll need remove `silverstripe/recipe-cms` from your root composer.json, and instead copy the contents of the composer.json in silverstripe/recipe-cms to your root composer.json and change `silverstripe/graphql` to `^4`.
#### GraphQL 3 code moved to _legacy folder
You will notice that many of the core modules now have a `_legacy` directory in their root.
This is a temporary fix that we have applied to satisfy the competing interests of semver and
PSR-4 autoloading.
Because the semver contract precludes changing the fully-qualified names of any classes,
we need to keep GraphQL 3 code untouched. But GraphQL 4 code often contains classes of similar
or identical names, e.g. "ReadFilesResolver", or something to that effect. Further, this
backward compatibility creates a common demand for the canonical namespace "GraphQL.", e.g.
`SilverStripe\AssetAdmin\GraphQL`. It didn't seem appropriate to put _old_ code in the "GraphQL"
space, and _new_ code in a less obvious place, like `SilverStripe\AssetAdmin\GraphQL4`.
A simple fix would have been to stuff all the GraphQL 3 code into `code/GraphQL/_legacy` and use `classmap` to shim the PSR-4 autoloader, but this is [no longer supported](https://blog.packagist.com/composer-2-0-is-now-available/#3-backwards-compatibility-breaks) in Composer 2.0.
Thus, we ended up with the "least bad" solution, which was to create a parallel path resolution
for GraphQL 3 code in the `_legacy` folder, alongside `code/` / `src/`.
It is likely that in the future, we will mandate the use of GraphQL 4 in Silverstripe CMS, and
remove this shim. We expect this happen within just one minor release, making `_legacy/` a very short-lived workaround.
## Enhancements
### Improvements to the login form template and signed in period {#default-period}
Weve reduced the time period of the “Keep me signed in” checkbox on the login form from
90 to 30 days. This time period is now also visible in the label. This value is configurable via `SilverStripe\Security\RememberLoginHash::token_expiry_days`.
This change has been made to more accurately reflect what action will be taken, and give the reader more information to make a safe and secure decision. In addition to this, the [login-forms](https://addons.silverstripe.org/add-ons/silverstripe/login-forms) module includes a new popover intended to provide further information to support using the "Keep me signed in" option safely.
## Other new features {#features}
* [Added a `chunkedFetch()` method to `DataList`](/Developer_Guides/Model/Lists#chunkedFetch) to avoid loading large result sets in memory all at once.
## 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/installer (4.7.3 -&gt; 4.8.0-beta1)
* 2021-04-30 [4e1fa26](https://github.com/silverstripe/silverstripe-installer/commit/4e1fa260eee067442e9510eecbf033205febe563) Add login-forms to changelog template (Steve Boyd)
* silverstripe/framework (4.7.3 -&gt; 4.8.0-beta1)
* 2021-04-15 [d9e8dd42c](https://github.com/silverstripe/silverstripe-framework/commit/d9e8dd42c08b7639caec471acfca1ce6e7672044) Update keep me signed in tooltip text (Steve Boyd)
* 2021-04-06 [1c7fd287a](https://github.com/silverstripe/silverstripe-framework/commit/1c7fd287a1e638992bb7f90abc504e225bb5351c) Reduce default token period from 90 to 30 days (Steve Boyd)
* 2021-02-11 [095a3b70f](https://github.com/silverstripe/silverstripe-framework/commit/095a3b70f86d8c72da4be8e2f49c8a740a7e6e3d) Provide helpers for isDev/isTest/isLive in templates (Loz Calver)