VERSION 8.3 (September 23, 2015) ---------------------------------------

 SELECTIVE INDEXING
 - restrict value indexing to given elements and attributes
 - support extended to updatable and main-memory databases

 VALIDATION
 - support for RelaxNG validation (XML and compact syntax)
 - optional XML Schema 1.1 support
 - new function for creating validation reports

 XQUERY MODULES
 - Strings Module: Levenshtein, Soundex, Cologne Phonetic
 - updates in the Archive, Database, Admin and Process modules

 DBA
 - File panel: upload and download files

 BUG FIXES
 - automatic database optimization if node id turns negative
 - XQuery optimizations, performance tweaks, WebDAV issues

VERSION 8.2.3 (July 14, 2015) ------------------------------------------

 Bug fixes (DBA, admin:write-log; namespaces)

VERSION 8.2.2 (July 6, 2015) -------------------------------------------

 Various bug fixes (all minor)

VERSION 8.2.1 (June 9, 2015) -------------------------------------------

 DBA
 - code highlighting (thanks, James Ball!)
 - new panel for up- and downloading files
 - queries and files are now stored in a temporary directory

 GENERAL
 - various bug fixes

VERSION 8.2 (May 21, 2015) ---------------------------------------------

 XQUERY
 - much faster sequence modification via finger trees
 - improved compliance with XQuery 3.1

 DBA
 - open, save and delete queries
 - better Tomcat support

 STORAGE
 - updatable index structures: reduced disk space consumption

 XQUERY FUNCTIONS
 - Standard Module: fn:json-to-xml, fn:xml-to-json
 - Web Module: web:encode-url, web:decode-url
 - File Module: file:is-absolute, file:resolve-path
 - Admin Module: admin:delete-logs
 - Database Module: db:output-cache

 BUG FIXES
 - locking, full-text requests, stemming

 REMOVED FEATURES
 - event handling (will be replaced by database triggers)

VERSION 8.1.1 (April 16, 2015) -----------------------------------------

 Various bug fixes (all minor)

VERSION 8.1 (March 28, 2015) -------------------------------------------

 XQUERY
 - 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 APPLICATIONS
 - Web Module offers convenience functions for building web apps
 - RESTXQ: %input annotation; input-specific content-type parameters

 OPTIONS
 - RESTPATH: specify server path for queries and command scripts
 - IGNORECERT: ignore untrusted certificates when connecting to servers

 COMMAND-LINE
 - Bind input strings to the query context with -I

VERSION 8.0.3 (March 19, 2015) -----------------------------------------

 Various bug fixes (all minor)

VERSION 8.0.2 (March 9, 2015) ------------------------------------------

 REST
 - Better support for concurrent read and write operations

 XQUERY
 - 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

 CORE
 - Fix: consider case when pinning databases

 HTTP:
 - Fix: digest authentication, correct quoting

VERSION 8.0.1 (February 22, 2015) --------------------------------------

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

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

VERSION 8.0 (February 9, 2015) -----------------------------------------

 XQUERY
 - Support for XQuery 3.1 (nearly complete)
 - New default serialization ("adaptive")
 - MIXUPDATES option: update items and return results at the same time
 - Improved index rewritings, more precise cost estimations
 - New modules: Array and User Module
 - New annotations: %basex:inline, %basex:lazy
 - 13 of our modules were updated and extended

 STORAGE
 - Existing documents will be overwritten in-place whenever possible
 - Updatable index structures now take much less space
 - Faster document index (storing paths to all XML documents)
 - AUTOOPTIMIZE option: optimize after each update
 - XINCLUDE option: resolve or ignore XInclude tags

 SECURITY
 - Revised user management; users are stored as XML
 - Digest authentication, Salted SHA256
 - Language bindings updated

 WEB APPLICATIONS
 - Integrated application: DBA, Database Administration
 - AUTHMETHOD option: Basic vs. Digest authentication
 - RESTXQ: regular expressions in paths, quality factor support

 GUI
 - Better code completions

VERSION 7.9 (June 27, 2014) --------------------------------------------

 XQUNIT
 - 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.

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

 XQUERY MODULES
 - Database Module: parsing options for db:create/db:add

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

