Revision history for Biber
2.21   (2025-07)
       * **INCOMPATIBLE CHANGE** - the 'collate-options' option no longer
         accepts a single string in perl hash notation as value. It now requires
         the option to be used once per collate option in a more standardised
         format, due to a code injection vulnerability. For example, instead of e.g:
         --collate-options="level => 4, variable => 'non-ignorable'", the format
         is: --collate-options level=4 --collate-options variable='non-ignorable'
       * Support for 32-bit Windows has been discontinued.
       * Improved Unicode support for Windows (thanks to John Collins)
       * Misc bug fixes
2.20   (2024-03)
       * Added new option settings `minyearinit` and `minyearfull` for
         `uniquename`
       * Added `\DeclareNamehashTemplate` and supporting macros to allow
         customisation of the nameparts used in name hash construction.
       * Added facility for custom namehash ids in extended name format.
       * Added new field `fullhashraw`.
       * Misc bug fixes
2.19   (2023-03)
       * Misc bug fixes
2.18   (2022-06)
       * Added support for biblatex "pluralothers" option which allows "et
         al" to be forced to replace more than one name.
       * Universal x86_64/ARM64 binary
       * Support for citation-only rules for name templates in sorting (see
         \visibility macro in sorting name key templates in biblatex)
2.17   (2022-01)
       * Tool mode now supports tab indentation in output as well as spaces
         (see --output-indent)
       * More compact match/replace syntax for serial items in data maps
       * Native ARM64 binary for OSX now provided
2.16   (2020-12)
       * Better support for Unicode on Windows (10 1803+) with the
         --winunicode option
       * Option "output_macro_fields" no longer does anything as macro
         fields are auto-detected.
       * New options "output_no_macrodefs" and "output_all_macrodefs" control
         BibTeX macros (@STRING) output for bibtex format output.
2.15   (2020-08)
       * Added --output-legacy-dates and --output-field-replace options to
         aid in outputting legacy bibtex format in tool and non-tool mode
       * UTF-8 filenames supported on Windows
       * INCOMPATIBLE CHANGE - datasource globbing now has to be turned on
         explicitly with the --glob-datasources option. Globbing causes
         some issues with UTF8 encoding detection on some OSes and since it
         is a niche requirement, it is turned off by default.
       * DEPRECATION WARNING - The BBLXML output format will be removed in
         version 4. It is rarely used and complicates test suite maintenance
         considerably.
2.14   (2019-12)
       * XDATA now supports granular references so that specific
         fields/items in a list field may be used and inserted into
         fields/list positions. This allow, for example, re-use of names
         from a general XDATA entry containing data about authors. See the
         biblatex documentation.
       * Remote Zotero data source requests now send correct header
       * Annotations are now correctly output for related entries
       * Better sorting of some name edge cases
       * New map_entrykey_* mapping verbs
       * New options --noremove-tmp-dir and --show-tmp-dir to disable of
         removal on exit and showing location of temporary directory used for
         intermediate data. Useful for debugging.
       * Tool mode now accepts multiple data files on the command-line so
         that data can be spread over several files (e.g. main bib and
         crossrefs can be kept in separate files)
       * Biber no longer uses Text::BibTeX/btparse to generation initials
         from names in normal name parsing mode because it can't handle
         some Unicode situations.
2.13   (2019-08-13)
       * biber now exits with error on some very malformed names instead of
         skipping them as this can lead to data loss in bibliographies.
       * Support for named annotations
2.12   (2018-10-30)
       * Added support for biblatex literal and named annotation features
       * Added support for biblatex \ifnocite test
       * Case insensitive matching operators in sourcemaps (matchi/notmatchi)
       * Support for biblatex min/maxsortnames options
       * Added support for biblatex 'noroman' option to supporess roman
         numeral interpretation in ranges.
       * Misc bug fixes
2.11   (2018-02-14)
       * New entrynocite option for maps which create/clone entries 
       * Misc bug fixes
2.10   (2017-12-19)
       * Misc bug fixes
2.9    (2017-11-04)
       * Misc bug fixes
