eXist-db 5.3.0 Released
June 26, 2021
Submitted by Juri Leino.
We are very happy to announce that eXist-db 5.3.0 has been released.
It's been quite a while since the last release. A lot has been happening behind the scenes, and we are happy to share the outcome with you. 5.3.0 is a minor release, and should be 100% API compatible with 5.0.0 as such.
- tl;dr https://github.com/eXist-db/exist/releases/tag/eXist-5.3.0
XQuery 3.1 compatibility
- Improved handling of the XQuery type system - [#3363](https://github.com/exist-db/exist/pull/3363), [#3266](https://github.com/exist-db/exist/pull/3266), [#3728](https://github.com/exist-db/exist/pull/3728), [#3791](https://github.com/exist-db/exist/pull/3791)
- Function types are now allowed as values in context item expressions
- Duplicate functions will reliably throw a useful error
- Root context is shielded from user defined functions
- Several fixes for positional predicates
- When errors are thrown in XQuery most of them will now have useful location information
- Fixed parser issues to allow empty function body, and allow
||in attribute and element content
- Allow other seed types in fn:random-number-generator (like dates) - [#3072](https://github.com/eXist-db/exist/pull/3072)
- Fixed the cardinality of fn:random-number-generator#1 - [#3249](https://github.com/eXist-db/exist/pull/3249)
fn:collectionspec compliant - [#3349](https://github.com/eXist-db/exist/pull/3349)
- Allow sequences for batch deletions in
array:remove- [#3328](https://github.com/eXist-db/exist/pull/3228), [#3692](https://github.com/eXist-db/exist/pull/3692)
New functions added
Other important additions
- Module handling and caching was improved significantly
controller.xqlare now recognized in apps that use eXist's URL Rewriting facility, to conform with the community convention of
.xqfor main modules and
.xqmfor library modules.
- The implementation of maps was changed to gain performance
- Allow Bearer tokens and other schemes than "Basic" in Authentication header
- Allow HTTP verb PATCH
- Custom base64 handling code was replaced with apache.commons code and a new function
util:evalto preserve the original error information
- In Lucene, you can now use different analyzers for indexing and querying
All bundled applications have their frontend dependencies updated.
- The index view in monex now lists new fields and facets - [#124](https://github.com/eXist-db/monex/pull/124).
- The shared resources and markdown packages are no longer bundled with eXist-db. If your application depends on those you can still declare dependencies on them in your package metadata and download them from the package repository.
The default eXist-db configuration settings are not production ready. Make sure to consult our article on best practices before making your eXist-db instance publicly available.
The new existdb-config project implements these "best practices" and can easily be used to harden your eXist-db(s) from version 5.1.1 till 5.3.0.
A lot of effort was poured into getting eXist-db's source code licensed properly. It is now consistently LGPL 2.1, with exceptions where code from other projects is used with their permission.
See the change log entry for the full list of features and changes