VERSION 7.8.2 (April 4, 2014) ------------------------------------------

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

 STORAGE, UPDATES
 - faster processing of documents with namespaces

 XQUERY MODULES
 - 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)

 XQUERY OPTIMIZATIONS
 - 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

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

VERSION 7.8.1 (February 26, 2014) --------------------------------------

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

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

 FIXED
 - 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

VERSION 7.8 (February 12, 2014) ----------------------------------------

 GUI
 - 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

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

 XQUERY OPTIMIZATIONS
 - 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

 XQUERY MODULES
 - 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

 API
 - New options: INLINELIMIT, TAILCALLS, DEFAULTDB, RUNQUERY
 - New command-line flag: -R only parse query
 - Russian translation added (thanks to Oleksandr Shpak!)
 - Spanish translation added (thanks to Carlos Marcos!)

VERSION 7.7.2 (October 7, 2013) ----------------------------------------

 XQUERY
 - 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

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

 INDEXING
 - bug fixed in updatable index structure

VERSION 7.7.1 (September 16, 2013) -------------------------------------

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

 WEBDAV
 - return non-breakable spaces as &#xA0;

 CORE
 - avoid OutOfMemory exception when building large databases

VERSION 7.7 (August 7, 2013) -------------------------------------------

 XQUERY
 - Our XQuery 3.0 support is now complete!
   http://docs.basex.org/wiki/XQuery_3.0
 - the Unit Module allows standardized testing of XQuery applications
   http://docs.basex.org/wiki/Unit_Module
 - the Streaming Module speeds up operations on large files
   http://docs.basex.org/wiki/Streaming_Module
 - the Inspection Module provides reflection and documentation features
   http://docs.basex.org/wiki/Inspection_Module
 - we have added support for XQuery collations
   http://docs.basex.org/wiki/Full-Text#Collations
 - we have extended the Database, Archive, File and other Modules
   http://docs.basex.org/wiki/Module_Library

 COMMANDS
 - database names have got more flexible
   http://docs.basex.org/wiki/Commands#Valid_Names
 - we have new options for simplifying the creation of large databases
   http://docs.basex.org/wiki/Options

 WEB/HTTP SERVICES
 - WebDAV has been enriched with locking features (sponsored feature!)
   http://docs.basex.org/wiki/WebDAV#Locking
 - RESTXQ has been improved and extended:
   http://docs.basex.org/wiki/RESTXQ

VERSION 7.6 (February 5, 2013) -----------------------------------------

 DATABASE LOCKING:
 - updates on different databases can now be executed in parallel and
   won't lock your read-only queries anymore:
   http://docs.basex.org/wiki/Transaction_Management

 XQUERY
 - when errors are raised, the full stack trace is now returned
 - the EXPath Geo Module, Fetch Module and HTML Module have been added:
   http://docs.basex.org/wiki/Module_Library
 - the Validation, XSLT, Database and Profiling Module have been updated

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

VERSION 7.5 (December 21, 2012) ----------------------------------------

  XQUERY UPDATE
  - 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()

  GUI TEXT EDITOR
  - 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

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

  WEB APPLICATIONS
  - 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

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