2.8    (2017-11-04)
       * Updated copyright dates
       * Support for many new biblatex 3.8 features (see bibatex change doc
         and PDF manual).
       * --output-resolve option is now a meta-alias for the more granular
         --output-resolve-* options - see the biber -? output
       * The --nouri-encode option is removed. All urls are URL encoded and
         a new field urlraw is always output with an unencoded version.
2.7    (2016-12-08)
       * New option (--nouri-encode) to prevent URL encoding of URLs. Avoids breaking
         display of URLS which contain non-ASCII.
       * Misc bug fixes
2.6    (2016-09-10)
       * Improved tool mode bibtex output. This has some normalisation
         consequences for YEAR and custom fields. See PDF doc.
       * Support for new \ifuniquebaretitle test
       * Sourcemaps can now be restricted to particular refsections
       * Perl 5.24 is now required due to use of postfix deref notation
       * Removed RIS input driver due to lack of use
       * Added extended name format - see documentation
       * Added notfield function to sourcemaps - see documentation
2.5    (2016-05-10)
       * Added data annotations feature - see biblatex documentation.
       * Removed the "latinkeys.txt" Unicode::Collate table. This is now
         pointless because the compiled 'allkeys.txt' is faster and complete.
       * Incompatible biblatex/biber version is now a fatal error.
       * Significant performance improvements, particularly in sorting subsystem.
       * Addition of new bblXML output format and associated RelaxNG XML
         schema based on active datamodel.
       * Integration with new biblatex 3.4 labelprefix name change and
         refcontext option.
       * Integration with new biblatex 3.4 \DeclareDatafieldSet
         functionality.
       * Improved sourcemap looping functionality
2.4    (2016-03-01)
       * Misc bug fixes
       * There is now a 64-bit windows build built on windows 10
       * Biblatexml datasources now support sourcemapping and have a schema
         automatically generated from the datamodel. See new biber options
         'validate-bltxml' and 'no-bltxml-schema' in --help output.
       * New functionality in sourcemaps for creating new entries and
         looping over specified fields.
       * Sorting key used to sort names is now customisable. See
         \DeclareSortingNamekeyScheme in biblatex manual.
       * Support for Zotero RDF/XML and Endnote removed. These were
         experimental and messy.
2.3    (2015-12-28)
       * Misc bug fixes
2.2    (2015-10-21)
       * Tool mode now preserves comments at the end of the file
       * New ISBN formatting options for biber (--isbn10, --isnb13, --isbn-normalise)
       * Implemented way of ignoring certain regexps when counting
         fixed-width string in labels (see biblatex \DeclareNolabelwidthcount macro)
       * Updated binary builds to perl 5.22
       * Cygwin binary build is now handled by Texlive builders
       * Misc bug fixes
2.1    (2015-05-06)
       * Misc bug fixes
2.0    (2015-04-20)
       * Misc bug fixes
       * New negated "per type" sourcemap verb for negating the application
         of maps to specific entry types
       * New "entry clone" sourcemap verb for cloning entries during
         sourcemapping. See PDF documentation for biber.
       * Added range length calculation support. Biber now calculates the length of
         ranges for biblatex and can handle roman numerals, including just
         about any UTF-8 composed, non-composed or compat versions
       * Complete re-write of the biblatex use* name functionality now
         automatically supports all name fields defined in the data model. See
         biblatex manual
       * Moved labelname and labeltitle resolution from biber to biblatex for more
         flexibility and future extensions
       * Moved to perl 5.20 for all internals and builds
1.9    (2014-05-25)
       * Misc bug fixes
       * Option names accept dashes as well as underscores for general TeX
         option compatibility.
       * New "--input-directory" option
       * Tool mode now also supports data validation
       * Perl 5.18 is now used to build all biber binaries
       * Locale-sensitive sorting now more granular (see biblatex
         "sortlocale" documentation)
       * Source mapping feature now interpolates from previous matches
       * Now supports generalised separated values lists using new
         "--xsvsep" option.
       * Macro <-> UTF-8 conversion now more robust
       * New Text::BibTeX library now supports generating initials from
         general UTF-8 strings (for, e.g. Russian names)
1.8    (2013-10-21)
       * Perl 5.18 compatibility (hash order randomisation)
       * Removed Data::Diver module due to linux licensing restrictions
       * Misc Bug Fixes
