BaseX 8.1, 28.03.2015

 - efficient Finger Tree algorithm for arrays
 - prof:variables() outputs list of currently bound variables.
 - new higher-order functions: hof:scan-left, hof:take-while
 - Web Module offers convenience functions for building web apps
 - RESTXQ: %input annotation; input-specific content-type parameters
 - better support for Tomcat deployments
 - RESTPATH: specify server path for queries and command scripts
 - IGNORECERT: ignore untrusted certificates when connecting to servers
 - bind input strings to the query context with -I

BaseX 8.0.3, 19.03.2015

Various bug fixes (all minor).

BaseX 8.0.2, 09.03.2015

- Better support for concurrent read and write operations

- Speed up wildcard queries without wildcards
- XQUnit: compare error codes as QNames
- Fix: process each single flwor clause when removing variables
- Fix: consider xml:space='preserve' during serialization

- Fix: consider case when pinning databases

- Fix: digest authentication, correct quoting

BaseX 8.0.1, 22.02.2015

- Faster execution of single, index-based results
- Iterative evaluation of steps with multiple predicates

- WebDAV locking
- Archive Module
- Adaptive serialization of arrays and maps
- Digest Authentication
- Save command-line history

BaseX 8.0, 09.02.2015

- Support for XQuery 3.1 is nearly complete
- We switched to a new default serialization ("adaptive")
- Index rewritings have been improved, more precise cost estimations
- MIXUPDATES option: update items and return results at the same time
- New modules: Array and User Module
- New annotations: %basex:inline, %basex:lazy
- 13 of our modules were updated and extended

- DBA: Database Administration in the Browser
- AUTHMETHOD option: choose between Basic and Digest authentication
- RESTXQ: regular expressions in paths, support for quality factors

- Faster document index (storing paths to all XML documents)
- Replace documents in-place whenever possible
- Updatable index structures now take much less space
- AUTOOPTIMIZE option: optimize after each update

- Revised user management; users are stored as XML
- Digest authentication, Salted SHA256
- Clients in various languages updated

- Better code completions

BaseX 7.9, 27.06.2014

- Unit testing has been improved a lot. All test functions will now be
evaluated separately; this way, updates can be performed within test.
- with the new TEST command, all test modules in a specified directory
can be evaluated.
- tests can be invoked from within the GUI editor and project view.
- on command-line, the -t flag can be used for the same purpose.

- Custom HTTP methods can be defined via %rest:method
- Error handling has been improved and aligned with try/catch

- The "run" operation allows execution of server-side command scripts

- parsing options added to db:create, db:add and db:replace

BaseX 7.8.2, 04.04.2014

- Ctrl-U: efficiently sort large texts
- Ctrl-H, Ctrl-J: context-sensitive behavior
- tweaked code automatisms

- faster processing of documents with namespaces

- Database Module: alter, copy, create-backup, drop-backup, restore
- Admin Module: new merge option, existing functions revised
- XQuery Module: new evaluation options (memory, timeout, permissions)

- always show full stack trace (enforce it with INLINELIMIT=0)
- show stack trace again
- better error messages
- improved function inlining
- prevent pre-evaluation of try/catch
- Easter egg: partial sums (little Gauss) calculation

- WebDAV: improved password processing
- Client/Server: reduce waiting time if password is wrong

BaseX 7.8.1, 26.02.2014

* Editor, Ctrl-H: filter by opened file type and selected text
* XML Parsing: support for TAR & TGZ

* XQuery errors: function not found -> suggest similar one
* Commands: improved parsing (allow more whitespaces)
* French translation (thanks to Maud Ingarao!)

* XQuery Update: nested transform expressions
* XQuery: always return boolean when calling doc-available()
* XQuery: disallow impossible casts before removing variables
* Binary Module: iterative evaluation of bin:octets()
* Commands, REPO INSTALL: install packages in same directory
* CSV/JSON: serialization of underscores

BaseX 7.8, 12.02.2014

- new project view for organizing and opening project files
- realtime search of project files and contents
- various new editor shortcuts and code completions, code formatting

