Serenity 6.2.1 - 6.2.4 Release Notes (2022-10-11)
Fixed Null Reference Exception in DefaultSqlConnections Causing Sergen Failure (6.2.1)
In version 6.2.0, we introduced logging support for SQL methods. However, because logging via dependency injection is not available in the Sergen environment, and due to a missing null check in DefaultSqlConnections, the Sergen command was failing.
Recreated package-lock.json
File During VSIX Template Build (6.2.2, StartSharp)
During development, we usually reference the corelib
directory in our package.json
as follows:
{
"name": "startsharp.web",
"dependencies": {
"@serenity-is/corelib": "file:../../Serenity/src/Serenity.Scripts/corelib",
This allows us to test changes in the corelib
without the need to publish an npm package, directly from the Serenity
submodule in StartSharp
.
When packaging the VSIX template, an automated process updated this dependency to the latest version of corelib on npm:
{
"name": "startsharp.web",
"dependencies": {
"@serenity-is/corelib": "6.1.4",
However, this change did not affect the package-lock.json
, which still contained the folder reference.
We distribute both package.json
and package-lock.json
together in the StartSharp template. Therefore, when someone created a new project from our template, the package-lock.json
still contained a folder reference.
This caused npm to create a symlink to a non-existent folder instead of downloading corelib from npm.
To address this, our automated process now deletes the package-lock.json
and node_modules
folder after updating the package.json
and running the npm install
command. As a result, users will receive a valid package-lock.json
file.
If you created a project using the StartSharp template between versions 6.1.0 and 6.2.1, you may need to update the Serenity packages, delete the package-lock.json
and node_modules
, and then run npm install
.
Fixed Restoration of Modular Typings for Package References in node_modules
Folders (6.2.2, StartSharp)
In the Serenity.Pro.Coder
file, we had a target to restore modular typings from package or project references to folders under node_modules
. This restoration occurred instantly in Visual Studio or during the build process.
This feature was implemented to provide a workaround for shipping modular typing files with NuGet packages that TypeScript can use. TypeScript might not locate these files under users' NuGet folders, which can vary between users or PCs.
Due to an expression mistake in the MSBuild target file, the typings for the Serenity.Pro.Extensions package were being restored to an invalid folder like node_modules\@serenity-is\pro.extensions;@serenity-is\pro.extensions
, instead of node_modules\@serenity-is\pro.extensions
as intended.
If your project had a reference to Serenity.Pro.Coder between versions 6.1.0 and 6.2.1, you may need to update the Serenity packages, delete the node_modules
folder, and then run npm install
.
Relocated RestoreTypings to Serenity.Net.Web
We previously had a RestoreTypings
target in both Serenity.Pro.Coder
and common-features
. This target restored index.d.ts
files from NuGet package and project references to the typings
folder for namespaced ones, and to the node_modules\@serenity-is
folders for modular ones. This restoration was achieved without needing to run sergen restore
.
However, this feature only worked for projects that referenced the Serenity.Pro.Coder
package. To expand its usability to other projects, we have moved this MSBuild target to the Serenity.Net.Web
package.
After updating Serenity.Net.Web
, you may notice that even if you clear the typings
folder with Visual Studio open, the directories and files will be restored instantly.
If you wish to disable this feature for any reason, add the following line to your project file:
<PropertyGroup>
<RestoreTypings>false</RestoreTypings>
</PropertyGroup>
Fixed the Issue Causing Grids to Not Display Data in Serene After Updating to 6.1.x (6.2.4)
The DataGrid.defaultRowHeight
and DataGrid.defaultHeaderHeight
values were originally undefined by default. These values are passed to the SlickGrid instance via the getSlickOptions()
method of the DataGrid
class.
With the rewrite of SlickGrid as SleekGrid
and the optional dependency of jQuery
, a problem emerged in Serene when updating Serenity
packages to the latest versions.
In this update, we replaced jQuery.extend
with Object.assign
to apply default SlickGrid options to the options you provide to the SlickGrid constructor. These methods are mostly compatible, but a subtle yet important difference exists between them.
While jQuery.extend
skips properties with undefined
values, Object.assign
does not. Consequently, the undefined default row height passed from getSlickOptions
to the grid was overwriting the SlickGrid default value.
It's worth noting that this issue did not reproduce in StartSharp because the premium theme set DataGrid.defaultRowHeight
to compensate for the larger default font size.