1.7    (2013-07-07)
       * Added clrmacros option
       * Added map_nomatch
       * Added --tool_macro_fields option
       * Exposed sorting option to user-level config file (so sorting in tool mode is possible)
1.6    (2013-04-30)
       * Bugfixes
       * Now uses perl 5.16. Non-binary (unpacked) use requires perl 5.16+
       * Improved tool mode with some formatting options
       * Made Unicode NFD/NFC boundaries more robust
       * labelyear is now labeldate to match biblatex 2.6
       * Support for new CLONESOURCEKEY field (see biblatex 2.6 docs)
       * New padding character option in labelalphatemplate (see biblatex
         2.6 docs)
1.5    (2013-01-10)
       * Added new source mapping option "map_entry_null"
       * Renamed some options (old ones remain as aliases):
         bibencoding     -> input_encoding
         bblencoding     -> output_encoding
         bblsafechars    -> output_safechars
         bblsafecharsset -> output_safecharsset
         outfile         -> output_file
         outformat       -> output_format
       * New "tool" mode with "--tool" option which takes a data source as argument
         and just performs reencoding and source mappings etc. as per options and config file.
       * Support for customisable BibTeX data source list and name separators
       * Better debug output for source mapping
       * Better defined source mapping hierarchy with bugfixes
1.4    (2012-11-28)
       * Support for biblatex 2.4 style sourcemaps (See \DeclareStyleSourcemap in biblatex docs)
       * entrykey is now a possible read-only pseudo field in sourcemaps
       * Reencode data interface completely re-written. New user option
         --recodedata allows users to specify a new data file for defining
         reencoding sets.
       * Internal changes to allow multiple script/lang variants of
         fields in biblatex in the future.
       * Citation key aliases now supported more comprehensively, in crossrefs etc.
       * Support for new RELATEDOPTIONS field (see biblatex docs)
       * Misc bug fixes
1.3    (01-11-2012)
       * New "append" mode for sourcemap to allow combining of fields
       * map_final now possible for map_set_field steps which causes map to
         stop completely if map_overwrite is false and the field to set
         already exists
       * Allow extrayear generation when there is no labelyear
1.2    (20-08-2012)
       * Misc bug fixes
1.1    (01-08-2012)
       * Misc bug fixes
       * Fixed later CentOS libz issue by including latest libz for linux builds
       * Fixed DOT output (SF bug 3544894)
1.0    (01-07-2012)
       * Internal data model processing changes
       * New labeltitleyear and extratitleyear disambiguation tracker
       * New labeltitle and extratitle disambiguation tracker
       * Sorting per list enabled for biblatex 2.0
       * New noinit option for ignoring parts of names when generating initials
       * Some optimisations for large data sources
       * Fixed build issues which broke PAR::Packer binary under latest Debian (Wheezy)
0.9.9  (30-03-2012)
       * Added sortfirstinits option
       * HTTPS support for remote data sources
       * Biber now ignores names when it can't determine minimal
         information like a lastname. Before, it would throw lots of errors
         and die.
       * Strips UTF-8 BOMs before passing to Text::BibTeX otherwise it complains
       * Merged --graph and --bltxml options into --outformat option
       * Updated some internal Unicode 6.0 things
       * Minor bug fixes
0.9.8  (20-12-2012)
       * Changed config file sourcemap syntax and docs
       * Support for citekey aliases
       * New DOT output format
0.9.7  (27-11-2011)
       * per-datasource mapping restrictions
       * Completely new config file format to allow for extensions
       * Fixed --help issue with PAR::Packer
       * Fixed .bcf XSL inheritance attribute value issue
       * Moved XDATA output skip into structure where it should have been originally
0.9.6  (13-11-2011)
       * Fixed binary issue with Readonly::XS not being detected
       * Fixed bug tracker ticket #3436870
       * Match/replace functionality for data source field filtering
       * New AUCTeX patches for better biblatex/biber support
       * Now requires perl 5.14 for full Unicode 6.0 support
       * New XDATA entrytype and field to allow more complex macro-style
         data inheritance
       * crossref cascading is in guaranteed resolve order now
       * Warnings/error summary is now a more consistent format with all
         other biber messages.
       * Matching of .bcf keys to datasource keys is now case-sensitive
       * Fixed biblatex bug tracker ticket #3399744
       * Fixed bug tracker ticket #3402114
       * max/minnames -> max/mincitenames
       * max/min* now all per-type and per-entry
       * uniquelist/uniquename now per-entry
       * Re-factored recode module with XML data and XSL->HTML transform doc
