5.6 - 26 Oct 2024
PLEASE NOTE! YOU NEED TO UPGRADE TO 4.35 BEFORE UPGRADING TO 5.xx
Incompatibilities and deprecations
- GenerateHTMLEmail has been removed as part of the MSWord doc deprecation
- Embedded assets are being concentrated under a single /.wh/ea/ path
- the image cache has moved to /.wh/ea/uc/
- assetpacks are hosted under /.wh/ea/ap/
- old paths will work and changes will take effect on republish. but you may need to update any log processing or external CDN configuration.
- The Publisher form API has been refactored to move towards custom elements and synchronous
getValue()
calls. The file and image upload elements have been rewritten and old CSS may no longer work correctly - The image resize methods "stretch", "stretch-x", "stretch-y", "crop" and "cropcanvas" have been deprecated.
- JavaScript based image conversion (ie when generated webp or avif) will only take the highest of hblur/vblur as the blur to use. you may need to reduce the blur setting a bit to get the same result as before when exporting to the modern image formats
- Publisher versioning based on required 'four eyes' and separate versioning apps is no longer supported.
Things that are nice to know
- TypeScript has been updated to 5.6. This adds iterator helpers
- Iterator helpers are polyfilled to support Safari 17 and 18
- allows
$
in harescript identifiers - the image cache can now generate
.avif
or.webp
files. this requires you to either explicitly setformat := "image/avif"
(or webp) in your method.- you can alo set the registry key
platform.cache.defaultimageformat
toimage/avif
(or any other format). this is still experimental and may trigger a format change in an unexpected/unwanted location. it currently only affects HareScript code, not eg.toResized
in TypeSCript. - you cannot use any of the deprecated image resize methods together with the new image formats.
- you can alo set the registry key
- assetpack JS/CSS files are now compressed with brotli too (
.br
files)..gz
versions are still generated too - forms file/image edit now support multiple files/images being uploaded
- fixes a serious memory leak in HareScript where a stream wasn't deallocated if MakeBlobFromStream was never invoked on it
- a
<datetime type=date storeutc=true>
field will ignore storeutc and always return UTC midnight dates. changing its type to datetime with storeutc=true will modify its value (basically: The localtzvalue / value in the UI is kept constant when storeutc or type is changed) - JSON/RPC exceptions hide stacktraces unless
etr
is enabled - Support custom form fields only defining a witty
- Forms check acceptable email addresses immediately, not on submit
- added
--module
support to wh apply - adds wh:fixtags to help fixing deprecated tags
- inapplicable tasks will update their scheduled time if their planned time is in the past
- you can now add
comment=""
properties to siteprofile members. this will allow easier future transfer to YAML (and we may show them in the UI for sysops/developers at some point) - form 'thank you' pages can be set to redirect users after a delay
- Support for PostgreSQL 16 has been added. New WebHare installs will now use PostgreSQL 16 for database creation
- NodeJS in the has been updated from 20.x to 22.x
- WHFS files now have a
lastContentUpdate
property to mark the last time their content was updated (which is more useful than lastmodified) - The TS test framework adds
waitToggled
to explicitly test that a condition has been changed by an action - Webbrowser uploads are now handled through sessions, and sessions are stored in the database. This allows both JS and TS code to access each other's sessions, even from backend code. (formerly only HareScript code running inside the webserver could access sessions)
Things you should do
- If you relied on using Word documents for outgoing mail, you should use an alternative approach
TypeScript/JavaScript highlights
- TypeScript WRD APIs are further completed. Queries and entity modifications are implemented fully natively now. Metadata changes still rely on HareScript but will not run in a separate VM/transaction anymore
- Tollium applications can now be run in a WASM hosted process by setting
engine=wasm
to their<application>
. This eliminates IPC and/or separate processes for ImportJS and CallJS (but the application in general will still be a bit slower, so this mostly benefits applications that use a lot of JS code or for which the initial startup time of ImportJS is too high)
To get the full list of changes between 5.5 and 5.6 yourself, use: git log $(git merge-base master origin/release/5.5)..$(git merge-base master origin/release/5.6)