We switched from node-sass to dart-sass (as node-sass has been deprecated). Dart-sass is a lot stricter than node-sass
was so some files (that were already syntactically broken!) may now fail to compile.
Siteprofiles are now compiled whenever a webdesign/webfeature points at them, whether or not a site is actually referencing
them. The apply rules are still limited to actually activated siteprofiles, but this change may cause more siteprofiles to
be compiled than you expect (eg a unused but usable siteprofile might now trigger a duplicate definition error)
We're working towards eliminating HareScript code in the Publisher. Use wh listcompilables to check for files that will
not be supported in the future.
EmbeddedObjectBase has been removed (already unusable since 4.31)
Support for serverside anchors generated by the WebDesign (GatherSuggestedAnchors etc) has been removed. This also
removes WebDesign::GetContentNav and the 'anchor' and 'link' elements from GetOutline.
GetRichTextAttribute(Id) and SetRichTextAttribute(Id) are no longer exported by formcomponents/richtext.whlib (and this
was a private library so it was never officially supported). Use ->contexts->formcomponentapi
fs_objects template/profile and their accompanying require and requireinsubfolders fields have been removed. This will
in practice also disables word conversion for sites that are not using <webdesign> (as they will fail with a 'missing profile').
WebHare now uses npm v7, which uses a new format for lockfiles. As long as your project lockfiles haven't been upgraded
to v7 (accidentally or by using npm install/wh fixmodules) npm v7 might generate lockfiles which confuse WebHare. This
mostly affects CI and is generally fixed by having npm update your package-lock files.
ExcelTextParser has been removed (deprecated since 4.23). Switch to ParseCSVRows. separator and encoding map directly
to the ParseCSVRosw options, adapative_utf8 maps to the acceptutf8 option and you should set theastokenarray option to TRUE
for full compatibility with what ExcelTextParser did (but not setting it might give you a nicer result to work with)
Support for clientfails monitoring (Host <hostname> is generating excessive client-side failures) has been removed. Too
many false alarms, barely or no reports of it helping anyone. The other failure monitoring (server-side failures, excessive
processing time) is still in place.
You can no longer create entities by invoking WRDType::UpdateEntity with a '0' entityid (this was never intended to work
and can cause confusing error messages)
For safety reasons (unexpected side effects) tasks will not run on a restored WebHare installation (if WEBHARE_ISRESTORED is set)
unless the task is marked with allowifrestore="true". You no longer need to opt-out tasks using unlessenvironset="WEBHARE_ISRESTORED"
We're working on simplifying the access rule configuration screens and for this we first want to remove options that we
think you shouldn't be using access rules for, such as caching, errorpath, authscript or alternative hosting sources/scripts
pointing towards modules. Putting this configuration in the access tables puts it outside validation and versioning. Instead,
you should point towards a module-defined ruleset and put the actual rules inside the modules or siteprofiles.
Removes support for <addressvalidation xmlns="http://www.webhare.net/xmlns/wrd/siteprofile" /> in siteprofiles. You can
probably just us <formintegration addressvalidation...>
Tollium <iframe>'s CallJavascript has been deprecated. This API uses eval under the hood and is not compatible with a
proper Content-Security-Policy
Further wrdauth cleanups:
system:usermgmt will no longer use WRDAUTH_DOMAINS. All existing WRDAUTH_DOMAINS will be deleted during update.
GetPasswordFieldTag is no longer available on the wrdauth plugin. Just use ->wrdschema->accountpasswordtag
system:usermgmt will no longer use WRDAUTH_DOMAINS. All existing WRDAUTH_DOMAINS will be deleted during update.
WRDEntity::VerifyPassword no longer works for fields of type 'free' to prevent accidental use of unencrypted passwords
GetWRDAuthDomain is no longer available on the wrdauth plugin. All its data should be available on the plugin or the wrdschema.
Content type member names starting with whfs are now forbidden.
Drops support for standalone templates files (filetype 22)
Sites that have no webdesign will now be considered to have the publisher:nodesign webdesign. This may break old code
that relied on being able to publish SHTML files as-is and have them worked (ie, in cases where the SHTML file had no
<webdesign> applied, often because the site itself had no webdesign selected at all). If you run into this you should
either:
move the SHTML file out of the database and into a module and define access rules to make it available
make a separate filetype to include the code and move the code into a RunDynamicPage call
WHFSInstance::WriteInstanceToFSObject and the Publisher object properties dialog will no longer write back the values of
disabled fields (just like WRDEntities already did not)
The socialite facebook sdk javascript wrapper has been removed
Things that are nice to know
Forms can now set a formbacklink which will be enabled as the previous button on the first page.
QueueMailInWork has a new option sensitive. The contents of these mails are not visible to supervisors in the dashboard
and sysops are warned when opening these mails.
WebHare password reset mails are now marked as sensitive.
<allowfiletype> and <allowfoldertype> now support a newonlytemplate attribute which only allows to select templates
of that type when creating new files/folders, and not just empty instances)
Form <richtext> can now be created dynamically and have their richvalue dynamically updated
The siteprofile compiler now compiles all site profiles that are available to the system, not depending on whether a site
actually refers to them. This prevents us from having to recompile all site profiles whenever a site is added, removed or
has a webdesign/feature change.
We now support NPM lockfile V2 and have removed the internal npm v6.
Assetpacks now support a compatibility="modern" option which drops all support for IE11 and older browser versions (more
than 3 versions behind) which results in smaller and better to debug packages.
You can set WEBHARE_DEBUG=wrq when starting a process on the command line to enable debugging output for all WebBrowser objects
You can now use <baseproperties striprtdextension="true" /> to disable .rtd extensions on new RTD files. Be sure
to also update any <folderindex> settings to remove .rtd extensions.
The form mailresults handler now supports delaying the sent mail to a scheduled time (advanced only).
You can now simulate bounces/delivery/complaints (just like the AWS SES feedback would) in the mailqueue dialog
List columnselectmode allows individual cells to be selected
WRDAuth and Webhare logins now have more concrete expiry settings. By default:
Logins last at most one day. If you choose to 'remember me', the login last at mosts 30 days.
Logins expire at 4AM CET (ie they are 'rounded down' to this time)
We now support language country codes (eg en-GB) in <sitelanguage>. The webdesign exposes this countrycode in a new
languagecountry property and pageconfig variable.
The meta robot tag is now rendered by the webdesign and can be controlled through the robotstag property on the WebDesign.
The consilio robots plugin will forward its settings to this webdesign property and this plugin will be deprecated.
Things you should do
Set compatibility="modern" on any assetpack that doesn't need to support IE11 or "old" MS Edge anymore.