- improved performance of delete and insert operations
- faster in-place value updates
- 'update': convenience keyword for transform expressions

- XQuery functions are now inlined and further optimized
- closure optimizations, better static typing
- improved detection and rewriting of tail calls
- faster processing of (sub)sequences

- JSON and CSV Module: updated and enhanced conversion rules
- Unit Module: enhanced test report output
- Map Module: map:serialize added; syntax aligned with latest spec.
- File Module: aligned with changes in EXPath spec.
- XQuery Module: xquery:evaluate (operates on opened databases)
- Full-Text Module: ft:contains added, ft:search: more options
- EXPath Binary Module added
- Java modules: support for locking annotations

- New command-line flag: -R only parse query
- Russian translation added (thanks to Oleksandr Shpak!)
- Spanish translation added (thanks to Carlos Marcos!)

BaseX 7.7.2, 07.10.2013

- CSV Module and serialization added
- JSON serializer updated (more to follow)
- update checks in modify clause fixed
- parsing of new map syntax fixed (ignoring spaces)
- tail call handling in built-in higher order functions fixed

- Russian translation added (thanks to Oleksandr Shpak, Max Shamaev)
- command-line arguments starting with '<' are interpreted as XQuery

- bug fixed in updatable index structure

BaseX 7.7.1, 16.09.2013

- new map syntax: { 'key' : 'value' }
- tail call optimization for dynamic functions
- optimize fn:subsequence() calls and sequence casts
- db:optimize(): original options are preserved

- return non-breakable spaces as  

- avoid OutOfMemory exception when building large databases

BaseX 7.7, 07.08.2013

- Support for XQuery 3.0 is now finalized!
- the Unit Module allows standardized testing of XQuery applications
- the Streaming Module speeds up operations on large files
- the Inspection Module provides reflection and documentation features
- we have added support for XQuery collations
- we have extended the Database, Archive, File and other Modules

- WebDAV has been enriched with locking features (sponsored feature!)
- RESTXQ has been improved and extended

- improved database locking, including the use of custom lock strings
- database names have got more flexible
- we have new options for simplifying the creation of large databases

BaseX 7.6, 05.02.2013

- updates on different databases can now be executed in parallel and
won't lock your read-only queries anymore:

- when errors are raised, the full stack trace is now returned
- the EXPath Geo Module, Fetch Module and HTML Module have been added:
- the Validation, XSLT, Database and Profiling Module have been updated

- error messages are now clickable and linked with the text editor
- trace/profiling output is redirected to the info view in realtime

BaseX 7.5, 21.12.2012

- bulk updates are now much faster than before
- insert and replace operations take much less memory
- databases can now be created via XQuery and db:create()

- a fast and flexible search/replace panel has been added
- error highlighting has been extended to XML files
- the editor was improved for editing arbitrary text files

- the code has been aligned with latest changes in the specs
- HTML5 support has been updated

- new modules have been added: Request, Session, Sessions
- logging has been revised and extended to HTTP requests
- SSL support added, switched to Jetty 8
- all operation modes have been unified and simplified
- RESTXQ elements added to simplify forwarding and redirects

- improved stability of concurrent read/write operations
- the INSPECT command performs database sanity checks
- EXECUTE triggers the execution of command scripts

BaseX 7.3, 18.06.2012

- Many new internal XQuery Modules have been added, and existing
ones have been revised to ensure long-term stability of your future
XQuery applications: http://docs.basex.org/wiki/Module_Library
- A new powerful Command API is provided to specify BaseX commands
and scripts as XML: http://docs.basex.org/wiki/Commands#Basics
- The full-text fuzzy index was extended to also support wildcard
queries: http://docs.basex.org/wiki/Full-Text
- The XQuery 3.0 simple map operator gives you a compact syntax to
process items of sequences: http://docs.basex.org/wiki/XQuery_3.0
- BaseX as Web Application can now start its own server instance:
- All command-line options will now be executed in the given order:
- Charles Foster's latest XQJ Driver supports XQuery 3.0 and the
Update and Full Text extensions: http://xqj.net/basex/

BaseX 7.2.1, 27.04.2012

