Happy new year
[pazpar2-moved-to-github.git] / NEWS
diff --git a/NEWS b/NEWS
index 4a20ccb..0d47f90 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,663 @@
+--- 1.12.5 2015/10/19
+
+Usage limit PAZ-1038
+Guard against running out of sockets/file-descriptors. The limit may
+be set with <socket max="number"/> in main configuration. If omitted,
+the system default is used (getrlimit RLIMIT_NOFILE).
+
+--- 1.12.4 2015/09/15
+
+log msg cleanup PAZ-1037
+
+Fix leak in record parsing
+Occurred when empty data was produced and metadata did not have the
+attribute "empty". The empty attribute was introduced in PAZ-858
+
+Updates to pz:authentication documentation
+
+Refer to full Apache product
+
+Document info command. This command has been around since first release
+in 2007. Command info includes versions, statistics, etc.
+The undocumented server-status comand is gone and completely replaced by
+command info which returns general information of the pazpar2 instance.
+
+Minor updates to pazpar2_play manual
+
+--- 1.12.3 2015/09/03
+
+Make pazpar2_play part of Deb/RPM PAZ-1031
+
+Allow predictable sessions (Option -R - for pazpar2) PAZ-1030
+
+Fix pazpar2 recording broken PAZ-1029
+
+At session destroy, log facet IDs in use
+
+log level for http is http (not HTTP)
+
+Fix 0 ptr reference for POST and no Content-Type PAZ-1028
+
+Log levels http+iochan for tests. Wait longer time in valgrind mode.
+
+--- 1.12.2 2015/08/31
+
+Facility disable/logging of POSTed content PAZ-1027
+Log level "post" controls whether POSTed content is logged. This
+is enabled by default. To disable, use -v -post on the command line.
+
+Explain the semantics of using option -d twice in pazpar2 man page.
+
+Update ajaxdev.xml and make it part of the dist PAZ-1025
+
+--- 1.12.1 2015/08/26
+
+Fix pazpar2 crash when using pz:extendrecs PAZ-1024
+
+--- 1.12.0 2015/08/17
+
+Fix PAZPAR2_PPMUTEX_H incorrectly defined PAZ-1023
+
+Fix windows: crash in xmlDocFormatDump PAZ-1021
+Problem is the passed FILE*. We can not pass FILE pointers between
+DLLs. So we just avoid dumping the XML config during start on Windows.
+
+Use YAZ comstack features for IPv6 and non-blocking getaddrinfo. PAZ-927
+
+Upgrade to debian DH version 9 PAZ-1020
+
+Fix bytarget list not cleared for new search PAZ-1019
+
+--- 1.11.3 2015/07/28
+
+Do not re-search if facetlimit scan fails to find value PAZ-1013
+
+Optimizie single-target sortmap - keep record order PAZ-1917
+
+position rec-icd with leading zeros PAZ-1018
+
+Fix Bad HTTP request causes a crash PAZ-1012
+
+--- 1.11.2 2015/07/21
+
+Fix Can not make doc on mochi PAZ-1015
+
+--- 1.11.1 2015/07/21
+
+Fix PAZ-1009: Do not create local facets when using facetmap:split
+
+--- 1.11.0 2015/07/06
+
+Facet ID term map PAZ-1008
+New setting pz:facetmap:split:name (refer to documentation)
+
+--- 1.10.0 2015/06/16
+
+Sort by retrieval PAZ-1006
+Allows sorting by order that records were retrieved from databases.
+
+Response from bytarget command includes native query PAZ-1005
+
+Use lx2.loc.gov:210/LCDB_MARC8 instd of z3950.loc.gov:7090/voyager PAZ-1003
+
+--- 1.9.0 2015/05/23
+
+New metadata facility "icurule" for normalizing metadata text PAZ-1002
+This allows ICU normalization of text before in-cluster merging takes
+place.
+
+Heuristics to deal with Primo s/e/page PAZ-1001
+
+Fix test_limit_limitmap fails PAZ-1000
+
+--- 1.8.8 2015/04/20
+
+Limitmap ccl: deal with quotes and backslash PAZ-999
+
+Handle date range from a limit parameter PAZ-997
+The CCL term is not quoted unless it includes blanks. This will ensure
+that r=r is handled correctly. This changes behavior a bit. If term
+should not be converted to @and, then instead of r=r one should use
+r=o or r=3 instead.
+
+Construct md-pages-number form page/endpage PAZ-998
+
+--- 1.8.7 2015/03/27
+
+solr-pz2.xsl: extend Solr transformation to emit license_name field PAZ-996
+
+cf.xsl: forwards flat affiliation structure PAZ-992
+
+parpar2: log YAZ version upon start PAZ-993
+
+Update and fix documentation for preferred targets
+
+Fix spelling of present_chunk in documentation
+
+--- 1.8.6 2015/02/10
+
+Increase facet limit PAZ-990
+No longer a limit on facets.
+
+Pazpar2-js no longer requires Apache2 PAZ-989
+Package pazpar2-apache2 sets up everything WRT apache and only
+package which requires it. pazpar2-apache depends on pazpar2-js.
+
+--- 1.8.5 2014/12/17
+
+Larger string buffer for forward address PAZ-987
+Fixes buffer overflow that could occur if forward address is IPV6.
+
+Updates to Windows NMAKE makefile for Visual Studio 2013.
+
+--- 1.8.4 2014/11/26
+
+Use YAZ backtrace facility PAZ-983. In case of crashes YAZ log may
+include more details about the fault. Better install gdb and the
+debug version of pazpar2 (pazpar2-dbg on Debian/Ubuntu).
+
+Per target timeout PAZ-981
+New setting pz:timeout which overrides z3950_operation timeout
+in service.
+
+--- 1.8.3 2014/11/20
+
+Re-introduce journal-subpart PAZ-980
+Both citation and journal-subpart have same value.
+
+--- 1.8.2 2014/10/30
+
+Add Ubuntu utopic 14.04 and Ubuntu saucy 13.10 to the list of packages
+built. 
+
+Remove from js/pz2.js the code that translates just two diagnostic
+codes (1 and 2) into human-readable messages. This is no longer
+necessary at all, as PazPar2 has been returning the message as well as
+the code in its responses since December 2012. Fixes PAZ-978.
+
+primo xsl produces citation rather than journal-subpart PAZ-972
+(fix in 1.8.1 was incorrect)
+
+Fix missing .url files PAZ-977
+Add missing .url+.cfg and add proper check for it.
+
+--- 1.8.1 2014/10/10
+
+Turbomarc needs number check for date 903 map PAZ-973
+
+primo-pz2.xsl creates citation rather than journal-subpart PAZ-972
+
+pz2.js: on successful search, issue a "show" command only if a show
+callback function has been installed. Fixes part of PAZ-975
+
+--- 1.8.0 2014/09/30
+
+New command=stop which stops further search&retrieval for active
+databases.
+
+CF/primo XSL generates {volume,issue,pages}-number that are defined
+in default Pazpar2 service definition. PAZ-968 PAZ-970
+
+--- 1.7.5 2014/09/11
+
+Various fixes for threaded operation PAZ-960 thru PAZ-966
+
+Dump main configuration file during start of Pazpar2 PAZ-957
+
+--- 1.7.4 2014/09/02
+
+Log ingest failures and record failures:
+
+Clean up logging PAZ-942
+Use session lead in more places. Log hits/records/filtered for each
+target when fetching is complete. Log hit count when a search
+(response) is received. Remove some less useful log messages.
+
+Fix warning about about missing (internal) stylesheet PAZ-956
+
+Report number of filtered records in bytarget PAZ-954
+
+Cache XML documents as they appear after normalization. The key
+for the cache is database+record offset. Cache is removed if query
+is modified for search. This speeds up re-establishing a result set
+for databases where new query is same previous query.
+
+--- 1.7.3 2014/08/22
+
+poll: add assert for number of FDs; abort on poll failure
+
+--- 1.7.2 2014/08/18
+
+Fix hang for 2nd use of target with unresolved DNS PAZ-949
+
+--- 1.7.1 2014/08/14
+
+Use poll rather than select for main event loop to overcome limit of
+1024 file descriptors PAZ-947
+
+Override setting with same name (do not append) PAZ-945
+
+--- 1.7.0 2014/06/27
+
+Separate package: pazpar2-xsl PAZ-932
+
+--- 1.6.44 2014/06/27
+
+Update OPAC stylesheets for availabilityDate PAZ-943
+
+Fix too funny startrecs description
+
+Fix broken ~ match if filter contains = PAZ-941
+
+--- 1.6.43 2014/06/12
+
+Add pz:redis option for ZOOM caching using redis. This is an alternative
+to memcached. Requires YAZ 5.2.0 to work.
+
+--- 1.6.42 2014/05/06
+
+Re-ingest native facets PAZ-934
+
+Fix medium override for solr-pz2.xsl.
+
+--- 1.6.41 2014/04/23
+
+Fix URL with leading http:// not working PAZ-933
+
+Build packages for Ubuntu Trusty Tahr 14.04 LTS
+
+cf.xsl: handle medium override AND md field
+
+--- 1.6.40 2014/04/10
+
+sortmap relevance always uses increasing=1. PAZ-930
+
+solr-pz2.xsl: ensure medium is also applied if Solr record do not
+have it. PAZ-929 
+
+Fix leak in getaddrinfo usage for HTTP listener. Not a big deal because
+this code is only executed once.
+
+Fix typos is sortmap documentation.
+
+Doc: fix misplaced variablelist tag.
+
+--- 1.6.39 2014/02/19
+
+Doc: update WRT ICU which is configured for YAZ; not Pazpar2.
+It's been like that since version 1.1.1 from August 2009.
+
+Add support for result-set caching via memcached. See description of
+pz:memcached. Require that Pazpar2 is using YAZ 5.0.12 or later.
+
+Add support for a <metadata> container tag. Patfh from Sven Porst.
+
+Add support for XInclude in main configuarion file. Patch from Sven Porst.
+
+Add client_{lock,unlock} before call to non_block_events in
+connection_continue. Problem is that if non_block_events fire records,
+then we will not unlock client at all. And as a result, a dead-lock
+occurs.
+
+--- 1.6.38 2014/01/07
+
+Avoid removing slash and other characters for generic metadata that
+looks like a URL (contains ://). PAZ-915
+
+pz2.js: Only use XDR when doing CORS. Favor XHR in all other circumstances.
+
+Cluster merge fixes. PAZ-901
+
+Set client state to "working" when waiting for DNS resolver. PAZ-907
+
+Log when session terminates. PAZ-905
+
+Fix LSB/HS conformance for /etc/init.d/pazpar2 PAZ-904
+Debian: add support for /etc/init.d/pazpar2 status
+
+--- 1.6.37 2013/11/18
+
+Fix 'Record Missing' for command=show PAZ-903
+
+Preserve order of records within cluster PAZ-902
+
+testing: use yaz-ztest -V if possible and use YAZ in sibling directory
+if present.
+
+Allow clustered records to be ingested during retrieval. PAZ-900
+
+Fix void function error which cannot return a value.
+
+--- 1.6.36 2013/11/11
+
+SRU pz:authentication="a/b" may end up as x-username=a%2Fb PAZ-899
+
+Upgrade to debhelper version 7 PAZ-898
+
+Package with libyaz5 PAZ-897
+
+Better error message for CCL parse errors PAZ-887
+
+--- 1.6.35 2013/09/23
+
+New target setting: pz:authentication_mode. PAZ-896
+
+pazpar2 PRM: pazpar2 runs as user nobody. PAZ-893
+
+Strip #-suffix for ZOOM URLs. PAZ-892
+
+--- 1.6.34 2013/08/30
+
+Fix issue with hanging show/bytarget. Could happen if new search was
+fired with filter before show from previous show completed.
+
+Add 'date' handling for solr-pz2.xsl.
+
+--- 1.6.33 2013/08/13
+
+pz:authentication may carry user group password. If pz:authentication
+has at least one blank in it, that forces Pazpar2 to use idPass Z39.50
+authentication. Two forms are allowed
+    user password
+    user group password
+If no blanks are present, open authentication is in use (as before).
+
+Fix {prev,next}recid elements that are returned by record
+command. These were incorrect in versions 1.6.23 thru 1.6.32.
+
+--- 1.6.32 2013/06/14
+
+Experimental support for snippets. If argument snippets=1 is given
+for command record or show, the text will include <match>-tags for
+those area that matches.
+
+Fix memory leak WRT client structures (incorrect inc ref count).
+
+Log when a HTTP response is serialized and the time elapsed.
+
+New command, service, which returns current service XML in use for
+session.
+
+--- 1.6.31 2013/05/24
+
+Local limit for fields of type "generic" (ie text fields) are
+now normalized by mergekey rule before comparison takes place.
+Before, no normalization took place and comparsion was, thus, exact.
+
+New facility: dynamic rank , which allows ranking to be changed
+for an existing result set. The rank can be set for search or
+show. This overrides the rank for metadata elements (which fields
+to rank and weight).
+
+New facility:dynamic mergekey , which allows mergekey to be changed
+for an existing result set. The mergekey can be set for search or
+show.
+
+HTTP server: host=@ listens on IPV6 and IPV4 if possible.
+Also, allow ports to be given as names (not just integers).
+Fix @-notation on systems that don't support IPV6 sockets.
+
+--- 1.6.30 2013/04/26
+
+Add MasterKey Connect configuration. Refer to section "non-standard
+databases" for more information.
+
+Allow timeformat for log to be specified with option -m (as Metaproxy
+and YAZ GFS).
+
+New Debian package pazpar2-dbg.
+
+Fix NULL ptr reference of se->relevance. If a new search is initiated
+and a CCL query fails to parse, Pazpar2 could crash.
+
+Fix problem with host/port mangling in Pazpar2 HTTP server. Problem
+existed in 1.6.29 only.
+
+--- 1.6.29 2013/04/05
+
+IPV6 updates. Allow IPv6 addresses for database hosts and IPv6 address
+for HTTP server. By default the HTTP server uses IPv4 only, but that can be
+changed by setting "host" attribute for the "listen" element.
+
+Change semantics of pz:extendrecs. Allow for repeated fetches .
+pz:extendrecs is now the number of extra records to fetch (was total
+count before).
+
+--- 1.6.28 2013/03/21
+
+Fix hang or memory violation if show occurred before a search. (not that
+it makes much sense to perform a show before a search).
+
+--- 1.6.27 2013/03/08
+
+pz2.js: Element_parseChildNodes concatenates all Text/CDATA nodes, instead
+of the first child.
+
+--- 1.6.26 2013/03/08
+
+New pz:metadata attribute, empty="empty-value" for Pazpar2's
+internal representation. With this attribute, Pazpar2 treates an empty
+pz:metadata type as having the value for "empty"  - if empty.
+
+New setting, pz:extendrecs, which triggers extended fetch of records
+for a database beyond pz:maxrecs for a show command.
+
+Fix warning that was falsely issued for "missing limitmap".
+
+Log message for Pazpart start/stop changed. Now using same style as
+Metaproxy, ie Pazpar2 start SHA1 / Pazpar2 stop .
+
+--- 1.6.25 2013/02/07
+
+Fix hang of 2nd command=show with esn/syntax given.
+
+--- 1.6.24 2013/01/18
+
+New merge attribute type: 'first', which takes all metadata fields
+from first target that returns the particular field.
+
+--- 1.6.23 2013/01/02
+
+Extend info command with hostname and YAZ SHA1
+Indent results for both command stat and info.
+
+Allow limit on merged content. The new configuration metadata
+element, limitcluster, configures that a metadata element (name) be used
+as limit name for search. Applies to the whole service (ie all targets),
+unlike pz:limitmap which is configured per-target (database).
+
+New feature: limitmap local:* matches against all metadata fields.
+
+Allow repeated list in limitmap spec . Separated by comma. For
+example: value="local:title,rpn:@attr 1=4".
+
+New element <message> in bytarget response. Holds diagnostic message
+of code (say 'Unsupported Use Attribute' for Bib-1 114).
+
+Improved logging for record ingestion failures.
+
+Avoid using struct icu_chain in non-YAZ_HAVE_ICU mode. In the rare case,
+when YAZ is compiled without ICU support.
+
+--- 1.6.22 2012/10/11
+
+Requires YAZ-4.2.40 to support native solr support.
+
+Fix and improve logic handling whether or not to re-do search on sort
+order changes. A sort order with change in ascending/descending only
+whould not trigger a new search, which is required for targets with
+native sorting capabilities. Each client is now checked if instructions
+(sortmap) exist for native sorting and only client that does requires
+it is researched. Other clients is just re-ingesting the records,
+they already have. The resultset is now cleared if any researching
+is done.
+
+Connection sharing between session has broken since version 1.6.8 with
+introduction of logic that would minimize searching if pazpar2 could
+detect this based on same query and limits and partly sort order.
+This could lead to segementations violations.
+
+Added a chapter in the manaul about relevance ranking.
+
+--- 1.6.21 2012/09/24
+
+Rank tweak: follow=number will increase mult by number if two terms
+occur next to each other; number-1 if they are one term apart , .. 0
+if they are number a part (all in order). Default is 0 (following
+terms has no effect).
+
+Rank tweak: lead=k will divide mult by 1 + log2(1+k*l) where k is
+value given by lead and l is length from beginning of field where
+term occurs (l=0 for first term, l=1 for second term, ..). Default
+value of k is 0.0.
+
+Rank tweak: length=strategy. length="linear" if mult is to be divided
+by length (existing, default behavior), length="log" if mult is to be
+divided by log2(1+length), length="none" if mult is not to be affected
+by length.
+
+--- 1.6.20 2012/09/21
+
+Rank algorithm details may be printed as part of show response in
+element <relevance_info>.. This is only printed if <rank debug="yes"/>
+is used in service.
+
+Record as returned by show/record command have a minimal indentation
+which makes things human-readable.
+
+New configuration of default sorting criteria (sort-default) in
+service definition. If no criteria is defined it will be as before
+'relevance'.
+
+Search command now supports sort parameter just as the show command.
+If no parameter is give, it will use the service sort-default value.
+
+--- 1.6.19 2012/09/18
+
+Rank algorithm skips strings that gets normalized to empty string.
+For example, & and ! could map to the empty string. The weight for
+those terms is now 0 (as if they were not part of the query).
+
+Rank algorithm does not use CCL from limitmap; only from the query
+parameter (user query).
+
+Obey -w dir.
+
+--- 1.6.18 2012/09/17
+
+Rank algorithm configurable by 'rank' element inside service. So far
+only, attribute 'cluster' is recognized. If cluster="yes", multiple
+records inside a cluster boosts higher than single records. This
+is default behavior and existing behavior. cluster="no" takes the
+average score of each record in a cluster.
+
+--- 1.6.17 2012/09/05
+
+Fix bad re-use of connections (connections with changing proxy should not
+be reused).
+
+--- 1.6.16 2012/08/22
+
+Fix a bug introduce in 1.6.15 around the position sorting. It resetted the
+resultset and sorting when the sort order is position. However this will be done on
+every client poll, which will make pazpar2 continuing reset and fetching.
+It should only be done on FIRST request where the sort order change.
+
+Fix an issue on suggestion option: Also disable suggestions on empty string.
+
+Clean up in turbo marc stylesheet.
+
+Remove the hardcoded size of termlists.
+
+--- 1.6.15 2012/06/27
+
+New facility: ccldirective may be given in service definition. Allows
+CCL parsing to be customized a bit, such as defining names of operators
+and, or, not.
+
+New facility: raw record by checksum, rather than offset. The record
+command optionally takes checksum which identifies certain record from
+a database.
+
+New facility: per field ranking. Rank may be given as M [F N] where
+M is default rank and N is rank for CCL terms from field F.
+
+--- 1.6.14 2012/06/04
+
+Fix for IE7/8 in pz.js
+
+Applied patch from Giannis Kosmas on keepAlive, which also adds keepAlive to init response.
+
+Lower log level some places.
+
+Remove some invalid test results.
+
+--- 1.6.13 2012/05/23
+
+Introducing a version=2 parameter for show, termlist and bytarget commands.
+This enables pazpar2 to return approximation on hit and count count when
+doing record filtering using the limit parameter on search and a
+limitmap with a value of "local:"
+
+Setting pz:xslt may embed local XSLT as an alternative to referring
+to filenames.
+Value is not CDATA but XML nodes embedded, so escaping is not necessary
+but a root element *must* be present. For example:
+<settings target="target="z3950.indexdata.com/marc">
+     <set name="pz:xslt">
+       <xsl:stylesheet
+          version="1.0"
+        ..
+       </xsl:stylesheet>
+     </set>
+    </settings>
+
+Metadata field rank may given by XML internal document (pz:xslt
+result). If rank is not given, the rank from service description is
+used - as before.
+
+Metadata field can now configured a default limitmap and facetmap.
+Setting limitmap to "local:" would work for all kind of targets, but would
+prob. not be the optimal solution. But at least better than the default behavior
+of pazpar2 where no filtering is done.
+
+A service definition can now also contains <set/> that defines service-wide
+settings. These will override server-wide sets and will be overridded by
+settings.
+
+New setting, pz:present_chunk, that specifies number of records to fetch
+at a time. Zero will disable chunkation; will fetch max_records at once.
+
+--- 1.6.12 2012/03/14
+
+Revert the format change in termlist response, that could break
+some clients / UIs since they were expecting an (empty) element
+if no facet values was found.
+
+--- 1.6.11 2012/03/07
+
+Revert the behavior of returning errors when unable to block
+on termlist, bytarget and search, when unable to block due to
+other block. The client will now receive a regular response,
+but it will be logged in the server. A parameter (report) is
+added to change behavior to return error response or WARNING
+status message. Consider this "API" as private, as it is mostly
+untested and could be changed in future releases.
+
+Fix spell error in pz2.js fix in 1.6.10.
+
+New Marc2TurboMarc.xsl (contribution from Sven Porst).
+Can solve the missing marc21.xsl updates in some cases.
+
+tmarc.xsl: Simplify the 6xx to subject-long and fix 1-based
+substring (contribtion from Sven Porst)
+
+marc21.xsl: fix 1-based substring call
+
+tmarc.xsl and marc21.xsl: use 856$a as last option for electronic-text.
+
+Add test_termlist_block to test suite
+
 --- 1.6.10 2012/02/23
 
 Fix SEGV for invalid PQFs and SRU/SOLR targets
@@ -5,14 +665,14 @@ Also refactor a bit the code that converts from PQF to SRU/SOLR queries.
 
 Fix pz2.js: "null object" due to change in in bytarget result XML.
 
-Fixes in tmarc.xsl: Subject-long shorten for extra commas only. 
-Added this normalization to the other subject-long fields (d6xx), 
+Fixes in tmarc.xsl: Subject-long shorten for extra commas only.
+Added this normalization to the other subject-long fields (d6xx),
 where it was missing.
 
-Fixes in marc21.xsl: Updated with most of the new tmarc.xsl. 
-Still differences around medium and holdings. marc21.xsl is not 
+Fixes in marc21.xsl: Updated with most of the new tmarc.xsl.
+Still differences around medium and holdings. marc21.xsl is not
 longer active used by Index Data, and should be considered unsupported.
-Use tmarc.xsl instead. 
+Use tmarc.xsl instead.
 
 --- 1.6.9 2012/01/19
 
@@ -46,9 +706,9 @@ for a limitmap.
 --- 1.6.5 2011/11/01
 
 Updated bytarget command to contain a suggestions element with misspelled
-words and suggestions to these. pz2.js has been updated to deliver this 
-onwards as well. Only target that currently delivers this is the solr 
-client in YAZ 4.2.18. 
+words and suggestions to these. pz2.js has been updated to deliver this
+onwards as well. Only target that currently delivers this is the solr
+client in YAZ 4.2.18.
 
 --- 1.6.4 2011/10/28
 
@@ -145,7 +805,7 @@ Pazpar2 may save HTTP requests. Enabled by option -R.
 
 Experimental support for DTIC DADS target. New dads-pz2.xsl.
 
-Support for query_syntax (overrides the default for SRU | Z39.50) 
+Support for query_syntax (overrides the default for SRU | Z39.50)
 
 Support for extraArgs (ZOOM "extraArgs" option) for targets
 
@@ -153,11 +813,11 @@ New commands: status-server and status-session
 
 --- 1.5.3 2011/02/18
 
-Fix for threaded runs: Client now have a copy of the database URL, 
-which can used after the database has been release from the client. 
-This makes the logging in the connection idle timeout of the client nicer (no NOURL) and should be thread-safe.  
+Fix for threaded runs: Client now have a copy of the database URL,
+which can used after the database has been release from the client.
+This makes the logging in the connection idle timeout of the client nicer (no NOURL) and should be thread-safe.
 
-tmarc.xsl: Add journal-title-abbrev and full text. 
+tmarc.xsl: Add journal-title-abbrev and full text.
 
 cf.xsl: new fields: isbn, issn, journaltitle, volume, issue
 
@@ -253,7 +913,7 @@ and a symlink to it is created from services-enabled. The default.xml
 service is unnamed and, thus, will be used by jsdemo and test1.
 
 New setting pz:negotiation_charset. Patch from Andrei V. Toutoukine. The
-new setting pz:negotiation_charset specifies character set for Z39.50 Init.  
+new setting pz:negotiation_charset specifies character set for Z39.50 Init.
 
 --- 1.2.4 2010/01/15
 
@@ -310,7 +970,7 @@ is now ordered in the same way as metadata in the service definition.
 Older Pazpar2 version use the order in which metadata appeared in a
 record instance.
 
-The search argument 'filter' now offers a new operator ~ which does a 
+The search argument 'filter' now offers a new operator ~ which does a
 substring match. The = operator works as before: string match for
 anything but pz:id, or target match for pz:id.
 
@@ -337,7 +997,7 @@ during the session. The service may have its own target settings,
 ICU config, timeout, etc. In order to be recognized, the POST request
 must use Content-Type=text/xml.
 
-Timeout values may be given per-service. That's element 'timeout' 
+Timeout values may be given per-service. That's element 'timeout'
 which takes three attribute values (a subset may be given): 'session',
 'z3950_operation', 'z3950_session'. Option -T is no longer supported
 - used to specify session timeout.
@@ -384,7 +1044,7 @@ Session timeout may be specified on the command-line as option -T.
 
 Pazpar2 may now be operated in a no-merged mode for records.. All records
 will be considered unique. This mode is enabled if no mergekey is
-generated by the normalization stylesheet (pz:xslt). 
+generated by the normalization stylesheet (pz:xslt).
 
 Pazpar2 caches original records from each target and the 'record' command
 with offset returns the original record if 'syntax' and 'esn' are NOT
@@ -501,7 +1161,7 @@ not support some fields are ignored in a search.
 
 --- 1.0.1 2007/07/03
 
-Improved handling of socket timeout for Z39.50 connections. 
+Improved handling of socket timeout for Z39.50 connections.
 
 Misc documentation updates and spell fixes.