0.9.5  (18-08-2011)
       * Fixed auto-bblsafechars bug
       * refactored explicit "and others" in bibtex data sources
       * Fixed issue with sorting=none and \nocite{*}
0.9.4  (30-07-2011)
       * Added support for "SORTSHORTHAND" field
       * New "map" option to allow user field/entry type mapping (aliasing) in
         addition to .dcf settings
       * Made the relevant places depend on max/min{alpha,bib}names instead of
         just max/minnames
       * Bug fixes to bblsafechars
       * Implemented user-customisable labelalpha (not yet in biblatex)
       * Implemented per-name hashes
0.9.3  (05-06-2011)
       * New mininit and minfull uniquename options
       * New minyear uniquelist option
       * Major revamp of uniqueness code
       * Moved to new external process calling module because IPC::Run
         doesn't work on Windows in packed binaries (kpsewhich was
         returning nothing).
0.9.2  (09-05-2011)
       * Some internal changes for perl 5.14
       * Bug fixes for uniquelist processing
0.9.1  (29-04-2011)
       * Made temp files all use a global temp dir.
       * Moved temp .utf8 conversions to temp dir so biber works using
         .bib files which are in non-writable locations.
       * Added back an info log message about finding data sources (Lyx compat)
0.9    (29-03-2011)
       * No longer auto-escapes any TeX markup in bibtex data sources. This
         is fraught with danger and is a mess. Best not to do it at all.
       * Supports biblatex \bibnamedelimi macro
       * Implementation of uniquename and uniquelist options for biblatex 1.4+
0.8.4  (19-03-2011)
       * Bug fixes (wrong escaping of "[", "_" and "]" in .bbl)
0.8.3  14-03-2011
       * Biber now in TexLive
       * Added several new binary builds
       * All name part and element formatting is now abstracted into macros
         so that it can be controlled via biblatex.
       * Much more documentation on binary builds for packagers
       * Bug fixes
0.8.2  (14-02-2011)
       * Bug fixes
0.8.1  (12-02-2011)
       * Small bug with default bibtex month macro support
       * Made remote file support a little more robust (URI return codes)
0.8    (11-02-2011)
       * Forces biblatex format for month field
       * Added support for remote data sources
       * Added experimental support for RIS data sources
       * Took out -a and -d flags. These are no longer very useful as the increasingly
         sophisticated biblatex options cannot be set on the command line
         anyway and so these flags are less and less relevant
       * New inheritance model in sync with biblatex defaults
       * Bug fixes