- Our value indexes now support string-based range queries:
A big thank you to our sponsors who made this possible!
- Our new XQJ API is based on Charles Foster's implementation.
It fully utilizes the client/server architecture:
- Import of XQuery modules has been simplified.
- Simplified invocation of Java code from XQuery
- Full support for the XQuery 3.0 Regular Expressions syntax:
- Updating functions can now return values:
- Unified handling of document and database URIs:
- Pinning of opened database replaced by filesystem locking:
- REST, RESTXQ, WebDav: concurrency issues fixed

BaseX 7.2, 24.03.2012

- new restxq api, introduced by adam retter
- rest: failed query now returns line/column position
- client apis: commands added for binding context items,
and checking if a query performsn updates
- performance: limit number of displayed hits - fixed editor highlighting
- introduce timeout for rest and other apis
- verify permissions when using local sessions
- improved logging of error output
- new options for configuring proxy servers
- advanced TagSoup options added for importing HTML files
- ignore TIMEOUT for admin operations
- hof:top-k-with(..) and hof:top-k-by(..) return the top k items in a sequence
- repo:list() now returns nodes - support for annotations
- new signatures for util:mem() and util:time()
- updated EQName syntax: Q{uri}local-name
- XQuery 3.0 annotations
- optimized ft:tokens()
- fixed export of pure RAW data
- permissions changed for REPO DELETE, REPO INSTALL and REPOLIST
- remove 'path' argument from CREATE INDEX and DROP INDEX
- pin opened databases to avoid concurrent updates with multiple BaseX instances
- added readline support for Linux-/Unix-based terminals
- saving history
- HTML5 support added
- new 'separator' option to specify the character to be used as item separator
- fixed WAR/web archive issues
- limit query exceptions to file names for non-admin users
- fixed Path Summary staying out-of-date issue

BaseX 7.1.1, 19.02.2012

- new "Package" dialog: list, install and delete XQuery Packages
- "New/Add" dialog: increased usability, automatic detection of input
formats; "RAW" format added to simplify import of raw files
- "Export" dialog enhanced to support other methods like JSON, and
to specify additional serialization parameters
- new option -L: add trailing newline after query result
- new option -C: execute commands from batch script
- new "option" parameter: set options before executing request
- Indonesian Stemmer (thanks Andria Arisal!)
- faster read/write access to byte arrays

BaseX 7.1, 07.02.2012

- improved document management: hierarchical view of databases resource
- easier index creation/removal and database optimization
- JSON/JsonML parser added
- editor: updated and reopened files are reverted from disk
- automatic XML conversion of popular content types (JSON/JsonML, CSV, HTML)
- new index module for directly accessing database index structures
- new repository module to manage EXPath packages via XQuery
- db:list-details() returns information on the database resources
- db:content-type() retrieves the content-type of a specific database resource
- ft:tokens() returns full-text tokens stored in the index
- ft:tokenize() tokenizes a given input string
- util:path() returns the path to the (currently executed) query file
- util:time() prints the time needed to evaluate a given expression
- util:mem() prints the allocated memory for evaluating a given expression
- expanded QNames, computed namespace constructors
- multiple query files and -c/-i/-q flags can now be specified
- ID/Pre mapping, incremental indexing of value index structures
- document index fix: correct replacement of existing documents
- document index: faster updates
- ADDRAW: add new resources as raw files if not filtered by CREATEFILTLER
- MAXLEN: max. length of strings to be added to the index structures
- MAXCATS: max. number of distinct values stored in statistics
- UPDINDEX: turn on incremental index updates for value indexes
- improved BINDINGS option
- improved log output if query iterator is used
- new ActionScript API (thanks to Manfred Knobloch!)
- a project specific "newline" parameter specifies the type of newline to be used
- modified KILL command accepts IP:port combination to specify target
- Bahasa Indonesian: thanks to Andria Arisal!
- Mongolian: thanks to Tuguldur Jamiyansharav!

BaseX 7.0.2, 11.11.2011