VERSION 7.3 (June 18, 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:
    http://docs.basex.org/wiki/Web_Application
  - All command-line options will now be executed in the given order:
    http://docs.basex.org/wiki/Startup_Options
  - Charles Foster's latest XQJ Driver supports XQuery 3.0 and the
    Update and Full Text extensions: http://xqj.net/basex/

VERSION 7.2.1 (April 27, 2012) -----------------------------------------

  - Our value indexes now support string-based range queries:
    http://docs.basex.org/wiki/Indexes#Value_Indexes
  - Our new XQJ API is based on Charles Foster's implementation.
    It fully utilizes the client/server architecture:
    http://xqj.net/basex
  - Import of XQuery modules has been simplified:
    http://docs.basex.org/wiki/Repository
  - Better Java code integration:
    http://docs.basex.org/wiki/Java_Bindings
  - Full support for the XQuery 3.0 Regular Expressions syntax:
    http://www.w3.org/TR/xpath-functions-30/#regex-syntax
  - Updating functions can now return values:
    http://docs.basex.org/wiki/Database_Module#db:output
  - Unified handling of document and database URIs:
    http://docs.basex.org/wiki/Databases#Access_Resources
  - Pinning of opened database replaced by filesystem locking:
    http://docs.basex.org/wiki/Transaction_Management#Locking
  - REST, RESTXQ, WebDav: concurrency issues fixed

VERSION 7.2 (March 24, 2012) -------------------------------------------

  - support for the new RESTXQ API for building XQuery web services
  - improved support for running BaseX as web application
  - XQuery: higher order functions added to speed up Top-K queries
  - proxy server settings added
  - advanced TagSoup options added for importing HTML files
  - XQuery: faster traversal of full-text index entries: ft:tokens()
  - Command-line: embedded readline and history support via JLine
  - XQuery 3.0: annotation added, updated EQName syntax (Q{uri}name)
  - opened databases are now pinned OS-wide to reduce write conflicts
  - HTML5 serialization of query results
  - a printable version of our Wiki documentation

VERSION 7.1.1 (February 19, 2012) --------------------------------------

  GUI:
  - new "Package" dialog: to list, install and delete XQuery Packages
  - "New/Add" dialog: "RAW" input format allows import of raw files;
    automatic detection of input formats, increased usability
  - "Export" dialog enhanced to support other methods like JSON,
    and various serialization parameters

  Command-Line:
  - new option -L: add trailing newline after query result
  - new option -C: execute commands from batch script

  REST:
  - new "option" parameter: set options before executing request

  Full-Text:
  - Indonesian Stemmer (thanks Andria Arisal!)

  IO:
  - faster read/write access to byte arrays

VERSION 7.1 (February 8, 2012) -----------------------------------------

  GUI
  - improved document management: hierarchical view of db resources
  - easier index creation/removal and database optimization
  - JSON/JsonML parser added
  - editor: updated and reopened files are reverted from disk

  REST
  - automatic XML conversion of popular content types
    (JSON/JsonML, CSV, HTML)

  XQUERY
  - 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 content-type of a specific 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 executed query file
  - util:time() prints the time needed to evaluate a given expression
  - util:mem() prints allocated memory for evaluating an expression
  - expanded QNames, computed namespace constructors

  COMMAND-LINE
  - multiple query files and -c/-i/-q flags can now be specified

  INDEXING
  - ID/Pre mapping, incremental indexing of value index structures
  - document index fix: correct replacement of existing documents
  - document index: faster updates

  OPTIONS
  - ADDRAW: add raw files if not filtered by CREATEFILTER
  - 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

  CLIENT/SERVER
  - improved log output if query iterator is used
  - new ActionScript API (thanks to Manfred Knobloch!)

  SERIALIZATION
  - "newline" parameter specifies the type of newline to be used

  COMMANDS
  - KILL command accepts IP:port combination to specify target

  TRANSLATIONS
  - Bahasa Indonesian: thanks to Andria Arisal!
  - Mongolian: thanks to Tuguldur Jamiyansharav!

VERSION 7.0.2 (November 11, 2011) --------------------------------------

  FULL TEXT
  - Stemming support for Japanese text corpora
    (thanks to Toshio HIRAI!)

  STARTUP
  - Updated start scripts (thanks to Ralf Jung!)
  - System property "org.basex.path" added to specify
    project's home directory (thanks to malamut2!)

  XQUERY
  - Numerous minor XQuery 3.0 enhancements and fixes
  - Fix for db:optimize() calls (thanks to Martin Hillert!)

  STORAGE
  - Fix to retain newly introduced namespaces
    (thanks to Laurent Chevalier!)

  USERS
  - Default privileges for new users set to "none"
    (thanks to Pascal Heus!)

  REST
  - query base URI for evaluated queries is now $HTTPPATH
    (thanks to Florent Georges!)

VERSION 7.0.1 (October 23, 2011) ---------------------------------------

  DISTRIBUTIONS
  - 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

  XQUERY
  - much faster execution of count() when applied to opened databases

  SERVER
  - 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

  API
  - Ruby, Python, PHP, Java: clients updated

VERSION 7.0 (October 14, 2010) TEI EDITION -----------------------------

  API
  - Native and tightly integrated REST implementation replaces JAXRX
  - WebDAV provides a file system like access to BaseX databases

  XQUERY
  - 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(),

  SERVER
  - BaseX HTTP Server activates the REST and WebDAV services
  - ITER command returns all results in one go and the client
    handles the iterative execution

  COMMANDS
  - 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

  OPTIONS
  - SERVERHOST: to specify a server
  - KEEPALIVE: optional timeout to close inactive client sessions
  - AUTOFLUSH database buffers
  - QUERYPATH: path to executed query

VERSION 6.7.1 (July 28, 2011) BALISAGE EDITION -------------------------

  XQuery:
  - New database functions for adding, deleting, renaming
    and replacing documents, and optimizing databases:
    http://docs.basex.org/wiki/Database_Functions
  - XSLT transformations via Java or Saxon:
    http://docs.basex.org/wiki/XSLT_Functions
  - All XQuery 3.0 functions are now supported:
    http://docs.basex.org/wiki/XQuery_3.0
  - Tail-call optimizations to speed up recursive functions

  Storage:
  - 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

  GUI:
  - "Manage Database" dialog now supports operations on
    multiple databases and the command-line glob syntax:
    http://docs.basex.org/wiki/Commands#Glob_Syntax
  - Drag and drop operations introduced for opening new files
    and copying file paths

  Client/Server:
  - Delay clients that repeatedly fail to login
  - All remaining plain-text password operations now use
    MD5 to send and log passwords

VERSION 6.7 (June 30, 2011) --------------------------------------------

  Main Features:
  [ADD] Native support for the EXPath Packaging system:
        http://docs.basex.org/wiki/Packaging
  [ADD] Client/server event notification:
        http://docs.basex.org/wiki/Events
  [ADD] Persistent document index added to speed up
        access to large collections

  XQuery:
  [ADD] New database and full-text functions:
        http://docs.basex.org/wiki/Database_Functions
        http://docs.basex.org/wiki/Full-Text_Functions
  [ADD] Event function added to fire events
  [MOD] Index optimizations, better cost estimations

  Commands:
  [ADD] Glob syntax introduced to database commands:
        http://docs.basex.org/wiki/Commands
  [ADD] New commands added: REPLACE, RENAME,
        REPO DELETE/INSTALL/LIST, CREATE/DROP EVENT
  [MOD] BACKUP optimized, renamed to CREATE BACKUP

VERSION 6.6.2 (May 13, 2011) LINUXTAG RELEASE --------------------------

  API:
  [ADD] JAX-RX API now supports basic user authentication:
        http://docs.basex.org/wiki/JAX-RX_API
  [ADD] The COPY creates identical database copies:
        http://docs.basex.org/wiki/Commands#COPY
  [ADD] The OPTIMIZE ALL command minimizes all database structures:
        http://docs.basex.org/wiki/Commands#OPTIMIZE

  XQuery:
  [ADD] map expressions and functions added:
        http://docs.basex.org/wiki/Map_Functions
  [MOD] File module aligned with latest EXPath specification:
        http://docs.basex.org/wiki/File_Functions
  [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 sequences.

  GUI:
  [ADD] Multiple editor tabs added
  [ADD] Database management: copy databases

  Core:
  [ADD] Internal XML parser: HTML entities added
  [FIX] Glob syntax: support for multiple file suffixes

VERSION 6.6.1 (March 30, 2011) XML PRAGUE RELEASE ----------------------

  XQuery:
  [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

  GUI:
  [FIX] language option (for Japanese, German, etc. interface) fixed

VERSION 6.6 (March 23, 2011) -------------------------------------------

  [ADD] XQuery 3.0: Full support of Higher Order Functions
        (dynamic function invocation, inlined functions, etc.)
  [ADD] XQuery: Full support of the EXPath ZIP and HTTP modules
  [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 to CSV/Text
        parsers
  [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

VERSION 6.5 (November 17, 2010) ----------------------------------------

  [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