0.7.4  (05-02-2011)
       * Fix for mincrossrefs leaking across sections (biblatex SF bug #3173032)
0.7.3  (03-02-2011)
       * Performance tuning for sorting
       * Text::BibTeX 0.51 for increased macro stack space
       * Support for old BibTeX month macros by default
       * Re-write of datasource processing to allow for modular plugins
       * Generalised nosort option.
       * Merged LaTeX::Decode into Biber::LaTeX::Recode and added encoding
         to deal with inputenc's limitations for PDFLaTeX users
       * new options for forcing/tuning UTF-8 -> LaTeX macro conversion
       * Bug fixes
0.7.2  (08-01-2011)
       * Improved latexmk compatibility more
0.7.1  (07-01-2011)
       * Improved latexmk compatibility
       * Added "x-ascii" encoding alias for "ascii" to deal with inputenx ascii.
       * Bug fixes
0.7    (05-01-2011)
       * Completely re-written sorting routine using Schwartzian transform
         for real multi-field support and per-field sorting settings.
       * Bug fixes
0.6.9  (dev beta)
       * Bug fixes
0.6.8  (dev beta)
       * Generalised sorting behaviour in several respects
       * Bug fixes
0.6.7  (dev beta)
       * Bug fixes
0.6.6  (dev beta)
       * More generalised sorting options
       * Bug fixes
0.6.5  (dev beta)
       * Bug fixes
0.6.4  (dev beta)
       * Bug fixes
0.6.3  (dev beta)
       * Outputs labelname name list to the .bbl
       * Support for dynamic sets and simpler static set interface
       * Misc bug fixes
0.6.2  (dev beta)
       * Internal cleanup of structure code
       * Misc bug fixes
0.6.1  (dev beta)
       * More comprehensive structural checks on allowed entrytypes/fields
         and field combinations/formats
       * Added option validate_structure to turn on structural checks
       * Renamed option validate -> validate_control
       * Renamed option output-directory -> output_directory
       * Added labelname and labelyear as possible sort specifications
       * Misc bug fixes
0.6    (20-11-2010)
       * First non-beta release
       * More abstracted and extensible crossref inheritance model
       * U::C dependency to 0.67
       * sortcase and sortupper options now take same argument forms as in biblatex
       * Misc bug fixes
0.5.7  (09-10-2010)
       * Misc bug fixes
0.5.6  (04-10-2010)
       * Latex character macro decoding is now better defined in the whole
         (re)encoding workflow.
       * "inputenc" option is now "bblencoding"
       * "locale" option is now "sortlocale"
       * New option "sortupper"
       * Unicode::Collate sorting is now default as version 0.61 of this
         has XS module and CLDR tailoring.
       * Added binary dist build scripts
       * Removed bundled Module::Build as there are some conflicts with
         later versions. This is less of a problem anyway because the
         binary build makes it less necessary to make builds easy on perl<5.10
       * Misc bug fixes
0.5.5  (29-08-2010)
       * Biber::BibTeX moved to Biber::Input::BibTeX. If upgrading, please remove
         your installed <perl lib>/Biber/BibTeX.pm, just to be tidy
       * New aliases for EPRINT classes and types implemented (see BibLaTeX docs).
       * Biber now resolves XREFs as well as CROSSREFs so one less LaTeX pass is needed
       * Allows UTF-8 citekeys. Requires Text::BibTeX >= 0.46 and a fully UTF-8
         aware TeX macro package (e.g. XeTeX or LuaLaTeX). Normal LaTeX with \inputenc
         will not work because the UTF-8 it uses is incomplete, macro based and not native.
       * RecDescent parser is no longer supported or included. If upgrading, please remove
         your installed <perl lib>/Biber/BibTeX directory, just to be tidy
       * Now requires LaTeX::Decode >= 0.03
       * Stricter version dependency for Text::BibTeX. Older than 0.42 is
         rather useless for complex names.
       * Re-factored and enhanced auto-re-encoding of .bib/.bbl. With biblatex
         0.9c, Biber handles all reencoding.
       * Misc bug fixes
0.5.4  (04-08-2010)
       * Case-sensitive sorting option
       * Multi-section support. Only one biber pass needed to process all
         bib sections using extended biblatex 0.9b .bbl format.
       * .aux file is no longer used by biber - all information is passed
         in .bcf file.
       * Misc bug fixes
       * LaTeX::Decode is now a separate CPAN module and is no longer included
0.5.3  (19-03-2010)
       * Changed semantics of --outfile and --output-directory. --outfile
         is now relative to --output-directory. If --outfile is absolute, it
         is stripped to the filename and the path discarded. Absolute .aux
         paths are stripped to filename for appending to --output-directory.
       * Updated PRD to use new encoding option names. Now works with -e.
       * sortlos was not settable to use bib sort order
       * With Text::BibTeX >= 0.42, will do all name/initials generation with btparse
         library.
       * Abstracted BBL output into Biber::Output class for better re-use and potential
         for output formats other than .bbl.
       * Synced uniquename .bcf values with change in biblatex 0.9a
0.5.2  (04-03-2010)
       * Locale fixes
       * Uniquename fixed to match BibLaTeX option values
       * Improved error message for malformed names
       * Fixed config file problems under windows and also added option to ignore config file
       * Bug with conflicting case between citations and bib entries
       * Moved pure perl parsename to PRD.pm
       * Re-write of name parsing to use Text::BibTeX::Name by default
       * Fields which can be null are explicitly flagged
       * Add THANKS file
       * Die early when biber is called without argument
       * Fixed Mac config path error
       * .bib parse continues after certain errors
       * regularised collate options processing
       * field nameaddon was missing from Biber::Constants
       * Improved warning message for missing backend=biber
       * SF bug 2952347 fix (empty date range end)
       * uniquename counter was being provided incorrectly
0.5.1  (15-02-2010)
       * Remove support for legacy control files (\jobname-blx.bib):
         Biber now only reads .bcf files written by biblatex with the 
         option "backend=biber".
       * Improved handling of "uniquename" and "namehash".
       * Don't apply latexescape in bbl output, as it breaks math formatting.
0.5    (13-02-2010)
       * Supports all changes introduced by biblatex 0.9
       * Moved all parts relating to the experimental BibLaTeXML format to the
         "biblatexml" branch on the git repo
       * Communication between biblatex and Biber can be done through a
         XML-based config file (extension .bcf): this is enabled with the
         experimental biblatex option "backend=biber"
       * Biber can now be customized with a configuration file
       * Considerable refactoring and cleanup of the code
       * Further enhancements to the test suite
       * Improved logging mechanism
       * More robust parsing of personal names
       * Ignore certain prefixes and diacritics in sort strings, for
         instance ʿAlī is sorted under A, and al-Hasan under H. This can
         be customized in the configuration file (biber.conf).
       * New command-line option --output-directory (like TeX)
       * Many, many bugfixes

0.4.3  (23-07-2009)
       * With biblatex option "backend=biber" and biber option --v2
         the new experimental control file \jobname.bcf is used,
         which brings in many new features, such as per-entrytype
         settings.
       * More sophisticated/customizable sorting mechanism
       * More extensive test suite
       * Improved BibLaTeXML schema
       * improved handling of BibLaTeXML (enable nested children,
         formatting elements, nosort elements)
       * Do not apply latexescape() by default on xml strings
       * Skip title handling in BibLaTeXML when not existing
       * Ignore maxline, add option wraplines
       * Built-in sort is now default (option --fastsort)
       * Sorting with Unicode::Collate is possible with option --collate
       * Make tests succeed w/o Parse::RD and Regexp::Common
       * Don't output date and urldate in the bbl
       * Add missing fields "date" "urldate" "organization" "annotator"
         "foreword" and "eventtitle"
       * Use Data::Dump instead of Data::Dumper for debugging
       * Fields "library" and "remarks" are now skipped
       * Bugfix for aliases (e.g. address, school)
       * Bugfix: process urldate to get urlyear,urlmonth,urlday
       * Remove illegal value shorttranslator from labelname option
       * Changed biberdebug option to debug
       * Changed option inputencoding to bibencoding

0.4.2  (25-04-2009)
       * New option --inputencoding to handle 8-bit encoded bib files
       * $BIBINPUT environment is now searched
       * Improved parsing of personal names
       * @comments are now silently ignored
       * Fixed handling of @preamble; multiple preambles are allowed
       * Warnings and errors behave more like BibTeX
       * Alias fields are automatically converted (e.g. address -> location)
       * Take care of "phdthesis" and "mathesis" types
       * Cite keys of bib files are now case-insensitive
       * Default Unicode collation now uses the table "latinkeys.txt"
         (this is much faster than "allkeys.txt" which contains rules for
         all Unicode glyphs)
       * Unicode::Collate parameters can be passed as a command-line option
       * Faster sorting (with option -f) is also possible for specific
         locales given with option --locale (this is OS-dependent however)
       * PRD grammar is now precompiled
       * bbl output is now wrapped acc to maxline option
       * Empty fields are no longer printed in the bbl
       * Sorting is much improved.
       * Use sortstring separators 0 1 2 like biblatex.bst
       * Handle truncation of name lists acc to minnames/maxnames
       * bib2biblatexml has been improved
       * Windows version of Text::BibTeX provided as ppm.
       * Many more bugfixes

0.4.1  (31-03-2009)
       * Text::BibTeX now optional dependency
0.4    (27-03-2009)
       * Initial beta release