- Stemming support for Japanese text corpora
(thanks to Toshio HIRAI!)
- Updated start scripts (thanks to Ralf Jung!)
- System property "org.basex.path" added to specify
project's home directory (thanks to malamut2!)
- Numerous minor XQuery 3.0 enhancements and fixes
- Fix for db:optimize() calls (thanks to Martin Hillert!)
- Fix to retain newly introduced namespaces
(thanks to Laurent Chevalier!)
- Default privileges for new users set to "none"
(thanks to Pascal Heus!)
- query base URI for evaluated queries is now $HTTPPATH
(thanks to Florent Georges!)

BaseX 7.0.1, 23.10.2011

- Windows installer was updated to support latest features
- ZIP file was updated (initial config & directories added)
- Short directory names are chosen if config file resides in app.dir.
- Start scripts have been improved
- much faster execution of count() when applied to opened databases
- Flag -c connects to an existing database server
- Flag -s specifies a port for stopping the HTTP server (Jetty)
- Flag -S starts the HTTP server as a service
- running write operations will be completed before server is stopped
- Ruby, Python, PHP, Java: clients updated

BaseX 7.0, 14.10.2011

- Native and tightly integrated REST implementation replaces JAXRX
- WebDAV provides a file system like access to BaseX databases
- Parsing and serializing JSON documents
- SQL module builds a JDBC bridge to access relational databases
- EXPath Cryptographic Module for encryption and XML Signatures
- Full text engine tokenizes Japanese texts (thx to Toshio Hirai!)
- db:retrieve() and db:store() handle raw data
- util:uuid() to create random universally unique identifier
- db:content-type() retrieves the content type of a resource
- db:exists() checks if the specified database or resource exists
- db:is-raw(), db:is-xml() check existence and type of a resource
- db:list(), db:open() uses two separate arguments to specify
database and resource path
- further modifications: db:add(),
- BaseX HTTP Server activates the REST and WebDAV services
- ITER command returns all results in one go and the client
handles the iterative execution
- FLUSH command to write all database buffers to disk
- STORE command to store raw data in a database
- RETRIEVE command to get raw data from the database
- modified ADD command
- SERVERHOST: to specify a server
- KEEPALIVE: optional timeout to close inactive client sessions
- AUTOFLUSH database buffers
- QUERYPATH: path to executed query

BaseX 6.7.1, 27.07.2011

- New database functions for adding, deleting, renaming,
replacing documents and optimizing databases:
- XSLT transformations via Java or Saxon:
- All XQuery 3.0 functions are now supported:
- Tail-call optimizations to speed up recursive functions
- Use ADDARCHIVES to parse files within archives
- Use SKIPCORRUPT to skip non-well-formed files when
creating a database: http://docs.basex.org/wiki/Options
- Max. level depth limit (256) removed
- The document index is now incrementally updated
- "Manage Database" dialog now supports operations on
multiple databases and the command-line glob syntax:
- Drag and drop operations introduced for opening new files
and copying file paths
- Delay clients that repeatedly fail to login
- All remaining plain-text password operations now use
MD5 to send and log passwords

BaseX 6.7, 30.06.2011

Main Features:
[ADD] Native EXPath Packaging system support:
[ADD] Client/server event notification:
[ADD] Persistent document index added to speed up
access to large collections
[ADD] New database and full-text functions:
[ADD] Event function added to fire events
[MOD] Index optimizations, better cost estimations
[ADD] Glob syntax added to database commands:
[ADD] New commands added: REPLACE, RENAME,
[MOD] BACKUP optimized, renamed to CREATE BACKUP

BaseX 6.6.2, 08.05.2011

[ADD] JAX-RX API now supports basic user authentication:
[ADD] The COPY command creates identical database copies:
[ADD] The OPTIMIZE ALL command minimizes all database structures:
[ADD] map expressions and functions added:
[MOD] File module aligned with latest EXPath specification:
[MOD] Speedup of full-text queries with keyword lists.
Example: $x contains text { 'a', 'b', 'c', ...}
[MOD] XQuery Update optimizations for replacing nodes;
tree-aware updates.
[MOD] XQuery optimizations to avoid materialization of
[ADD] Multiple editor tabs added
[ADD] Database management: copy databases
[ADD] Internal XML parser: HTML entities added
[FIX] Glob syntax: support for multiple file suffixes

BaseX 6.6.1, 31.03.2011

[ADD] index rewritings added for .../text()[. = ..] syntax
[ADD] optimizations of mixed axis path expressions, e.g.: //x/name()
[MOD] index rewritings on collections fixed and generalized
[MOD] faster evaluation of filters with pos. predicates, e.g.: $x[5]
[FIX] fixed relocation of let clauses in GFLWOR expressions
[FIX] trace function returned wrong original results
[FIX] variables in catch clauses were discarded
[FIX] HOF optimizations and fixes
[FIX] language option (for Japanese, German, etc. interface) fixed

BaseX 6.6, 23.03.2011

[ADD] XQuery 3.0: Full support of Higher Order Functions 
(dynamic function invocation, inlined functions, etc.)
[ADD] XQuery: Support of the EXPath ZIP Module
[MOD] XQuery Update: numerous speedups, memory consumption reduced
[ADD] Commands: COPY command added to clone existing databases
[ADD] CSV/Test importers revised, ENCODING option added
[ADD] XQuery utility functions added
util:format(), util:crc32(), util:md5(), util:sha1(), etc.
[ADD] XQuery 3.0: context item and decimal-format declarations
[FIX] Storage and update features revised, bugs fixed

BaseX 6.5.1, 15.02.2011

[ADD] Storage: Parser options added for built in importers (CSV, TXT)
[ADD] APIs: JAX-RX: Flag added to start server in background (-s)
[ADD] APIs: Command-line flag added to pass on extern variables (-b)
[ADD] XQuery Functions: util:integer-from-base(), util:integer-to-base(),
util:sha1(), util:md5()
[ADD] Commands: DROP DB ... ON [...]: delete users from specific databases
[ADD] Packaging: W3 catalog resolver file (w3-catalog.xml) added
[MOD] APIs: JAX-RX: all REST props and calls renamed to JAX-RX/jaxrx
[MOD] XQuery Full Text: improved rewritings for index-based evaluation
[MOD] XQuery Full Text: better scoring results for index-based queries
[MOD] Core: Locking: multiple readers/single writer concept revised
[MOD] Windows Packaging: "Start Server" icon starts JAX-RX as well

BaseX 6.5, 17.01.2011

[ADD] Commands: LIST extended by optional database [path] argument
[ADD] JAX-RX: full database path is now used to list documents within
a database. Use "query" parameter to show document contents
[ADD] JAX-RX: bind external variables to query and run parameter
[ADD] Windows Installer: creates startmenu entries,
sets file associations and path environment entries
[ADD] GUI/Create: support different input formats: XML, HTML, Text, ..
[MOD] Commands: Allow hierarchical paths in OPEN command
[MOD] APIs: UTF-8 encoding added to Java binding
[FIX] Storage: text decompression synchronized
[FIX] XQuery: context choice in filter predicates
[MOD] JavaDoc: package.html files added and updated

BaseX 6.3.4, 14.12.2010

[ADD] Storage: Text Compression added, shrinking text nodes up to 50%
[MOD] XQuery/collection(): Caching of doc paths to speedup repeated lookups
[MOD] XQuery/collection(): Lazy instantiation of document nodes
[MOD] Storage: Limit of number of attributes per element raised to 2^31
[MOD] Commands: INFO TABLE renamed to INFO STORAGE

BaseX 6.3.3, 06.12.2010

[ADD] XQuery: "ft" module added to extended XQuery Full Text with
useful features
[ADD] Command: DROP BACKUP added to drop database backups
[ADD] GUI: new menu items "Add documents" and "Delete documents"
[ADD] GUI: new menu item "Manage" to backup/restore/rename/drop databases
[MOD] XQuery: "db" and "file" modules updated
[MOD] System.getProperty("user.dir") added as optional home directory
[MOD] GUI: menu structure updated
[FIX] Command: ADD modified to support the addition of larger documents
[FIX] GUI: highlighting of search terms in text editors
[FIX] GUI: file chooser supports new extensions: *.xql, *.xquery, ...
[FIX] Server: StressTest

BaseX 6.3.2, 17.11.2010

[ADD] Storage: compression of text files (activation: SET COMPRESS 1) 
[ADD] XQuery: new "db:" and "util:" functions, replacing "basex:"
[ADD] XQuery: initial implementation of the EXPath http module
[ADD] XQuery Editor: line/column information, support for surrogates
[MOD] XQJ: dummy properties added: user, password, serverName, port
[FIX] Storage: wildcard index did not find last word
[FIX] Dynamic integration of optimal CatalogResolver implementation
[FIX] XQuery bugs (count() on open collection, external functions, ..)

BaseX 6.3.1, 09.11.2010

[ADD] Fulltext: Built-in support for Snowball, Wordnet, and Lucene stemmers
[ADD] Fulltext: Internal German stemmer added
[ADD] REST: support for hierarchical collections added; details will follow
[ADD] REST/GET: bind parameter added to enable external variable bindings
[ADD] REST/POST: <variable/> and <output/> elements added
[ADD] APIs: bind(), execute() & info() added to query iterator
[ADD] APIs: add() implemented for adding documents to existing databases
[MOD] REST: start was simplified; just launch basex-api/etc/basexrest(.bat)
[MOD] JAX-RX: latest version was moved to our BaseX SVN repository
[MOD] Warning: start class BaseXWin was renamed to BaseXGUI
[MOD] Work on the upcoming Windows installer
[FIX] XQuery: improved handling of extended kind tests in sequence types
[FIX] XQuery 3.0 functions (e.g. format-integer())
[FIX] XQuery Update, Namespaces, collections
[FIX] GUI: realtime filtering

BaseX 6.3, 09.11.2010

[ADD] XQuery: hierarchical path support for collection() function
[ADD] Storage/GUI: CatalogResolver added for caching DTDs
[ADD] Server: -c flag added to allow initial database commands
[ADD] Dutch translation of BaseX added; thanks to Huib Verweij!
[MOD] Storage: Speedup of parallel disk access (less synchronized flags)
[MOD] XQuery: iterative evaluation of more location paths
[MOD] XQuery Full Text: updated to reflect fix of W3 Bug #9448
[FIX] XQuery: numerous namespace issues resolved
[FIX] XQuery: allow dynamic evaluation of basex:index()
[FIX] GUI: PlotView and TreeView fixes

BaseX 6.2.9, 04.10.2010

[ADD] Server output added: "Server stopping"/"Server stopped"   
[ADD] Command input via STDIN enabled
[MOD] Minor visual tweaks
[MOD] XQuery Speedups (Math -> StrictMath, FLWOR rewritings)
[FIX] Command parsing (e.g. CREATE DB TEST# ..)
[FIX] TreeView fixes

BaseX 6.2.8, 28.09.2010

[ADD] Query Editor: Close Button
[ADD] Query Editor: Save/Save As Button
[ADD] Command Line: parsing of standard input
[FIX] XQuery: file module completed
[FIX] XQuery: basex:db() returns all database documents
[FIX] GUI: Command input suggestions
[FIX] GUI: interactive update operations
[MOD] XQuery: opt. on positional predicates
[MOD] XQuery: opt. duplicate detection

BaseX 6.27, 06.09.2010

[NEW] Setup: Installer, Windows Service
[ADD] GUI: TreeView
[ADD] API: query iterator
[ADD] XQuery: GROUP BY, incl. ORDER clauses
[ADD] XQuery: line/col information for runtime errors
[ADD] XQuery: file library
[ADD] XQuery: test for XQuery 1.1 features
[MOD] XQuery: doc() now creates main-memory instances
[MOD] XQuery: improved constant folding
[MOD] XQuery: Value/Item types separated
[MOD] XQuery: Numerous query optimizations
[FIX] Storage: OutOfBounds exception, caused by TableOutput
[FIX] XQuery: namespaces, in-scope-prefixes(), ...
[FIX] XQuery: lang(), translate(), analyze-string(), ...